- UID
- 257
注册时间2005-3-7
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
菜鸟的ollydbg1.08b教学篇
想学习一下ollydbg,也没人教,在网上找到了这篇文章,不错,能看懂,呵呵,菜鸟可以看以下。。。高手就免了。。。。
作者:winroot 来源:看雪论坛 加入时间:2003-5-22
写之前先说点废话(谁扔的香蕉皮,鸡蛋^^^^^^^^^^^):
ollydbg是个功能强大的软件,以前我也不用他(不习惯),而且很多经典教程都是用trw和softice作为示例工具写的.
初学者(注:和我一样的人)往往一开始就接触这些工具,做练习也就用这些工具!可以说已经上手了!
对ollydbg的动态调试功能也就陌生了!
现在一个很现实的问题让我改变了习惯,我的键盘鼠标是usb的,显示器也给我作对!trw和softice都用不成!
无奈只好学用ollydbg.发现这个东西实在太好了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
*动态调试的时候还能听歌聊天泡MM(TRW,SOFTICE只能对黑屏)
*调试方便,又有函数参考,可以随意加注释,轻松复制,清楚看到堆栈的变化^^^^^^^
*界面优美,可以随意设置背景颜色!
*有强大的右键功能,使用起来特别方便!(特别适合老人小孩使用~~~~)
*说不出来了~~~其他的优点你自己去发掘吧!!!
我是一只大菜鸟,接触破没多长时间,脑子也不怎么灵光,水平低得可怜,说的不对的地方请高手指正!!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~OLLYDBG简介~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
现在就让我这只菜鸟给菜鸟们介绍一下:
1*工作界面:(我们从上往下看)
看到标题栏,菜单栏和工具栏(不用让我做名词解释了吧!)
记住:工具栏的所有功能都能在菜单栏里找到,工具栏是菜单栏的快捷按钮(废话!)
各项详细功能我们在下面说!
再往下看有四个窗口他们是代码窗(左上),寄存器窗口(右上),内存窗口(左下)和堆栈窗口(右下)
2*菜单栏各项命令功能
*文件(F)----这些命令用说吗?
|____注意**该菜单的下部有你上次打开的纪录,该纪录保存有你上次未清除的断点**注意**
*查看(V)------这个菜单我只介绍一下我常用的,别的我不会!:-)
|____执行模块(快捷键ALT+E):查看该程序使用的动态连接库(我的理解)
|
|____断点(快捷键ALT+B):这个是查看你所有的断点,(有时自己设到哪里都忘了,可以看一下)起到一个辅助功能.
我就会这么多!:-(
*调试(D)-------这个菜单是关键,不明白你就别调试软件了!也只说常用的!
|_______运行(F9)加载程序后,运行!
|
|_______暂停(F12)
|
|_______单步进入(F7)遇见CALL就进!进入该子程!行话:"跟进去"
|
|______单步跳过(F8)遇见CALL不进去!不去管子程的内部!第一次粗跟的时候常用!
|
|______执行到返回(ALT+F9)就是执行到该子程的返回语句!
剩下的菜单不重要~我也不费口舌了~~~我是"天下第一懒"(乾隆皇帝赐给我的名号)
知道这么多就能开工了~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~实例分析~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
目标:FlashPT 2.1 Build 3067
破解人:winroot
工具:PEiD,W32DASM,ASPACKDIE,OLLYDBG
目的:一篇ollydbg的教程,软件相对简单!
下载地址:http://www.softreg.com.cn/sharew ... -98D2-BE0410D46806/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~破解过程~~~~~~~~~~~~~~~~~~~~~~~~~~~~
破解过程:
该软件安装后有3各组件随便注册哪一个都一样.
我选择Flash转换解密
1*PEiD查壳,ASPack 2.12 -> Alexey Solodovnikov
2*使用ASPACKDIE脱壳.脱壳后文件名为unpacked.exe
3*使用W32DASM反编译进行静态分析!
加载unpacked.exe-->反编译-->点菜单栏的"参考"选择字符串数据参考
找到"注册码错误,请重新输入!"双击我们来到
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004D1174(C)
| ~~~~~~~~~~~~~~~~~~~~是从这里跳过来的,我们就到这里看看
:004D120D 6A00 push 00000000
* Possible StringData Ref from Code Obj ->"提示"
|
:004D120F B974124D00 mov ecx, 004D1274
* Possible StringData Ref from Code Obj ->"注册码错误,请重新输入!"
#######################我们来到了004D1174#############################
:004D116B 8B55E4 mov edx, dword ptr [ebp-1C]
:004D116E 58 pop eax
:004D116F E8C42CF3FF call 00403E38
:004D1174 0F8593000000 jne 004D120D ;看到了吧!就是从这里我们走向了死亡!
~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~
:004D117A B201 mov dl, 01
:004D117C A1DCCA4400 mov eax, dword ptr [0044CADC]
:004D1181 E856BAF7FF call 0044CBDC
:004D1186 8BD8 mov ebx, eax
:004D1188 BA02000080 mov edx, 80000002
:004D118D 8BC3 mov eax, ebx
:004D118F E8E8BAF7FF call 0044CC7C
:004D1194 B101 mov cl, 01
* Possible StringData Ref from Code Obj ->"software\microsoft\windows\currentversion\chan"
->"gid"
|
:004D1196 BA98124D00 mov edx, 004D1298
:004D119B 8BC3 mov eax, ebx
:004D119D E83EBBF7FF call 0044CCE0
:004D11A2 84C0 test al, al
:004D11A4 745E je 004D1204
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~省略部分代码
* Possible StringData Ref from Code Obj ->"提示"
|
:004D11E2 B974124D00 mov ecx, 004D1274
* Possible StringData Ref from Code Obj ->"注册成功!谢谢您使用本软件!
程序需要重新启动"
~~~~~~~~~~~~~~~~~~~~~~~~~~*****爆破******~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
爆破就是爆着破:-)
看一下我们的分析:
:004D1174 0F8593000000 jne 004D120D ;看到了吧!就是从这里我们走向了死亡!
那我们就不走这里了!他jne我们就改成je
*开工!!!!!!!!!!!
*首先,运行ollydbg加载脱壳后的unpacked.exe找到地址004D1174
004D1174 0F85 93000000 JNZ UNPACKED.004D120D
咦!!!!!!!怎么变成jnz了?(我也不知道为什么)但他与爆破无关!我们把他改成jz就能起到一样的效果
1)我们双击这里: JNZ UNPACKED.004D120D是改变它的汇编代码___________________注{
2)我们把他改成JZ 004D120D 点汇编后,他就变红了 再点取消! {
3)然后右键单击JZ 004D120D选择"复制到可执行文件" {双击地址栏是绝对地址和相对地址的转换
4)这时弹出一个窗口最上面就是000D1174 0F84 93000000 JE 000D120D { 例如:我们双击004D1174 就会变成$ ==>
我们再右键单击JE 000D120D选择"保存文件" { 双击机器码栏就是设这个地址为断点
5)输入你设想的文件名就可以了 {例如:双击0F85 93000000我们可以看到变红了
6)运行,呵呵!!已注册! {说明我们已经把004D1174设置为断点再双击就恢复
~~~~~~~~~~~~~~~***爆破结束***~~~~~~~~~~~~~~~~
经过上面的过程
如果你觉得不过瘾就到注册表HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\changid
删除该键的键值(如果已注册没注册就不用了)
我们继续这次我们要动态分析了~~
################################动态分析###################################
动态分析的前提就是静态分析,我们回过头看一下静态分析的结果
:004D116B 8B55E4 mov edx, dword ptr [ebp-1C]
:004D116E 58 pop eax
:004D116F E8C42CF3FF call 00403E38 //这个是比较的call
:004D1174 0F8593000000 jne 004D120D
那么我们就在004D116B设置断点吧~~~
F2或者双击机器码栏设置断点---F9(运行)--输入用户名winroot,获取ID,ID号码4835812338,点击注册,
程序被OLLYDBG拦截,
乖乖~~
你猜我们看见了什么!!!!一串数字耶!!!3230027325再往右下看堆栈窗口一行ID号码4835812338,一行3230027325
你看他那张脸,长得都像注册码~~~
退出来试一下~~~你快看我的脸 :-)
呵呵~~~~成功~~~
内存注册机你就自己作吧~锻炼一下!
################################################################## |
|