飓风软件下载资讯频道,让您掌握最新的IT动态
软件中心
女性专栏
最新更新
下载排行
下载推荐
资讯分类
腾讯QQ下载
加入收藏
首页
业界资讯
图形图像
网络冲浪
操作系统
工具软件
办公软件
媒体动画
精文荟萃
认证考试
网页设计
技术开发
女性
专栏
娱 乐
插件下载
编程开发
声色图库
游戏外挂
网络游戏
电子特区
E 书下载
软件特区
电脑教程
在线电影
电子书库
黑客工具
网络聊天
劲乐团外挂
疯狂广告
主页浏览
浏览辅助
离线浏览
书签工具
拨号计时
邮件检测
邮件处理
邮件群发
网页制作
网页辅助
网站推广
FTP 工具
下载工具
网络共享
网络加速
更多>>>>
优化设置
系统备份
桌面工具
剪贴工具
开关定时
CPU 相关
内存工具
磁盘工具
数据备份
卸载清除
升级补丁
系统测试
系统其它
系统增强
光盘工具
删除恢复
媒体播放
桌面制作
媒体制作
媒体管理
媒体其它
光盘刻录
音频处理
音频转换
视频处理
视频转换
Winamp区
MP3制作
MP3播放
图像处理
动画制作
图像捕捉
图像转换
图片压缩
图像浏览
图标工具
图像管理
3D制作类
图像其它
压缩解压
转换翻译
文件管理
文件分割
文件更名
文件修复
文档管理
信息管理
时钟日历
计算器类
键盘鼠标
电子阅读
汉字输入
文字处理
字体工具
其它工具
小小电影
趣味软件
测字算命
桌面屏保
电脑游戏
模拟游戏
迷你游戏
影视 MTV
精彩动画
精彩FLASH
外挂下载
网络游戏
整人工具
益智游戏
游戏补丁
魔兽争霸
教育管理
文科工具
理科工具
外语学习
学前教育
电脑学习
考试系统
天文地理
电子教室
电子书库
软件教程
高考教育
病毒防治
系统安全
系统监视
网络安全
浏览安全
密码恢复
密码管理
加密解密
网吧管理
彩票工具
股票证券
商业贸易
财务管理
行政管理
出版印刷
工程建筑
机械电子
健康医药
法律法规
交通运输
租借管理
农业相关
保险行业
网吧管理
其它行业
ASP 程序
CGI 源码
PHP 源码
其他源码
网页模版
FLASH源码
阅读工具
系统教程
网络教程
软件教程
电脑教程
平面教程
经济书籍
文学书籍
武侠小说
漫画幽默
言情小说
其它书籍
教育教学
文章搜索:关键字
搜索文章标题
搜索文章内容
两者都搜索
※
高级搜索
女性
美女图片
QQ表情
QQ下载
金山毒霸2008
飓风知道
当前位置:
飓风下载
→
网络学院
→
网络冲浪
→
防范措施
→ ollydbg1.08b教学篇
ollydbg1.08b教学篇
ollydbg1.08b教学篇
日期:2004年10月8日 作者:蓝点 人气:
查看:
[
大字体
中字体
小字体
]
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/shareware_view.asp?id=/4C7E305E-226A-43B9-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
你看他那张脸,长得都像注册码~~~
退出来试一下~~~你快看我的脸 :-)
呵呵~~~~成功~~~
内存注册机你就自己作吧~锻炼一下!
##################################################################
破的还不过瘾~~~~~~~~!!!
怎么办?
crack的宗旨就是制作出keygen
下面我们就来试一下,
首先还的分析~~通过上面的动态分析我们知道序列号的生成肯定在004D116B上面的某一段程序,
~如何确定只有跟踪,看注册码最新一次是在哪个地方出现!
所以我们再向上看的时候发现了一个循环!非常可疑,下断点跟踪!
(ollydbg会把循环标出来!)
004D10EA |. C745 F0 000000>MOV DWORD PTR SS:[EBP-10],0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~F2或者双击机器码栏设置断点-
--F9(运行)--输入用户名winroot,获取ID,ID号码4835812338,点击注册,程序被OLLYDBG拦截.
我们按F8(单步跳过)一下一下地执行,注意观察寄存器和堆栈的变化!!
004D10F1 |. C745 F4 000000>MOV DWORD PTR SS:[EBP-C],0
004D10F8 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004D10FB |. E8 282CF3FF CALL UNPACKED.00403D28
004D1100 |. 8BF0 MOV ESI,EAX
004D1102 |. 85F6 TEST ESI,ESI
004D1104 |. 7E 2D JLE SHORT UNPACKED.004D1133
004D1106 |. BB 01000000 MOV EBX,1 //计数器
004D110B |> 8B45 FC /MOV EAX,DWORD PTR SS:[EBP-4]//取id字符串
004D110E |. 807C18 FF 00 |CMP BYTE PTR DS:[EAX+EBX-1],0
004D1113 |. 74 1A |JE SHORT UNPACKED.004D112F //是零就跳!
004D1115 |. 8B45 FC |MOV EAX,DWORD PTR SS:[EBP-4]//EAX=STR
004D1118 |. 8A4418 FF |MOV AL,BYTE PTR DS:[EAX+EBX-1]//AL=STR[EBX-1]
004D111C |. 25 FF000000 |AND EAX,0FF
004D1121 |. 33D2 |XOR EDX,EDX
004D1123 |. 0345 F0 |ADD EAX,DWORD PTR SS:[EBP-10]//和第一次的值相加
004D1126 |. 1355 F4 |ADC EDX,DWORD PTR SS:[EBP-C]
004D1129 |. 8945 F0 |MOV DWORD PTR SS:[EBP-10],EAX//存进去
004D112C |. 8955 F4 |MOV DWORD PTR SS:[EBP-C],EDX
004D112F |> 43 |INC EBX//计数器加1
004D1130 |. 4E |DEC ESI
004D1131 |.^75 D8 \JNZ SHORT UNPACKED.004D110B//循环取累加和
004D1133 |> 6A 00 PUSH 0
004D1135 |. 68 F1E05D00 PUSH 5DE0F1 //入栈
004D113A |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]//取序列号的累加和
004D113D |. 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C]
004D1140 |. E8 874FF3FF CALL UNPACKED.004060CC //累加和*0x5DE0F1
004D1145 |. 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX
004D1148 |. 8955 F4 MOV DWORD PTR SS:[EBP-C],EDX
004D114B |. 8D55 E8 LEA EDX,DWORD PTR SS:[EBP-18]
004D114E |. 8B87 F8020000 MOV EAX,DWORD PTR DS:[EDI+2F8]
004D1154 |. E8 B7D3FBFF CALL UNPACKED.0048E510 //变成10进制--真序列号
004D1159 |. 8B45 E8 MOV EAX,DWORD PTR SS:[EBP-18] //取假序列号的字符串
004D115C |. 50 PUSH EAX
004D115D |. FF75 F4 PUSH DWORD PTR SS:[EBP-C] /Arg2;返回值
004D1160 |. FF75 F0 PUSH DWORD PTR SS:[EBP-10] |Arg1;序列号
004D1163 |. 8D45 E4 LEA EAX,DWORD PTR SS:[EBP-1C] |
004D1166 |. E8 0574F3FF CALL UNPACKED.00408570 \UNPACKED.00408570
004D116B |. 8B55 E4 MOV EDX,DWORD PTR SS:[EBP-1C]
004D116E |. 58 POP EAX
004D116F |. E8 C42CF3FF CALL UNPACKED.00403E38//比较
004D1174 |. 0F85 93000000 JNZ UNPACKED.004D120D//跳出错误
注意:所有的注释都是你跟踪以后根据寄存器和堆栈的变化得出的!也不是在一次跟踪中得出的,是跟踪了多次后得出的结论!
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
结论:我们可以看出序列号是这样产生的,ID的每一位的ASCII值的累加和再和0x5DE0F1相乘得出的值转化为10进制形成序列号~~
所以
name:winroot
id:4835812338
ser=[(0x34+0x38+0x33+0x35+0x38+0x31+0x32+0x33+0x33+0x38)*0x5DE0F1] =[C0864E3D] =[3230027325]
16 16 10
简单吧~~
希望我们菜鸟群能出几个高手~~能写出来最好的教程,不像我这样~~贻误他人~
菜鸟心得:
crack是门操作性很大的学问,所以一定要动手,
看到好的文章一定要试一下自己就会有更深一步的体会,不要看到别人写过了就不去破了.
学习来不得半点虚假!
OllyDbg实用技巧六则
1、让跳转路径显示出来
打开Options\Debugging Option。弹出Debugging Option对话框,选择CPU页,选定
“Show direction to jumps”、“Show jump path”和“Show grayed path if jump is
not taken”。如此以来在Disassembler窗口就会显示跳转的路径了。
2、让OD显示MFC42.DLL中的函数
如果程序是用MFC进行的动态编译,那么在OD中将只能显示MFC42.DLL中的函数为:
00410E40 |. E8 43000000 CALL
1576是函数在MFC42.DLL中的序号。打开Debug\Select import libraries,单击弹出的对话
框中“Add”,在弹出的打开文件对话框中选择“MFC42.LIB”并打开,重新载入MFC程序,
你就可以看见函数名称变为:
00410E40 |. E8 43000000 CALL
IDA中分析出了来的东西一样了!呵呵,以后不用等待IDA的“细嚼慢咽”也可以轻松搞定
MFC程序了。其他的DLL类似,如果有序号,可以在VC的LIB目录中找到相关的.LIB文件,加
到OD中便可。如果你没有“MFC42.DLL”,你可以的到新论坛的下载区找,我已经上传到那
里了。
3、让OD轻松躲过“ANTI-DEBUG”
很多“ANTI-DEBUG”的程序都是在程序开始时来检查是否安装调试器的。用这种特性我
们可以轻松的用OD的“Attach”绕过检查部分。如“X语言”,如果你哟内TRW2K/S-ICE/OD
直接加载它的话,程序回警告你安装了调试器并结束。但是我们在“X语言”开启后再运行
OD,并用“Attach”系上它就就可以了,轻松通过检查。而且在OD系上它后仍然可以用
CTRL+A进行分析。如此一来,快哉!:)
4、轻松对付调用“MessageBoxA”以及类似的模态对话框的程序
很多人都认为OD不好拦截“MessageBoxA”这类API函数。其实我们有个很简单的办法将
API拦截下来,并且快速找到比较地点/主算法地点。首先用OD加载目标程序,如果不能加载,
用上面的方法“Attach”目标程序。然后,F9运行目标程序,并且有意让目标程序显示“
MessageBox”,然后切换到OD中,F12暂停,如
0041201F |> 53 PUSH EBX /Style
00412020 |. 57 PUSH EDI |Title
00412021 |. FF75 08 PUSH [ARG.1] |Text
00412024 |. FF75 F4 PUSH [LOCAL.3] |hOwner
00412027 |. FF15 A8534100 CALL DWORD PTR DS:[4153A8] \MessageBoxA
0041202D |. 85F6 TEST ESI, ESI 停在此处
0041202F |. 8BF8 MOV EDI, EAX
00412031 |. 74 05 JE SHORT 1551-CRA.00412038
F8单步一下,切换到“MessageBox”中,确认,被OD中断。我们可以看见上面的代码41201F
处有一个“〉”,说明可以从某段代码跳转到此处,我们选择41201F这一行,在
“Information”栏看见一句“JUMP FROM 412003”,右键单击,选择“GO TO JUMP FROM
412003”。回到412003,一般都是条件跳转,上面的内容就是比较的地方啦。:)
5、使用OD的TRACK功能
OD拥有强大的TRACK功能,在分析算法时十分有用。首先我们要设定OD的TRACK缓冲区大
小,选择Option\Debugging Option,在弹出的对话框中选择TRACK页,
“Size of run track buffer(byte/record)”,缓冲区大小,当然约大约好。其他的设置
在我以前的OLLYDBG.INI中都已经设置好了。然后,开启目标程序,在DEBUG中选择“Open
or clear run track”。然后我们就可以用CTRL+F11或CTRL+F12开启“Track into”和“
Track over”了。当我们暂停程序的时候,可以用小键盘上的“+”,“-”,“*”来控制
TRACK功能了。
“Track into”和运行类似,但是记录所有指令以及寄存器变化。并且会自动进入所有的
CALL中。
“Track over”和“Track into”类似,但是不进入CALL
“+”用来显示TRACK缓冲区中的下一条指令
“-”用来显示TRACK缓冲区中的上一条指令
“*”用来发返回当前指令
6、不是技巧的技巧
当你遇到花指令的时候一定会很头痛。但是如果你用OD进行分析的时候就会轻松得多。
OD会自动标识出无效指令,即花指令。如果OD没有正确识别,你还可以用CTRL+↑/↓来单个
字节的移动。可以很有效的识别出花指令的所在。
相关软件参考
·
用Fireworks MX制作Windows XP风格按钮
·
创建 Windows XP 图标
·
在Windows XP以幻灯片方式浏览图片
·
怎样把Windows server 2003转换成工作站系统
·
Windows NTFS分区随心转换
·
优化Windows启动 提升性能
·
把Windows ME中的五笔拿出来
·
Windows Me中的批处理
·
Windows XP到底有多安全
·
替你的Windows Me减减肥
·
在百度中搜索ollydbg1.08b教学篇相关信息
·
在Google中搜索ollydbg1.08b教学篇相关信息
·
如何识别骗子服务器出租商
·
在VLAN划分中应用路由器桥接功能
·
无线路由器ARP攻击故障排除方法
·
无线路由器ARP攻击故障解决方案
·
电影服务器安全检测全过程
·
动网8.0最新远程注入漏洞防范
·
加强Linux桌面安全性的办法
·
用Windows PE找回管理员密码教程
·
DNS缓存中毒攻击原理介绍
·
识破黑客伪装将系统中木马统统清除掉
·
手动清除操作系统隐藏病毒文件的方法
·
教你通过修改注册表抵抗DDOS攻击
·
让自己电脑不能登陆别人qq的小招
·
FTP客户端漏洞可向任意位置写文件
·
如何关闭常见木马和未授权控制软件
站长推荐
经典收藏
Sorry!没有查询到任何记录。
总下载排行
周下载排行
·
彻底关掉最容受攻击的137、138、..
·
Serv-U FTP Server远程/本地提升..
·
防御局域网攻击 ZT
·
如何设置访问一个目录需要密码
·
怎样防止蓝屏攻击?
·
简单的3389入侵过程
·
使用四款防黑客软件的体会
·
Microsoft Internet Explorer CS..
·
VBS脚本病毒原理分析与防范
·
个人电脑防御黑客攻击的绝招
·
木马清除百种方法
·
江民炸弹破解又一法
·
ollydbg1.08b教学篇
·
主动防御入侵
·
如何防止黑客侵害网络
$WeekDownTop$
相关文章
·
用Fireworks MX制作Windows XP风格按钮
·
创建 Windows XP 图标
·
在Windows XP以幻灯片方式浏览图片
·
怎样把Windows server 2003转换成工作站系统
·
Windows NTFS分区随心转换
·
优化Windows启动 提升性能
·
把Windows ME中的五笔拿出来
·
Windows Me中的批处理
·
Windows XP到底有多安全
·
替你的Windows Me减减肥