igor 9577, сборки типа "9in1" не оригинальны, сборка чего-либо из них - это лотерея. Фиг его знает, что и как там сделал "пересборщик". Надо искать именно оригинальные образы от Microsoft.
Берём ассиметричное шифрование. Держим приватный ключ на сервере, а публичный зашиваем в программу. Ключ представляет из себя шифрованный приватным ключом текст, содержащий инфу о лицензии. Например, json с полями "номер лицензии", "срок протухания". При запуске проверять срок протухания и сравнивать с текущим временем. В принципе, пользователь может переводить часики, но это сильно неудобно. Особенно если программа представляет возможность работы по сети и коммуникации с другими людьми (а по описанию похоже на то, что так и есть).
Можно в лицензию записывать характеристики системы, на которой запущено приложение. А также все ограничения. Поменять их пользователь всё равно не сможет: даже если ему удастся выдрать открытый ключ, при изменении содержимого лицензии он не сможет её зашифровать приватным ключом).
Можно выдавать короткоживущие лицензии, которые обновлять по сети время от времени. При этом можно сделать примерно как в jwt, где есть долгоживущий refresh token и относительно недолго живущий access token.
Да чего уж там, можно просто при запуске приложения обращаться на сервер за криптографически валидным ответом (шифруем открытым ключём запрос и только по валидному ответу запускаем программу).
Можно вынести функционал проверки лицензии в launcher, который будет запускать основную программу только после проверки, что она не изменилась на диске, передавая ей какие-то правильные параметры, криптографически связанные, например, с регулярно изменяемым содержимым какого-нить файла. И дальше развивать идею: сделать "античит", который будет проверять, что программу не пытаются ломать.
В общем, можно очень много навертеть при больщом желании...
Но часто не нужно никакой сильно сложной и замороченной проверки. Софт немассового применения - тем более для бизнеса - обычно покупают вместе с поддержкой. Особенно критичный, простой которого крайне нежелателен. Ну потому что фиг его знает как он будет глючить. А если заглючит - то не будет миллиона комментариев на хабре и stackoverflow о том, как это решать. Чаще всего достаточно просто проверки зашифрованной лицензии, можно даже запрос на сервер не делать (тем более во многих сурьёхных фирмах сторонний софт "in-house" запускают в коонтуре без доступа в интернет в целях безопасности).
Бот работает на коллбэках или поллинге? Если на коллбэках, то тестировать, отвечает ли он на прямые запросы. Если на поллинге, смотреть, можно ли в библиотеке это отлаживать/настраивать (таймауты, логгирование итд).
Покупать виртуалки у стрёмных хостингов за крипту в странных юрисдикциях. Выходить минимум через 2-3 штуки. На каждой использовать разные имена пользователей и пароли, никак не совпадающие с реальным именем и никнеймом. После каждого использования виртуалку выбрасывать и больше никогда ею не пользоваться. Для подключения к интернету использовать симку, оформленную на бомжа в другой стране, лучше максимально недружественной стране текущего местонахождения. После каждой попытки взлома страну менять..
dofoh88849, нет, он даёт понять адрес выходной ноды прокси-сервера расширения. DNS у клиента при этом не подменяется, потому что ресолвинг идёт на стороне прокси-сервера.
Вообще, судя по вопросам, речь идёт о защите детей от такого контента. И надо выбирать пути решения в зависимости от того, что именно представляет угрозу:
1. Если ребёнок может попасть на подобный контент случайно, то в целом не имеет особого смысла сильно закручивать гайки. Достаточно простых средств (родительский контроль в браузере, отдельные приложения и расширения для этого), чтобы риск стал околонулевым. Даже с reddit проблема легко решается: если ребёнку он зачем-то нужен (что довольно странно), можно его заранее там зарегать, и пусть сидит залогиненный с правильно выставленным возрастом и закрытым NSFW контентом.
2. Если же ребёнок целенаправленно ищет подобный контент, то скорее всего он его найдёт, как ни закручивай гайки. Причём необязательно даже на домашнем компьютере. Есть же телефон, есть компьютеры друзей, куда он будет чаще ходить в гости... Тут правильнее своевременно воспитывать ребёнка, создавать нормальные доверительные и авторитетные отношения с ним. И важно ещё, чтобы ребёнок своевременно получил понимание, что компьютер можно использовать в более интересных и полезных целях. Творчество (рисовать, писать музыку), программирование, интересные сообщества, годный контент - это способно занять подавляющую часть интереса большинства детей при правильном подходе.
Совсем избежать интереса к подобному контенту малореально. Но при правильном подходе к воспитанию этот интерес не будет чересчур сильно и опасно рано развит. Ну посмотрит пару раз и всё, не так редко на этом всё и заканчивается. Интерес детей к взрослому контенту сильно преувеличен. Зато при правильном воспитании на ребёнка будет больше влиять дискомфорт от нарушения доверия родителей. Напротив, чудовищные усилия по ограничению и излишнее давление приведут к тому, что ребёнок будет нарушать запреты и органичения из чувства протеста.
Пример на схожую тему. Моя сестра когда-то начала курить. И вот приходит она домой и по маминому лицу видит, что та понимает, что она курила, но ни слова не сказала и никак не отразила это. Ей стало стыдно настолько сильно, что она сразу же прекратила и больше никогда не курила (уже лет 25 лет прошло). Причём мама, вероятно, не имела мотивации именно так влиять на сестру своим поведением, просто ей, скорее всего, было сложно что-либо сказать с учётом того, что она сама курила ещё в школе и продолжала регулярно начинать снова курить во взрослом возрасте (в том числе втайне от отца, с которым они бросали курить совместно, и отец реально бросил в итоге, а она нет). В итоге не запреты или наказания помогли, а именно хорошие авторитетные отношения с родителями.
Это непростая тема, она очень сильно зависит от конкретного ребёнка и конкретных родителей, характера и предыстории их отношений.
В общем случае никак, так как сильно зависит от конкретных приложений. Некоторые свой кэш, например, завязывают на характеристики телефона (типа его серийного номера) и при переносе всё это послетает.
Плюс достать совсем все данные без рута нельзя.
Титаниум предназначен для бэкапа приложений, я им в своё время даже apk уже установленных приложений сохранял (но не уверен, что в связи с введением в андроиде arts это ещё работает).
Я бы готовился к ручному сохранению важных данных перед переустановкой. Даже если найдётся какой-то приличный инструментарий, фиг его знает, насколько он проглючит на пустом месте.
forced, ну вот потому и советуют медиану, так как во многих отношениях она лучше отражает ситуацию. Например, в статистиках о зарплате часто указывают отдельно среднюю и медианную - и если они сильно расходятся, значит, есть перекосы или в получающих особенно много, или в получающих особенно мало.
Как правильно тут поступать я не очень понимаю, так как в матстатистике всегда разбирался не очень хорошо и за экзамен по ней получил когда-то тройку. Мне самому обычно приходилось решать узкие проблемы "выяснить что-то один раз", поэтому я, например, перебирал порог перцентиля вручную, пока он не подскакивал резко особенно сильно - тут и было видно, где начинается нетипичное меньшинство.
dofoh88849, это не поможет, так как подобные расширения не ресолвят ничего через DNS, и вообще использование слова "VPN" применительно к браузерным расширениям некорректно: это прокси, а не VPN. Иногда это реализуется даже через явное использование каких-то прокси (обычно socks5), прошитых в расширении или получаемых им по API от владельцев расширеня, иногда же запросы оборачивают в другие запросы. В любом случае, фильтровать тут разве что API-сервера расширения или подсовываемый им прокси, что нетривиально и не поможет при частой их смене.
forced, медиана - это граница величины, при которой половина выборки имеет значение величины меньше границы, а половина - больше.
Более общий случай - перцентиль - где вместо половины выбирается указанный процент. Например, перцентиль 80% - это величина, ниже которой 80% выборки. Медиана - это перцентиль 50%.
Например, пусть у нас выборка сроков доставки посылок почтой. Допустим, 90% посылок доставляется за неделю, 8% - от недели до месяца, 1% от 1 месяца до 12, 1% не доставляется в пределах срока страхования посылок (потеряшки). Тогда перцентиль 90% - 1 неделя, 98% - месяц, 99% - 12 месяцев. А среднее время доставки при этом бесконечно - ведь некоторые посылки не доставляются вообще. Если даже выкинуть потеряшки или считать что они получили финальный статус доставки "потеряно" через 12 месяцев, то получится, что каждая задержавшаяся на год посылка вкладывает в срок доставки в средний показатель как минимум 52 посылки в 90% части выборки - очень прилично искажается среднее время доставки от каждой потеряшки.
Поэтому подобные показатели часто рассматривают с точки зрения перцентилей.
В примере из вопроса перцентиль 90% будет 8 метров, в то время как среднее может быть например 13.6 (если в 90% среднее 4 метра, а в 10% оставшихся у всех 100 метров, то 4*90+10*100=1360, делим на 100 и получаем 13.6).
Greenberg2, вполне серьёзно, маркетплейсы активно борются с парсингом. В том числе показывая капчу, блокируя доступ итд итп. Поэтому парсящие всё более и более изощрённые методы используют, с кучами купленных мобильных проксей итд итп.
В китайском интернете некоторые крупные сайты вообще могут показать капчу "сдвиньте вот эту полосочку" прям при первом посещении.
То, что товар был слит за рубль, самому маркетплейсу не особо важно, это проблема продавца, кому он продал. Но совсем ничего с этим не делать они тоже не могут, так как продавцы в таком случае не будут продавать за рубль вообще ничего, ибо зачем выставлять товар, если он будет моментально куплен ботами и не увиден обычными людьми?
Наибоее правильный ответ - не надо редактировать файлы внутри запущенного или остановленного контейнера вообще. Это не докер-вэй. Надо редактировать файл не в контейнере, а в репозитории образа или сборочной песочнице, а затем собирать образ заново. И приучать себя к мысли, что докер-контейнер всегда при изменениях пересоздаётся, это непостоянная сущность.