频道栏目
首页 > 资讯 > 加密破解 > 正文

学习ollydbg破解教程

12-05-12        来源:[db:作者]  
收藏   我要投稿


HI 大家好 我是朽木 QQ200655307今天教大家学习OD破解的教程
专门给菜鸟录制的
我就拿个加密的软件来破解给大家看吧

待脱壳程序:压缩包中
学破解迟早都对接触手动脱壳,看完这篇动画后,你会觉得其实手动脱壳也并不是这么高深。
这其实也是我做这篇动画的目的。这里以fsg为例,因为fsg没有什么anti等反调试技术。
对软件的加壳实际上是对软件的压缩,压缩之后程序的代码和数据就变得不可辨认,这也正
起到了对软件破解的保护。那么压缩后程序是怎么运行的呢。壳在运行的时候会把代码解压
缩到内存中,然后运行。也就是说程序在运行了一段时间后,程序的代码会完整的出现在内
存中。这就是我们要找的。通常称这个地方为oep,入口点。
当程序运行到入口点的时候我们可以用ollydbg的ollydump插件抓取内存中完整的程序代码以
及数据,这就实现了脱壳。
说了这么多是不是等不急了呢,让我们开始吧!!!
首先用peid查看程序,是用fsg1.33加的壳,查看oep很遗憾,看不到(看的到就不会有这篇
文章了:))
有ollydbg载入程序,开始我们的寻找oep之旅吧,寻找oep需要一点经验,就是要找跨段的jmp,
也就是说跳转实现跨段的,就有可能是跳到程序的真正的入口点
我们按住f8,使其单不运行,等会我们会发现一个地址老是往回跳,可以在下面一个地址设断,
然后按f9跳过这无数次的循环。
004307C7    41              INC ECX
004307C8    41              INC ECX
004307C9    95              XCHG EAX,EBP
004307CA    8BC5            MOV EAX,EBP
004307CC    B6 00           MOV DH,0
004307CE    56              PUSH ESI
004307CF    8BF7            MOV ESI,EDI
004307D1    2BF0            SUB ESI,EAX
004307D3    F3:A4           REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
004307D5    5E              POP ESI                                  ; 1551-cra.00422D1E
004307D6  ^ EB 9D           JMP SHORT 1551-cra.00430775  //这里一直往回跳
004307D8    8BD6            MOV EDX,ESI           //在这里设断
004307DA    5E              POP ESI
004307DB    AD              LODS DWORD PTR DS:[ESI]
004307DC    48              DEC EAX
004307DD   /74 0A           JE SHORT 1551-cra.004307E9
004307DF   |79 02           JNS SHORT 1551-cra.004307E3
004307E1   |AD              LODS DWORD PTR DS:[ESI]
004307E2   |50              PUSH EAX
004307E3   |56              PUSH ESI
004307E4   |8BF2            MOV ESI,EDX
004307E6   |97              XCHG EAX,EDI
004307E7  ^|EB 87           JMP SHORT 1551-cra.00430770  //这里还有一处
004307E9    AD              LODS DWORD PTR DS:[ESI]   //同样在此设断
004307EA    93              XCHG EAX,EBX
004307EB    5E              POP ESI
004307EC    46              INC ESI

 

取消断点,继续往下走,不远处我们看到了如下代码

004307F4    84C0            TEST AL,AL
004307F6  ^ 75 FB           JNZ SHORT 1551-cra.004307F3   //用同样的方法跳过
004307F8    FE0E            DEC BYTE PTR DS:[ESI]
004307FA  ^ 74 F0           JE SHORT 1551-cra.004307EC
004307FC    79 05           JNS SHORT 1551-cra.00430803
004307FE    46              INC ESI
004307FF    AD              LODS DWORD PTR DS:[ESI]
00430800    50              PUSH EAX
00430801    EB 09           JMP SHORT 1551-cra.0043080C
00430803    FE0E            DEC BYTE PTR DS:[ESI]
00430805  - 0F84 5B1EFDFF   JE 1551-cra.00402666  //看到了吧,这就是跨"段"的jmp

到这里程序还在壳中,我们取消断点,直接在入口点00402666下断点,bp 00402666
到达指定地点
启用插件ollydump,dump.保存为dump.exe.
脱壳初步成功
运行脱壳后的程序,晕!报错,why?I don't know.还是让我们调试一下再说吧。
用ollydbg载入dump.exe,按住f8,int3中断!!!
我们把它nop掉吧
0040126C  |.  51            PUSH ECX                                 ; |Arg1
0040126D  |.  E8 00F00000   CALL dumpd.00410272                      ; \dumpd.00410272
00401272  |.  81BD D8FDFFFF>CMP DWORD PTR SS:[EBP-228],0FB45
0040127C  |.  7E 02         JLE SHORT dumpd.00401280
0040127E  |.  CD 13         INT 13   //改成nop就可以了
00401280  |>  8D4D E4       LEA ECX,DWORD PTR SS:[EBP-1C]
00401283  |.  895E 64       MOV DWORD PTR DS:[ESI+64],EBX

保存,再运行,程序不再报错,用peid查看,是用vc++6编写的,脱壳成功
  

相关TAG标签
上一篇:追梦FLV迷你播放器 v1.0_仅支持FLA格式
下一篇:淘宝浏览器 3.3.0.940 淘宝官方出的浏览器taobrowser
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站