- 注册时间
- 2010-8-21
- 最后登录
- 2017-5-30
- 在线时间
- 5 小时
编程入门
- 魔鬼币
- 592
|
某游戏公司为了防止驱动被别人调戏,于是对KdSendPacket,KdRecvPacket,进行了IAT hook, 直接还原iat,系统悄无声息重启,在他钩子内继续装钩子仍然是重启 [这方法曾经是有效的]。
讲ntkrnlpa.exe拖入ida,简单分析了下KdSendPacket的调用顺序.
XXXX函数内
call 80xxxxx 这里的call 为E8 call,跟过去一看。
80xxyyzz:
jmp dword ptr [804d1150];
804d1150 是IAT中记录导入函数地址用的, 而该钩子这直接讲804d1150 内的原函数入口修改为自己的,
强力占坑法,直接对着干只有蓝屏或者重启。
在e8 call 的地方直接干的话,肯定行,但是受影响的代码太多,无法一一修正, 于是针对 FF25那条指令进行hook, 比如修改为 jmp dword ptr [fxxxx] fxxx记录的是原来函数入口。
这个方法后来手动实验了下,效果还不错,但是这里我们硬编码了 FF25的地址,在不同版本的xp sp3上是不通用的,更何况还要面对vista,win7,那条指令的定位, 可以先来查阅下nt 原文件。。
该指令 在文件中的原形为 jmp dword ptr [401150], 这里出了一个偏差,很明显被重定位了,在重定位表中果然找到了他的踪迹。。
|
|