-
-
ArmInline修复CC的一点心得。
-
发表于:
2006-3-10 13:45
4032
-
ArmInline修复CC的一点心得。
非CopyMem-II:
若是双进程需转单进程,然后BP GetCurrentThreadId,到达oep,4.x可以直接使用fly的脚本。
CopyMem-II:
首先,修改子进程的oep为死循环,nop掉加密call,再杀死父进程,然后用od附加到子进程,F9再F12,然后恢复子进程的oep,
完成以上工作后,在ArmInline设置好参数,点击下面的“分析”,然后save到一个文件,再用winhex或ultraedit打开,看到如下:
所有的CC代码都在保存的文件里,需要自己分析是否是真的CC:
0000bda0h: 01 00 00 00 8A BA 42 00 A2 BA 42 00 18 00 00 00 ; ....?B.⒑B.....
0000bdb0h: 02 00 00 00 75 BB 42 00 7A BB 42 00 05 00 00 00 ; ....u宦.z宦.....
0000bdc0h: 02 00 00 00 7F BB 42 00 9B BB 42 00 02 00 00 00 ; ....宦.?B.....
0000bdd0h: 03 00 00 00 9D BB 42 00 B8 BB 42 00 02 00 00 00 ; ....?B.富B.....
0000bde0h: 03 00 00 00 BA BB 42 00 EC BB 42 00 02 00 00 00 ; ....夯B.旎B.....
0000bdf0h: 03 00 00 00 F9 BB 42 00 FE BB 42 00 05 00 00 00 ; ....?B.?B.....
每一行第一个字节应该是跳转类型,第5到8字节是cc在的地址,后面的是跳到的地址,不过有的并不准确。如最后一个应该是绝对的远程跳转。
02可能是75,03可能是74,跳转类型还需要在实践中摸索。
我直接使用ArmInline第二步修复经常是没有修复。
个人一点认识,不一定准确。
附件是我汉化的ArmInline V 0.7.1,只汉化了界面,字符串也没有对齐,将就着用吧,不喜欢就自己汉化,挺容易的。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)