那位高人玩过拦截getprocaddress函数?小弟我在拦截她的过程中发现个问题!(100分)

  • 主题发起人 主题发起人 aliangzl
  • 开始时间 开始时间
A

aliangzl

Unregistered / Unconfirmed
GUEST, unregistred user!
把自己的DLL注入被拦截的EXE里!用导入表的方式拦截。在程序调用getprocaddress函数取得<br>一个函数地址时,先转入mygetprocaddress函数处理然后在给默认的处理!可是俺发现要是被拦截的<br>EXE先运行!然后在注入我的DLL!这样,由于先前此EXE已经运行了getprocaddress函数取得了<br>一个函数的地址了!现在在拦截的话!只能是以后此EXE在用getprocaddress才能拦截到!<br>请问怎么才能得到在EXE先前调用getprocaddress函数取得的那个函数的地址?
 
看来只能用替换法了。<br>但不太现实,不要用注入法。
 
那用什么方法?
 
就是替换真正入口地址的前5个bytes为jmp 你的入口。
 
请问<br><br>“替换真正入口地址”<br><br>怎么找?
 
就是用getprocaddress得到的那个地址<br>把前5个字节替换为jmp far<br>
 
前5个字节、有什么用吗?
 
jmp far的长度是5个字节呀!<br>假如getprocadress(textout)的返回值是78900000<br>你在78900000开始的5个字节改为jmp far,不就截获了textout吗?<br>即使是在你替换5个字节之前运行过getprocadress(textout),也可以截获。<br>陷阱法。<br>
 

Similar threads

后退
顶部