Показать сообщение отдельно

  #443  
Старый 07.04.2009, 19:25
Lamia
Участник форума
Регистрация: 11.07.2007
Сообщений: 190
С нами: 9913237

Репутация: 185
По умолчанию

Если заранее известно,где в проге происходит этот вызов и вызывается он один раз,то можно просто подменить
на свой код и вернуться обратно.
Вот так например:
Цитата:
PUSH "point.dll"
JMP метка1
NOP
NOP
NOP
NOP
метка 2:
продолжение основного кода

всё что с метки1 пишеш в области нулей

метка1:
PUSH fake
CALL LoadLibraryA\\после первого вызова LoadLibraryA
\\на верхушке стека будет point.dll
\\что и вызовиш и прыгниш на
\\выполнение основного кода
CALL LoadLibraryA
JMP метка 2

fake db "fake_point2.dll"
Либо подменить в импорте на свой адрес,либо поставить лумп на наш код,не на вызове
а на начале самой функции и потом
СMP [esp+4],"point.dll"
либо подмена на fake_point2.dll ,загрузка,затем загрузка point.dll с передачей управления основному коду,либо,если в параметре нет этой длл,то возвращаемся в
основной код.
Вообщем где то так.....Об этом понаписано на каждом углу в интернете.
 
Ответить с цитированием