fly大侠在
外挂克星脱壳——江湖OnLine V1.05中秋版
http://bbs.pediy.com/showthread.php?s=&threadid=17155
中说道
"看来作者对OllyDBD研究了不少,不过对SoftICE+IceExt却不作抵抗,可惜。"
主程序下载
http://www.szleyu.com/download/BSLYtools.zip
思路:
用SI 跟外挂克星主程序到oep, dump出来, 写1段小程序创建一个新的输入表
, 写1段小程序修正jmp走的IAT操作
开始
2ksp4+ds2.7+iceext
一 到oep
ep 是 2e1d0
bpmb 42e1d0 x
运行 断下
42E1D0 CALL [1000B194] 断下
42E1D6 ADD [EAX], AL
42E1D8 ADD [EAX], AL
42E1DA ADD [EAX], AL
42E1DC ADD [EAX], AL
bpmb 42e1d6 x
bpx.p readprocessmemory
ctrl-d 跑
第三次readprocessmemory断下后,F11返回
9EE556 CALL [KERNEL32!ReadProcessMemory]
9EE55C MOV ESI, 009F7214 F11返回到这儿
9EE561 LEA EAX, [ESP+08]
清除readprocessmemory断点
F10走啊走啊走啊返回这个CALL到这儿
9EFBC7 CALL 009EE3A0
9EFBCC TEST EAX, EAX 到这儿
我这里EAX的返回值是0, 所以不行
r eax 改成 1
然后一路F10 断在ep的下一行42E1D6了
42E1D0 CALL [1000B194]
42E1D6 JMP 40D8CA 断在这儿, 飞向光明之颠
二 dump
基址400000 总大小40000
!dump \??\e:\1.bin 400000 40000
看到oep 开头几行有
40D8EB PUSH ESI
40D8EC PUSH EDI
40D8ED MOV [EBP-18], ESP
40D8F0 JMP 00CD145C 壳把调用API的地方偷走了