Ну почему же, реверсер,но я же не такой супер крутой как ты,для меня анпакать вм3 дификалт.
Хорошо, по этому софту я как раз собирался делать статью, заодно составлю краткое содержание и всё вспомню.
Есть такой софтик hake.me, заказывали у меня его кряк в течении года, и на протяжении всего года защиту меняли где то раз 7, и каждый раз довольно сильно, вот итоговый вариант защиты в двух словах (там ещё много нюансов, но о них я буду писать в статье):
1) Протектор. Как я уже много раз писал, на защиту он не влияет, но не в этом случае, ибо грамотный код подкреплённый протектором это довольно страшно. Накрыто всё это дело было Themida, ломал я конкретно x64 версию. Кряки первой версиии я делал путём инлайна с патчем CRC, где то спустя 2-3 кряка я начал это делать путём написания своей длл. Все важные функции офк виртуализированны темидовской виртуальной машиной.
2) Связь с сервером. Используются SSL сертификаты + шифрование Salsa20. Что бы его убрать и подменить сервер мне лишь потребовалось найти прологи нужных виртуализированных функций, куда входили чистые данные для шифровки, и откуда выходили расшифрованные данные.
3) Инжект. Вот тут самое веселье. Чит получает адреса ВСЕХ экспротируемых функций системных длл, которые есть в таблице импортов чита. Все эти адреса он шлёт на сервер + адрес выделенной памяти для кода чита. На сервере выполняется фикс импортов и релокаций (!). В результате сервер возвращает шелл код БЕЗ PE хеадера, который готов к инжекту. Это не всё, часть кода шифруется с использованием CPUID, и расшифровывается только при его вызове, и затем обратно шифруется. Но и это не всё, часть кода передаётся через локальный сервер читу после инжекта, который тоже имеет свою обфускацию.
Обфускация устроена таким образом, что адреса вызываемых функций расшифровываются на ходу, и в чём самая главная сложность с которой я столкнулся - этот же метод применялся для обфускации вызовов функций из таблицы импортов, то есть СЕРВЕР ВШИВАЛ расшифровку адрессов прямо в шелл-код чита (я уже не могу назвать это дллкой). Что бы это всё обойти мне пришлось писать охуенно-ёбнутый скрипт на питоне, который находил все эти места, выполнял код расшифровки и логировал мне все эти места и их расшифрованный адресс, который затем перезапишет моя длл.
4) Защита внутри самого чита. Не считая того что я описал выше, есть ещё кое что, от чего у меня порой горела задница - скрытые проверки на время. Их сложность была в том, что они очень скрыты (часть из них вызывается в выделенной памяти). Ты наверное спросишь, что мешает хукнуть WinAPI функции для получения времени? А вот хуй там! :D, время получается прямо из системной структуры KUSER_SHARED_DATA, адресс которой на всех ОС одинаковый, так что вшить его не проблема. Часть из этих проверок (которые выполнялись в выделенной памяти) отвечали за инициализацию чита, прорисовки меню и т д, так что их НУЖНО было найти и пропатчить.
Мне даже виртуальную машину пришлось патчить в некоторых местах, к примеру получение времени из того же KUSER_SHARED_DATA, в клиенте тоже есть подобные проверки.
На кряк финальной защиты у меня ушло 3 недели почти непрерывной работы. Более подробно со всякими нюансами я защиту этого софта возможно буду описывать в статье, так что ожидай, думаю узнаешь много полезного.
По поводу защиты АВ, весь их секрет это сильная система банов и ебанутый инжект с нестандартным соединением с сервером, это всё просто нужно изучить, а для этого думаю понадобится не мало лицух, и конечно же, самого ценного - времени, но особо критичного там ничего нет, как выглядит длл в памяти я уже видел.