标题:针对tElock的IAT加密
标题:脱tELock方法总结说明:主要针对tElock的IAT加密
tElock的特点主要为:IAT的加密
用通常的脱壳方法也可壳,如内存镜像法,但是修复IAT时却很麻烦,需要用到等级三。
我们可以在跟踪程序时,通过修改MAG跳,跳过外壳对IAT的加密,具体方法如下:
1、OD载入程序
2、Alt+M,打开内存镜像,在包含为空在段下断点,然后Shift+F9运行
如果没有空段,一般可在rsrc资源段下断,即可
3、程序中断后,按Ctrl+B,搜索:0A F6 89 54
一般如:
/ 0040D346 0AF6 or dh, dh
| 0040D348 895424 1C mov dword ptr , edx
| 0040D34C 61 popad
| 0040D34D C685 D7CC4000 0>mov byte ptr , 0
\ 0040D354 74 24 je short 0040D37A============MAG跳
//将这修改为:jmp short 0040D37A
4、Alt+M打开内存镜像,在代码段下断,按Shift+F9运行,就可以直达OEP了,
此时脱壳修复,IAT全为有效!
见附件的记事本程序!
针对tElock 0.98b1的一些补充:
1、首先Alt+M打开内存镜像,在data段下断点,然后按Shift+F9运行,中断在:
01019D38 AC lods byte ptr
01019D39 02C2 add al, dl
注:如果直接在rsrc段下断,就会直接步过MAGIC跳了!^#^
针对IAT的加密,主要就是找到这个MAGIC的位置,大家可以对一些分别下断,就可以找到了,具体情况,具体对待!
2、按Ctrl+B,搜索:0A F6 89 54
0101A346 0AF6 or dh, dh
0101A348 895424 1C mov dword ptr , edx
0101A34C 61 popad
0101A34D C685 D7CC4000 0>mov byte ptr , 0
0101A354 74 24 je short 0101A37A
3、修改了MAGIC跳之后,在MAGIC跳下断,而不要直接到内存镜像下代码段断点,Shift+F9运行后断在:
0101A354 74 24 jmp short 0101A37A //F2下断
单步F8步过后,再Alt+M到内存镜像下断资源段断点:
Memory map, 条目 27 //F2下断
地址=01016000
大小=00003000 (12288.)
属主=tElock_0 01000000
区段=.rsrc
包含=资源
类型=Imag 01001004
访问=RW
初始访问=RWE
按Shift+F9运行断下后,再Alt+M,下代码段断点:
Memory map, 条目 25 //F2断点
地址=01001000
大小=00013000 (77824.)
属主=tElock_0 01000000
区段=.text
包含=代码
类型=Imag 01001004
访问=RW
初始访问=RWE
Shift+F9,就直接到OEP了,^@^,此时dump下来后用ImportREC修复就没有无效指针了
测试的两个程序: 为什么是查找 0A F6 89 54啊 就是啊,同楼上一样迷茫。。。 支持下,学习了。 支持下,学习了。 这个壳应该不南把 我觉得这样的帖子没有实际意义。。 没有方法。。 脱壳好像在背书
页:
[1]