脱tElock 0.9 - 1.0 (private) -> tE!壳还没有搞定请帮忙
【软件名称】TW线切割编程系统
【下载地址】
9e1K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4c8G2N6$3g2V1L8g2)9J5k6h3&6W2j5i4y4W2i4K6u0W2L8X3g2@1
【软件简介】TW线切割编程系统
【加壳方式】tElock 0.9 - 1.0 (private) -> tE!
看了http://bbs.pediy.com/showthread.php?
s=&threadid=10631&highlight=tElock+0.9后,我也试了一下,还像有点不一样
了,就再试试!结果壳是脱了,但是出错!!下面就是我的过程
设置Ollydbg忽略除了“INT3中断”之外的所有其它异常选项。老规矩:用
IsDebug 1.4插件去掉Ollydbg的调试器标志。
004CBBD6 > 90 nop进入OD后停在这
004CBBD7 ^ E9 25E4FFFF jmp ks.004CA001
004CBBDC 0000 add byte ptr ds:[eax],al
004CBBDE 65:A5 movs dword ptr es:[edi],dword ptr gs>
004CBBE0 C4D3 les edx,ebx ; 非
法使用寄存器
004CBBE2 1E push ds
004CBBE3 BC 0C000000 mov esp,0C
004CBBE8 0000 add byte ptr ds:[eax],al
004CBBEA 0000 add byte ptr ds:[eax],al
004CBBEC 0000 add byte ptr ds:[eax],al
004CBBEE 3E:BC 0C002EBC mov esp,BC2E000C
004CBBF4 0C 00 or al,0
004CBBF6 26:BC 0C000000 mov esp,0C
Shift+F9 运行,程序中断在INT3异常处
004CA08D 90 nop
004CAB28 90 nop
提供一个简便寻找ASPack加壳DLL的重定位处理代码段的方法!
(http://bbs.pediy.com/showthread.php?
s=&threadid=1595&highlight=tElock+0.9)在此要感谢fly版主(其实我很久就
知道fly了,但是那时我的上网是电话线拔号就没有深入破解研究其实我很喜欢
看以前fly写的破文!在此再次的感谢fly版主)
现在设置Ollydbg忽略所有异常选项。Ctrl+S在“整个段块”搜索命令序列:
代码:----------------------------------------------------------------
----------------
mov ebx,edx
shr ebx,10
mov eax,dword ptr ds:[esi]
---------------------------------------------------------------------
-----------
004CB177 8BB5 56D34000 mov esi,dword ptr ss:[ebp+40D356] 下断点
Shift+F9 运行,中断
ss:[004CBCB4]=00000000★ 这个00000000就是重定位表的RVA!--fly就是这样
说的吧?我也不能确定,到时试试再说了!!
esi=00000000
004CB17D 85F6 test esi,esi
004CB17F 0F84 8B000000 je ks.004CB210()
004CB185 8B95 62D34000 mov edx,dword ptr ss:[ebp+40D362]
004CB18B 03F2 add esi,edx
004CB18D 2B95 66D34000 sub edx,dword ptr ss:[ebp+40D366]
//这里其实就是检测与映像基址是否相符,不符则重定位处理!★
004CB193 74 7B je short ks.004CB210
004CB195 8BDA mov ebx,edx 找到在此,但是我们要下断在
4cb177
004CB197 C1EB 10 shr ebx,10
004CB19A 8B06 mov eax,dword ptr ds:[esi]
004CB19C 85C0 test eax,eax
004CB19E 74 70 je short ks.004CB210
//重定位处理完毕后这里就跳转 在004CB210处下断
004CB1A0 8B4E 04 mov ecx,dword ptr ds:[esi+4]
004CB1A3 83E9 08 sub ecx,8
004CB1A6 D1E9 shr ecx,1
004CB1A8 8BBD 62D34000 mov edi,dword ptr ss:[ebp+40D362]
中断在
004CB210 8B95 62D34000 mov edx,dword ptr ss:[ebp+40D362] ;
ks.00400000
ss:[004CBCC0]=00400000 (ks.00400000)
edx=7C92EB94 (ntdll.KiFastSystemCallRet)
我查看寄存器时发现ESI=00000000
004CB216 8BB5 52D34000 mov esi,dword ptr ss:[ebp+40D352]
ss:[004CBCB0]=000AA590 ★ 这就是输入表的RVA啦。
esi=00400000 (ks.00400000)
004CB21C 85F6 test esi,esi
004CB21E 0F84 06040000 je ks.004CB62A
//第2个Magic Jump,改标志位Z=1,使其跳转,则不加密IAT
004CB224 03F2 add esi,edx
004CB226 83A5 52D44000 0>and dword ptr ss:[ebp+40D452],0
004CB22D 8B46 0C mov eax,dword ptr ds:[esi+C]
004CB230 8366 0C 00 and dword ptr ds:[esi+C],0
004CB234 85C0 test eax,eax
004CB236 0F84 EE030000 je ks.004CB62A
004CB23C 03C2 add eax,edx
004CB224 03F2 add esi,edx
004CB226 83A5 52D44000 0>and dword ptr ss:[ebp+40D452],0
004CB22D 8B46 0C mov eax,dword ptr ds:[esi+C]
004CB230 8366 0C 00 and dword ptr ds:[esi+C],0
004CB234 85C0 test eax,eax
004CB236 0F84 EE030000 je ks.004CB62A
004CB23C 03C2 add eax,edx
二、第2区段内存断点法:快速直达OEP
现在我们Alt+M打开 内存查看 窗口:
代码:--------------------------------------------------------------------------------
003B0000 00001000 EdrLib 003B0000 (itself) PE header//第1区段
003B1000 00003000 EdrLib 003B0000 code//第2区段 ★
003B4000 00001000 EdrLib 003B0000 data
--------------------------------------------------------------------------------
在003B1000第2区段上 设置内存访问断点!Shift+F9 运行,直接中断在OEP处!
代码:--------------------------------------------------------------------------------
0045E70C 55 push ebp 可以down出
0045E70D 8BEC mov ebp,esp
0045E70F 6A FF push -1
0045E711 68 B0054A00 push ks.004A05B0
0045E716 68 584A4600 push ks.00464A58
0045E71B 64:A1 00000000 mov eax,dword ptr fs:[0]
0045E721 50 push eax
0045E722 64:8925 0000000>mov dword ptr fs:[0],esp
0045E729 83EC 58 sub esp,58
0045E72C 53 push ebx
0045E72D 56 push esi
0045E72E 57 push edi
0045E72F 8965 E8 mov dword ptr ss:[ebp-18],esp
0045E732 FF15 54734900 call dword ptr ds:[497354]
--------------------------------------------------------------------------------
我用pedit检测无壳,但是却不能运行,后面的我就不知道了!!大家帮我看看!!我感觉是不是我的OEP,输入表RVA
重定位表RVA、大小等有问题,
但是我不会用LordPE脱壳,还请高手指点如何用LordPE修正及脱壳,我英语很差的!!请具体一点,谢谢了!!
[培训]科锐逆向工程师培训第53期2025年7月8日开班!