OllyDbg 使用笔记 (七)

參考

书:《加密与解密》

视频:小甲鱼 解密系列 视频

演示样例程序下载:http://pan.baidu.com/s/1gvwlS

暴力破解

观察这个程序。能够从程序标题的<unregistered  个跟 About 中的 <Unregistered Version>入手

用OD打开程序。右键-->查找-->全部參考文本字串

图片1

在打开的界面中。将滚动栏移到追上面(由于是从光标处開始搜索的),右键查找文本,先搜索<unregistered

图片2

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmlsbHZzbWU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

双击找到的文本到代码处。

005CC81B   .  E8 9C5FEDFF   call    004A27BC
005CC820   .  A1 8CEB6000   mov     eax, dword ptr [60EB8C]
005CC825   .  8038 00       cmp     byte ptr [eax], 0
005CC828   .  0F85 07010000 jnz     005CC935
005CC82E   .  A1 DCF16000   mov     eax, dword ptr [60F1DC]
005CC833   .  8038 00       cmp     byte ptr [eax], 0
005CC836   .  0F85 F9000000 jnz     005CC935
005CC83C   .  68 70CB5C00   push    005CCB70                         ;  ASCII "PC Surgeon <unregistered - "
005CC841   .  D905 3CCA5C00 fld     dword ptr [5CCA3C]
005CC847   .  A1 8CEC6000   mov     eax, dword ptr [60EC8C]
005CC84C   .  DC20          fsub    qword ptr [eax]
005CC84E   .  83C4 F4       add     esp, -0C
005CC851   .  DB3C24        fstp    tbyte ptr [esp]
005CC854   .  9B            wait

细致查看。前面的跳转,能够发现 jnz     005CC935 非常关键。在前面一个jnz     005CC935处下断点,又一次执行程序,发现第这两个jnz     005CC935  未跳转。

把第一个cmp     byte ptr [eax], 0    改成  cmp     byte ptr [eax], 1 使跳转实现。

依照相同的方法,搜索<Unregistered Version>,跟改跳转实现。就可以破解程序。

其它方法

再来看看这段代码:

005CC811   .  E8 12B9E6FF                   call    <jmp.&shell32.ShellExecuteA>     ; \ShellExecuteA
005CC816   >  B8 58CB5C00                   mov     eax, 005CCB58                    ;  ASCII "Show: splash"
005CC81B   .  E8 9C5FEDFF                   call    004A27BC
005CC820   .  A1 8CEB6000                   mov     eax, dword ptr [60EB8C]
005CC825   .  8038 00                       cmp     byte ptr [eax], 0
005CC828   .  0F85 07010000                 jnz     005CC935
005CC82E   .  A1 DCF16000                   mov     eax, dword ptr [60F1DC]
005CC833      8038 00                       cmp     byte ptr [eax], 0
005CC836      0F85 F9000000                 jnz     005CC935
005CC83C   .  68 70CB5C00                   push    005CCB70                         ;  ASCII "PC Surgeon <unregistered - "
005CC841   .  D905 3CCA5C00                 fld     dword ptr [5CCA3C]
005CC847   .  A1 8CEC6000                   mov     eax, dword ptr [60EC8C]
005CC84C   .  DC20                          fsub    qword ptr [eax]
005CC84E   .  83C4 F4                       add     esp, -0C
005CC851   .  DB3C24                        fstp    tbyte ptr [esp]
005CC854   .  9B                            wait

这里有两个jnz     005CC935 。推断分别推断[[60EB8C]] 跟 [[60F1DC]] 是否为0。 从 fld     dword ptr [5CCA3C] 能够发现[5CCA3C]中是15.0 即试用天数。

细致分析能够发现第一个jnz为推断是否正常,第二个为推断是否超过15天使用期。

所以[[60EB8C]]的值很关键。

要找出改[[60EB8C]]的值的地方。

选中mov     eax, dword ptr [60EB8C] , 右键-->查找參考-->地址常量。就可以列出全部使用了这个地址的命令的位置。

图片3

在此窗体右键-->在每一个命令上设置断点。又一次执行程序。

图片4

按F9,来到此处:

005C2BF6   .  8B15 8CEB6000                 mov     edx, dword ptr [60EB8C]          ;  pcsurgeo.00610C4A
005C2BFC   .  8802                          mov     byte ptr [edx], al
005C2BFE   .  A1 8CEB6000                   mov     eax, dword ptr [60EB8C]
005C2C03   .  8038 00                       cmp     byte ptr [eax], 0
005C2C06   .  75 0D                         jnz     short 005C2C15
005C2C08   .  E8 6307EEFF                   call    004A3370
005C2C0D   .  A1 8CEC6000                   mov     eax, dword ptr [60EC8C]
005C2C12   .  DD18                          fstp    qword ptr [eax]
005C2C14   .  9B                            wait

看到 mov     byte ptr [edx], al 正是给[[60EB8C]] 赋值的地方,把它改成 mov     byte ptr [edx], 1。就可以破解。

(在保存过程中会出现 重定位提示窗体,由于mov     byte ptr [edx], al改成mov     byte ptr [edx], 1后代码变多了。要重定位才可能正常执行。这里能够先不用管它。)

时间: 2024-12-14 23:37:11

OllyDbg 使用笔记 (七)的相关文章

OllyDbg 使用笔记 (二)

参考 书:<加密与解密> 视频:小甲鱼 解密系列 视频 TraceMe.exe下载地址:http://pan.baidu.com/s/1c0s2twO TraceMe.exe 程序破解 程序见下图,破解目标:使我们能够验证成功. 图片1 由于输入肯定会用到获取对话框文本的API,所以在反汇编面板 按Ctrl+G搜索GetDlgItemTextA,试试看. 图片2 也可以按Ctrl+N 打开程序的导入表.查看程序导入了那些函数,选中GetDlgItemTextA,右键 选择在反汇编窗口中跟随输入

JAVA 笔记 七

JAVA笔记七 this:就代表本类的对象,this代表它所在函数所属对象的引用简单说:那个对象在调用this所在的函数,this就代表那个对象静态:static 用法:是一个修饰符,用于修饰成员(成员变量,成员函数)当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用.类名.静态成员static特点1.随着类的加载而加载2.优先于的对象存在3.被所有对象所共享4.可以直接被类名所调用实例变量和类变量的区别:1.存放位置. 类变量随着类的加载而存在与方法区中. 实例

OllyDbg 使用笔记 (一)

参考 书:<加密与解密> 视频:小甲鱼 解密系列 视频 ollydbg下载地址:http://tools.pediy.com/debuggers.htm hello.exe下载地址:http://pan.baidu.com/s/1c0iYQOC 一.OllyDbg基本界面 图片1 如果按窗口切换按钮出现下面的情况,乱了,只需要双击一个窗口让它全屏就行了. 图片2 二.部分快捷键介绍 F3 : 打开目标文件 F2 : 设置断点 F7:单步步进,遇到CALL跟进 F8:单步步过,遇到CALL路过,

第十七篇:博采众长--初探WDDM驱动学习笔记(七)

基于WDDM驱动的DirectX视频加速重定向框架设计与实现 现在的研究生的论文, 真正质量高的, 少之又少, 开题开得特别大, 动不动就要搞个大课题, 从绪论开始到真正自己所做的内容之间, 是东拼西凑地抄概念, 抄公式, 达到字数篇幅的要求, 而自己正真做了什么, 有哪些实际感受, 做出的内容, 相比前面的东拼西凑就几点内容, 之后就草草结束, 步入感谢的段落. 原因不光只有学生自己, 所谓的读研, 如果没有一个环境, 学生有再大的愿望, 再强的毅力, 到头来也只是空无奈. 有些导师要写书,

马哥学习笔记七——LAMP编译安装之MYSQL

1.准备数据存放的文件系统 新建一个逻辑卷,并将其挂载至特定目录即可.这里不再给出过程. 这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录. 2.新建用户以安全方式运行进程: # groupadd -r mysql # useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql # chown -R mysql:mysql /mydata/data 3.安装并初始化my

jQuery整理笔记七----几个经典表单应用

1.文本框获得(失去)焦点 当文本框获得输入焦点时,将该文本框高亮显示,算不得一个应用,仅仅是一个小技巧,能够提高用户体验. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/

Lua学习笔记(七):迭代器与泛型for

1.迭代器与闭包 迭代器是一种支持指针类型的结构,它可以遍历集合的每一个元素.在Lua中我们常常使用函数来描述迭代器,每次调用该函数就返回集合的下一个元素. 迭代器需要保留上一次成功调用的状态和下一次成功调用的状态,也就是他知道来自于哪里和将要前往哪里.闭包提供的机制可以很容易实现这个任务.记住:闭包是一个内部函数,它可以访问一个或者多个外部函数的外部局部变量.每次闭包的成功调用后这些外部局部变量都保存他们的值(状态).当然如果要创建一个闭包必须要创建其外部局部变量.所以一个典型的闭包的结构包含

python学习笔记七:条件&循环语句

1.print/import更多信息 print打印多个表达式,使用逗号隔开 >>> print 'Age:',42 Age: 42   #注意个结果之间有一个空格符 import:从模块导入函数 import 模块 from 模块 import 函数 from 模块 import * 如果两个模块都有open函数的时候, 1)使用下面方法使用: module1.open()... module2.open()... 2)语句末尾增加as子句 >>> import ma

OllyDbg 使用笔记 (八)

参考 书:<加密与解密> 视频:小甲鱼 解密系列 视频 示例程序下载:http://pan.baidu.com/s/1jG5NKBs 分析 这个程序,未注册版本限制了一些功能. 尝试在register界面写入email和密钥 会弹出注册未成功的窗口.可以利用窗口中的文字作为突破口.在OD中 查找 所有参考文本字串 图片1 暴力破解 查看 未注册成功后弹出窗口中的字符串的代码: 004299AB . 57 push edi 004299AC . 50 push eax 004299AD . E8

ollydbg使用笔记(五)

OllyDbg 使用笔记 (五) 参考 书:<加密与解密> 视频:小甲鱼 解密系列 视频 pixtopainbook安装包 下载地址  http://pan.baidu.com/s/191ArG pixtopainbook 破解 pixtopainbook是一个电话簿软件,未注册版本,最多只能添加3个组,每个组最多添加4个人. 去除添加人数跟组数限制 ollydbg 加载 ,按F9运行. 如果OD暂停,在下面出现"异常 E06D7363 - 使用Shift+F7/F8/F9来忽略程序