
07.04.2009, 19:25
|
|
Участник форума
Регистрация: 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 с передачей управления основному коду,либо,если в параметре нет этой длл,то возвращаемся в
основной код.
Вообщем где то так.....Об этом понаписано на каждом углу в интернете.
|
|
|