能力值:
( LV12,RANK:340 )
|
-
-
2 楼
vc编译器可以使用/hotpatch和/functionpadmin选项生成带热补丁的函数头,即5个nop(x86)在函数入口前,一个mov edi,edi在入口处~
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
受教育了,继续学习呀
|
能力值:
(RANK:10 )
|
-
-
4 楼
感谢, 请教一个问题. 如果hook的地址开头是 eb xx, 而这个跳转偏移5个字节, 但是我hook了7个字节, 这时应该是有两个备份吗, 一个原始的字节, 一个将eb xx 改成 e9 后的数据. 当跳回原本的入口点时用 e9这个, 还原时用原始的. 可对?
0x00100000: //备份的布局
//4 bytes hook的字节大小n
//n bytes hook的目标的原始字节 这里如果eb 就改 e9
//5 bytes jmp (原本入口点+ n)
//hook的目标的原始字节
test:
jmp myHook
...
void __stdcall* myHook()
{
__asm
{
leave;
jmp (0x00100000 + 4)
}
}
|
能力值:
( LV3,RANK:20 )
|
-
-
5 楼
我研究研究
|
能力值:
( LV3,RANK:20 )
|
-
-
6 楼
不要用 jmpIn 去覆盖 源程序流的相对跳转指令。。那样很难处理
比如你 jmpIn 覆盖了两条指令,第一条是 4字节,第二条是3字节。你就移动 7 字节的数据。5字节的 jmpIn 会剩余两字节。。
|
|
|