- UID
- 248546
- 帖子
- 7
- 主題
- 0
- 精華
- 0
- 積分
- 1
- 楓幣
- 242
- 威望
- 1
- 存款
- 0
- 贊助金額
- 0
- 推廣
- 0
- GP
- 1
- 閱讀權限
- 10
- 性別
- 保密
- 在線時間
- 2 小時
- 註冊時間
- 2018-9-28
- 最後登入
- 2021-4-8
|
不需要过CRC,因为不是CRC检测的代码段记忆体,ICS: 我们知道CALL其实相当于 push FakeAddress + JMP 副程式地址
当程式跑完副程式地址时遇到ret指令,RET指令就把堆栈存放FakeAddress放到EIP暂存器,所以判断FakeAddress 地址是否
是我们需要的并进行修改就可以达到不修改CRC检测的记忆体代码段也可以改变程式执行逻辑。
举例
[Enable]
Alloc(MyHook, 32)
MyHook:
CMP [ESP],ReturnAddress ’判断是否是我们需要的返回地址因为我们不知道谁CALL我们这个副程式,判断才不会崩溃
JNE OriginalValue 如果不是我们需要的执行原来的副程式
MOV [ESP],FakeAddress 是我们需要的就修改返回地址
JMP OriginalValue’干完坏事跑回原来的地方继续执行
HookAddress:
DD MyHook
[Disable]
HookAddress:
DD OriginalValue
|
|