| 
注册时间2007-8-28
阅读权限20
最后登录1970-1-1UID35582 以武会友  
 
 该用户从未签到 | 
 
| 标题:脱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 [esp+1C], edx
 | 0040D34C    61              popad
 | 0040D34D    C685 D7CC4000 0>mov     byte ptr [ebp+40CCD7], 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 [esi]
 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 [esp+1C], edx
 0101A34C    61              popad
 0101A34D    C685 D7CC4000 0>mov     byte ptr [ebp+40CCD7], 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修复就没有无效指针了
 
 测试的两个程序:
 | 
 
x本帖子中包含更多资源您需要 登录 才可以下载或查看,没有账号?加入我们 
  |