Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.17;
Скачать: CL | DM;

Вниз

Импорты в dll   Найти похожие ветки 

 
Александр Л.   (2003-02-25 02:06) [0]

Здравствуйте! Я понимаю, что тема скользкая, но... Заказали утилиту для криптовки PE-файлов, в качестве ключа, для шифрования/дешифрования, используется фраза, введенная пользователем. Шифрованию подлежат кодовая секция и данные. После этого в файл дописывается новая секция, содержащая декриптор/загрузчик, на который и будет скорректирован RVA PE-шника. Проблема в том, что если в PE файле к которому дописана секция в таблице импортов нет user32.dll, то при ее загрузке функцией LoadLibraryA в WIN2k/XP в регистре eax возвращается 0
и невозможно вызвать функцию MessageBoxA (мне и надо-то только ее одну). Может быть можно как-то это решить?
Спасибо!


 
paul_shmakov ©   (2003-02-25 21:57) [1]

не может такого быть. только что проверил на тестовом примере.

win2000, test.exe (импортирует только kernel32.dll, LoadLibraryA и OutputDebugStringA в таблице импорта присутствуют). дописал секцию следующего содержания:

push OFFSET szUser32
call LoadLibraryA
test eax, eax
jz notLoaded
push OFFSET szSuccess
jmp print
notLoaded:
push OFFSET szFail
print:
call OutputDebugStringA
jmp оригинальная точка входа

szUser32 db "user32.dll", 0
szSuccess db "user32.dll loaded!", 0
szFail db "failed to load user32.dll", 0



выравнял секцию, скорректировал поля в pe-заголовке (количество секций, список секций, размер образа, точка входа), запустил.

выдает:

user32.dll loaded!


так что вы где-то ошиблись.
удачи!



Страницы: 1 вся ветка

Текущий архив: 2003.04.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.014 c
3-54410
Veles
2003-04-01 13:58
2003.04.17
передача из sql в dbf


14-54796
Angel_Forever
2003-04-02 16:02
2003.04.17
Ввод Вывод в C++


3-54455
Ptr
2003-03-26 13:10
2003.04.17
ПАРАДОКС


1-54697
Eugenio
2003-04-04 18:18
2003.04.17
многооконный SDI


1-54741
Ruslan.
2003-04-02 19:18
2003.04.17
Office & Delphi