Реверсеров развелось много, и поэтому кодеры хотят знать, как создавать
простые защитные механизмы, когда под рукой нет ничего подходящего и когда нет
желания напрягать мозги в поисках нетривиальной антиотладки. В этом видео автор
покажет, каким образом можно закодировать PE-файл, используя распространенные
инструменты (шестнадцатеричный редактор WinHex, отладчик OllyDbg).

Весь несложный процесс укладывается в несколько шагов. Вот как он выглядит
вкратце: поиск секции кода по шестнадцатеричным значениям ее первых инструкций,
сдвиг секции на 2 байта и вставка на место первых двух освободившихся байт
команды перехода на адрес, с которого начинается декодер, кодирование 26 байт
исполнимого кода по тривиальному методу (кстати, вместо банального xor-а может
быть и иной, сложный метод). Далее — вставка ассемблерных мнемоник декодера в
OllyDbg с нужного смещения, копирование его шестнадцатеричного кода с помощью
“Binary сору” и вставка сразу после секции кода в WinHex-е. После этого, если
таблица импорта была сдвинута, автор определяет ее смещение с помощью нахождения
разности между положениями имен табличной функции ExitProcess в исходном и
модифицированном файлах. Когда смещение найдено, лишние нулевые байты удаляются
и проверяется успешность операции создания ручного кодера. Операция проверки
проходит успешно, и автор радуется =). Радуется тому, что он научил читателей
методу, на основе которого можно криптовать PE-шки вообще в блокноте, если есть
под рукой debug.com или справочник по Ассемблеру.

Оставить мнение

Check Also

А ты знал? 10 фактов о Python

Python — язык программирования с достаточно низким порогом вхождения, поэтому его часто вы…