![]() |
Вопрос по шифрованию таблицы импорта
Пишу свой криптор.В ходе работы возник вопрос-почему нельзя шифровать таблицу импорта так же как например таблицу данных или таблицу кода?
Объясните кто-нибудь или киньте ссылки-как решить данную проблему. |
А кто тебе сказал что нельзя? 0_o
|
При запуске программы загрузчик ОС получает адреса используемых в программе функций и записывает их в массив адресов имен функций, на который ссылаются поля FirstThunk, и в котором до этого были RVA, ссылающиеся на имена соответствующих функций. После того, как этот массив заполнен адресами функций, он называется Таблицей Адресов Импорта (Import Address Table, сокращенно IAT).
После того, как IAT заполнена адресами нужных функций, программа может начать работу. Исхожу из этого отрывка об описании таблицы импорта.Если таблица импорта будет зашифрована то тогда IAT не сможет заполниться реальными адресами функций, так как в "таблице просмотра импорта" находятся зашифрованные данные.Соответственно программа не загрузится. |
а что мешает криптору сделать свою таблицу импорта, зашифровать ИАТ программы и потом восстановить =)
|
:)
|
вообще IT шифровать нужно обязательно.
А потом ты просто пишеш код который сам загрузит все данные. т.е. ручная обработка импорта и потом LoadLibrary и GetProcAddress КОгдато писал для криптера, то вышло гдето строк 100 на асме. мож меньше |
если быть более подробным то делал примерно так (кусок кода из криптера моего)
Надеюсь алгоритм будет понятен. Если знаеш ASM /me ехидно улыбнулся ) Код:
ESI = PE |
slesh, спасибо за пояснение.
Это код на MASM или на чём? Просто немного непонятно что делают эти значики собаки в начале имён меток (@_nextProc: @_next4:) + что значит знак доллара в инструкции and edx,$0000ffff? |
Это ассемблерная вставка из дельфяной проги )
А там $ - это типа HEX значение т.е. аналог буквы h в конце @ - там все метки начинаются с сабаки. |
Если смотрешь в код ты асма
И увидел там знак бакса Крикни в воздух с другом разом -Это млять же сцуко "ФАСыМ"!!!!! ----- (C) х0ман) мухаха) P.S. (для тех кто не может понять, что это перед ним fasm или masm) ^^. про делфу потом напишу :D |
| Время: 05:02 |