用OLLYDBG快速脱tElock V0.98的壳 (3千字)
发信人:jwh51
时 间:2003-4-17 22:29:15
阅读次数:17
详细信息:

现在的ASPR都有脱壳机了，tElock还没有，还要手脱，真是累，一直想找一个较快的方法，呵 
发现用OLLYDBG脱速度很快，而且还是傻瓜式的：－） 
目标：**投注大师2003黄金版 
工具：ollydbg1.09,winhex,loadpe,peditor. 
一、找入口点 
用OLLYDBG找tElock的入口点完全不用动脑，跟我来： 
1。用OD载入目标程序，先在OD调试设置中把异常卡中的“INT3中断”和“单步中断”打钩。. 
2运行程序，出现异常用SHIFT＋F9过，记住数（下回有用），几后程序运行，这我们看OD的窗口 
004766F1    0000            ADD BYTE PTR DS:[EAX],AL 
004766F3    0000            ADD BYTE PTR DS:[EAX],AL 
004766F5    0000            ADD BYTE PTR DS:[EAX],AL 
004766F7    0000            ADD BYTE PTR DS:[EAX],AL 
004766F9    0000            ADD BYTE PTR DS:[EAX],AL 
004766FB    0000            ADD BYTE PTR DS:[EAX],AL 
004766FD    0000            ADD BYTE PTR DS:[EAX],AL 
004766FF    0000            ADD BYTE PTR DS:[EAX],AL 
00476701    0000            ADD BYTE PTR DS:[EAX],AL 
00476703    0000            ADD BYTE PTR DS:[EAX],AL 
00476705    0000            ADD BYTE PTR DS:[EAX],AL 
都是这样的代码，但我们滚动条一直向上拉，到最上面，我们看到了如下码 
00475000  - E9 DE61FBFF    JMP 智能投注.0042B1E3 
00475005    0000            ADD BYTE PTR DS:[EAX],AL 
00475007    0000            ADD BYTE PTR DS:[EAX],AL 
00475009    0000            ADD BYTE PTR DS:[EAX],AL 
0047500B    0000            ADD BYTE PTR DS:[EAX],AL 
0047500D    0000            ADD BYTE PTR DS:[EAX],AL 
0047500F    0000            ADD BYTE PTR DS:[EAX],AL 
哈哈，这唯一特别的一行看到了吧，0042b1e3,这就是程序的oep了。要记做你按了多少次 
SHIFT＋F9，我这是6次， 
2、DUMP出IT和程序 
重新开始程序，运行，然后再按6-2=4次SHIFT+f9,这时shift+f搜索命令：AND  DWORD PTR [ESI+0C],00 
只有一处： 
00476210    8B95 62D34000  MOV EDX,DWORD PTR SS:[EBP+40D362] 
00476216    8BB5 52D34000  MOV ESI,DWORD PTR SS:[EBP+40D352] 
0047621C    85F6            TEST ESI,ESI　　　　　　　　　　　　　　，在这里下断 
0047621E    0F84 06040000  JE 智能投注.0047662A 
00476224    03F2            ADD ESI,EDX 
00476226    83A5 52D44000 0>AND DWORD PTR SS:[EBP+40D452],0　0047622D    8B46 0C        MOV EAX,DWORD PTR DS:[ESI+C] 
00476230    8366 0C 00      AND DWORD PTR DS:[ESI+C],0 
        ,这是搜索到的 
00476234    85C0            TEST EAX,EAX 
00476236    0F84 EE030000  JE 智能投注.0047662A 
0047623C    03C2            ADD EAX,EDX 
0047623E    8BD8            MOV EBX,EAX 
00476240    50              PUSH EAX 
00476241    FF95 D0D24000  CALL DWORD PTR SS:[EBP+40D2D0] 
我们在47621c下断，按shift+f9断了下来，看看esi的值：00059cc0,是什么，呵，这就是 
it的位置了，然后 d 459cc0,我们看看左下角，IT就躺在这里，一直向下拉，看看有多大， 
45B9E8-459CC0=1D28,这是时你可以打开loadpe,部分脱壳JJ.DMP，位置：00459cc0.大小:1d28, 
回到OD，清断点，按1次shift+f9, 然后下断:bp 0042B1E3(可别说你忘了这是什么），再 
按SHIFT＋f9，来到oep了，再用loadpe完全脱壳DUMPED.EXE。呵，快完了。 
3、扫尾工作 
用winhex把jj.dmp的代码粘到dumped.exe的相应位置保存，再用peditor打开dumped.exe, 
修改入口点为2B1E3(0042B1E3-00400000),引入表地址为：59CC0，最后按rebuider,呵呵， 
大功告成。看看时间，2分钟不到。 
测试了几个tElock的壳，都可以用这种方法脱之。 