OD入门系列图文详细教程、破解做辅助起步精编版

一、OllyDBG 的安装与配置OllyDBG 1.10 版的发布版本是个ZIP 压缩包,只要解压到一个目录下,运行OllyDBG.exe 就可以了。

汉化版的发布版本是个RAR 压缩包,同样只需解压到一个目录下运行OllyDBG.exe 即可:OllyDBG 中各个窗口的功能如上图。

简单解释一下各个窗口的功能,更详细的内容可以参考TT 小组翻译的中文帮助:反汇编窗口:显示被调试程序的反汇编代码,标题栏上的地址、HEX 数据、反汇编、注释可以通过在窗口中右击出现的菜单界面选项->隐藏标题或显示标题来进行切换是否显示。

用鼠标左键点击注释标签可以切换注释显示的方式。

寄存器窗口:显示当前所选线程的CPU 寄存器内容。

同样点击标签寄存器(FPU) 可以切换显示寄存器的方式。

信息窗口:显示反汇编窗口中选中的第一个命令的参数及一些跳转目标地址、字串等。

数据窗口:显示内存或文件的内容。

右键菜单可用于切换显示方式。

堆栈窗口:显示当前线程的堆栈。

要调整上面各个窗口的大小的话,只需左键按住边框拖动,等调整好了,重新启动一下OllyDBG 就可以生效了。

启动后我们要把插件及UDD 的目录配置为绝对路径,点击菜单上的选项->界面,将会出来一个界面选项的对话框,我们点击其中的目录标签:因为我这里是把OllyDBG 解压在F:\OllyDBG 目录下,所以相应的UDD 目录及插件目录按图上配置。

还有一个常用到的标签就是上图后面那个字体,在这里你可以更改OllyDBG 中显示的字体。

上图中其它的选项可以保留为默认,若有需要也可以自己修改。

修改完以后点击确定,弹出一个对话框,说我们更改了插件路径,要重新启动OllyDBG。

在这个对话框上点确定,重新启动一下OllyDBG,我们再到界面选项中看一下,会发现我们原先设置好的路径都已保存了。

有人可能知道插件的作用,但对那个UDD 目录不清楚。

我这简单解释一下:这个UDD 目录的作用是保存你调试的工作。

比如你调试一个软件,设置了断点,添加了注释,一次没做完,这时OllyDBG 就会把你所做的工作保存到这个UDD 目录,以便你下次调试时可以继续以前的工作。

如果不设置这个UDD 目录,OllyDBG 默认是在其安装目录下保存这些后缀名为udd 的文件,时间长了就会显的很乱,所以还是建议专门设置一个目录来保存这些文件。

另外一个重要的选项就是调试选项,可通过菜单选项->调试设置来配置:新手一般不需更改这里的选项,默认已配置好,可以直接使用。

建议在对OllyDBG 已比较熟的情况下再来进行配置。

上面那个异常标签中的选项经常会在脱壳中用到,建议在有一定调试基础后学脱壳时再配置这里。

除了直接启动OllyDBG 来调试外,我们还可以把OllyDBG 添加到资源管理器右键菜单,这样我们就可以直接在 .exe 及 .dll 文件上点右键选择“用Ollydbg打开”菜单来进行调试。

要把OllyDBG 添加到资源管理器右键菜单,只需点菜单选项->添加到浏览器,将会出现一个对话框,先点击“添加Ollydbg 到系统资源管理器菜单”,再点击“完成”按钮即可。

要从右键菜单中删除也很简单,还是这个对话框,点击“从系统资源管理器菜单删除Ollydbg”,再点击“完成”就行了。

OllyDBG 支持插件功能,插件的安装也很简单,只要把下载的插件(一般是个DLL 文件)复制到OllyDBG 安装目录下的PLUGIN 目录中就可以了,OllyDBG 启动时会自动识别。

要注意的是OllyDBG 1.10 对插件的个数有限制,最多不能超过32 个,否则会出错。

建议插件不要添加的太多。

到这里基本配置就完成了,OllyDBG 把所有配置都放在安装目录下的ollydbg.ini 文件中。

二、基本调试方法OllyDBG 有三种方式来载入程序进行调试,一种是点击菜单文件->打开(快捷键是F3)来打开一个可执行文件进行调试,另一种是点击菜单文件->附加来附加到一个已运行的进程上进行调试。

注意这里要附加的程序必须已运行。

第三种就是用右键菜单来载入程序(不知这种算不算)。

一般情况下我们选第一种方式。

比如我们选择一个test.exe 来调试,通过菜单文件->打开来载入这个程序,OllyDBG 中显示的内容将会是这样:调试中我们经常要用到的快捷键有这些:F2:设置断点,只要在光标定位的位置(上图中灰色条)按F2键即可,再按一次F2键则会删除断点。

(相当于SoftICE 中的F9)F8:单步步过。

每按一次这个键执行一条反汇编窗口中的一条指令,遇到CALL 等子程序不进入其代码。

(相当于SoftICE 中的F10)F7:单步步入。

功能同单步步过(F8)类似,区别是遇到CALL 等子程序时会进入其中,进入后首先会停留在子程序的第一条指令上。

(相当于SoftICE 中的F8)F4:运行到选定位置。

作用就是直接运行到光标所在位置处暂停。

(相当于SoftICE 中的F7)F9:运行。

按下这个键如果没有设置相应断点的话,被调试的程序将直接开始运行。

(相当于SoftICE 中的F5)CTR+F9:执行到返回。

此命令在执行到一个ret (返回指令)指令时暂停,常用于从系统领空返回到我们调试的程序领空。

(相当于SoftICE 中的F12)ALT+F9:执行到用户代码。

可用于从系统领空快速返回到我们调试的程序领空。

(相当于SoftICE 中的F11)上面提到的几个快捷键对于一般的调试基本上已够用了。

要开始调试只需设置好断点,找到你感兴趣的代码段再按F8 或F7 键来一条条分析指令功能就可以了。

就写到这了,改天有空再接着灌。

二)-字串参考上一篇是使用入门,现在我们开始正式进入破解。

今天的目标程序是看雪兄《加密与解密》第一版附带光盘中的 镜像打包中的CFF Crackme #3,采用用户名/序列号保护方式。

原版加了个UPX 的壳。

刚开始学破解先不涉及壳的问题,我们主要是熟悉用OllyDBG 来破解的一般方法。

我这里把壳脱掉来分析,附件是脱壳后的文件,直接就可以拿来用。

先说一下一般软件破解的流程:拿到一个软件先别接着马上用OllyDBG 调试,先运行一下,有帮助文档的最好先看一下帮助,熟悉一下软件的使用方法,再看看注册的方式。

如果是序列号方式可以先输个假的来试一下,看看有什么反应,也给我们破解留下一些有用的线索。

如果没有输入注册码的地方,要考虑一下是不是读取注册表或Key 文件(一般称keyfile,就是程序读取一个文件中的内容来判断是否注册),这些可以用其它工具来辅助分析。

如果这些都不是,原程序只是一个功能不全的试用版,那要注册为正式版本就要自己来写代码完善了。

有点跑题了,呵呵。

获得程序的一些基本信息后,还要用查壳的工具来查一下程序是否加了壳,若没壳的话看看程序是什么编译器编的,如VC、Delphi、VB 等。

这样的查壳工具有PEiD 和FI。

有壳的话我们要尽量脱了壳后再来用OllyDBG 调试,特殊情况下也可带壳调试。

下面进入正题:我们先来运行一下这个crackme(用PEiD 检测显示是Delphi 编的),界面如图:这个crackme 已经把用户名和注册码都输好了,省得我们动手^_^。

我们在那个“Register now !”按钮上点击一下,将会跳出一个对话框:好了,今天我们就从这个错误对话框中显示的“Wrong Serial, try again!”来入手。

启动OllyDBG,选择菜单文件->打开载入CrackMe3.exe 文件,我们会停在这里:我们在反汇编窗口中右击,出来一个菜单,我们在查找->所有参考文本字串上左键点击:当然如果用上面那个超级字串参考+插件会更方便。

但我们的目标是熟悉OllyDBG 的一些操作,我就尽量使用OllyDBG 自带的功能,少用插件。

好了,现在出来另一个对话框,我们在这个对话框里右击,选择“查找文本”菜单项,输入“Wrong Serial, try again!”的开头单词“Wrong”(注意这里查找内容要区分大小写)来查找,找到一处:在我们找到的字串上右击,再在出来的菜单上点击“反汇编窗口中跟随”,我们来到这里:见上图,为了看看是否还有其他的参考,可以通过选择右键菜单查找参考->立即数,会出来一个对话框:分别双击上面标出的两个地址,我们会来到对应的位置:00440F79 |. BA 8C104400 MOV EDX,CrackMe3.0044108C ; ASCII "Wrong Serial,try again!"00440F7E |. A1 442C4400 MOV EAX,DWORD PTR DS:[442C44]00440F83 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]00440F85 |. E8 DEC0FFFF CALL CrackMe3.0043D06800440F8A |. EB 18 JMP SHORT CrackMe3.00440FA400440F8E |. B9 80104400 MOV ECX,CrackMe3.00441080 ; ASCII "Beggar off!"00440F93 |. BA 8C104400 MOV EDX,CrackMe3.0044108C ; ASCII "Wrong Serial,try again!"00440F98 |. A1 442C4400 MOV EAX,DWORD PTR DS:[442C44]00440F9D |. 8B00 MOV EAX,DWORD PTR DS:[EAX]00440F9F |. E8 C4C0FFFF CALL CrackMe3.0043D068我们在反汇编窗口中向上滚动一下再看看:00440F2C |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]00440F2F |. BA 14104400 MOV EDX,CrackMe3.00441014 ; ASCII "Registered User"00440F34 |. E8 F32BFCFF CALL CrackMe3.00403B2C ; 关键,要用F7跟进去00440F39 |. 75 51 JNZ SHORT CrackMe3.00440F8C ; 这里跳走就完蛋00440F3B |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]00440F3E |. 8B83 C8020000 MOV EAX,DWORD PTR DS:[EBX+2C8]00440F44 |. E8 D7FEFDFF CALL CrackMe3.00420E2000440F49 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]00440F4C |. BA 2C104400 MOV EDX,CrackMe3.0044102C ; ASCII "GFX-754-IER-954"00440F51 |. E8 D62BFCFF CALL CrackMe3.00403B2C ; 关键,要用F7跟进去00440F56 |. 75 1A JNZ SHORT CrackMe3.00440F72 ; 这里跳走就完蛋00440F58 |. 6A 00 PUSH 000440F5A |. B9 3C104400 MOV ECX,CrackMe3.0044103C ; ASCII "CrackMe cracked successfully"00440F5F |. BA 5C104400 MOV EDX,CrackMe3.0044105C ; ASCII "Congrats! You cracked this CrackMe!"00440F64 |. A1 442C4400 MOV EAX,DWORD PTR DS:[442C44]00440F69 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]00440F6B |. E8 F8C0FFFF CALL CrackMe3.0043D06800440F70 |. EB 32 JMP SHORT CrackMe3.00440FA400440F72 |> 6A 00 PUSH 000440F74 |. B9 80104400 MOV ECX,CrackMe3.00441080 ; ASCII "Beggar off!"00440F79 |. BA 8C104400 MOV EDX,CrackMe3.0044108C ; ASCII "Wrong Serial,try again!"00440F7E |. A1 442C4400 MOV EAX,DWORD PTR DS:[442C44]00440F83 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]00440F85 |. E8 DEC0FFFF CALL CrackMe3.0043D06800440F8A |. EB 18 JMP SHORT CrackMe3.00440FA400440F8E |. B9 80104400 MOV ECX,CrackMe3.00441080 ; ASCII "Beggar off!"00440F93 |. BA 8C104400 MOV EDX,CrackMe3.0044108C ; ASCII "Wrong Serial,try again!"00440F98 |. A1 442C4400 MOV EAX,DWORD PTR DS:[442C44]00440F9D |. 8B00 MOV EAX,DWORD PTR DS:[EAX]00440F9F |. E8 C4C0FFFF CALL CrackMe3.0043D068大家注意看一下上面的注释,我在上面标了两个关键点。

合集下载

(完整)微软Office破解详细教程

(完整)微软Office破解详细教程

完整)___Office破解详细教程介绍___Office是一款重要的办公软件套件,它包括常用的Word、Excel、PowerPoint等应用程序。

然而,正版___Office的价格较高,对于一些用户来说可能无法承受。

因此,本文将向您介绍一种破解___Office的方法,以帮助您免费使用该软件。

注意事项在开始破解之前,请您了解以下注意事项:1.本方法只适用于个人学习目的,并不鼓励商业盗版行为。

2.破解软件可能违反相关法律规定,请使用者自行承担风险。

3.破解软件可能存在安全风险,因此请您在使用之前备份重要数据。

步骤以下是破解___Office的详细步骤:第一步:下载破解工具在互联网上搜索并下载合适的破解工具,如KMSpico或___。

请确保您从可信的网站下载,并仔细阅读并理解相关用户评论和说明。

第二步:禁用防病毒软件一些防病毒软件可能会将破解工具识别为恶意软件并删除,因此请在破解之前将其暂时禁用。

第三步:安装破解工具双击破解工具的安装文件,并按照提示进行安装。

第四步:运行破解工具安装完成后,运行破解工具并选择___Office的版本。

然后,点击"激活"按钮。

第五步:等待激活完成破解工具将尝试连接到激活服务器并激活___Office。

请耐心等待激活过程完成。

第六步:验证激活状态打开任意___Office应用程序,如Word或Excel,在菜单栏中点击"文件",选择"帐户",然后查看激活状态。

如果显示已激活,则表示破解成功。

结论通过本文提供的步骤,您可以破解并免费使用___Office软件。

然而,请记住合法使用软件的重要性,尊重知识产权,并遵守相关法律法规。

OD反推详细步骤

OD反推详细步骤

OD反推步骤1、导入线层,检查连通性,更改图层名称;导入小区层,更改小区名称。

2、①打开节点层,添加属性如index;②打开线层,添加属性如通行能力、速度、时间、等,然后点击Selection--Selection by condition,输入layer=”主干路”等;③打开小区层,添加属性如小区编号,然后在小区层选择tool→map editing→connect,连接小区形心到路网上,Node field需要选择index,在出现的对话框中选择IDs from area layer;④打开节点层,建立节点层形心点选择集,然后点击Selection--Selection by condition,输入“index<>null”,保持不变;⑤打开线层,筛选出连杆,填充连杆属性数据,击Selection--Selection by condition,输入“time=null”保持不变;3、建立虚拟路网,选择Networks/Paths→create,将optional fields选项框中的所有内容全选,建立起的路网将继承这些属性,之后选择OK;单击save workspace,保存工作空间。

4、建立时间阻抗,在线层,选择Networks/Paths→mulpitle paths,出现对话框,Minimize后面选中time,在from及to后为Selection,保存时间阻抗矩阵SPMA T.mtx。

5、建立基础矩阵,在小区层,点击新建Matrix,然后给基础矩阵输值,然后选中线层,给线层增加属性AB_count和BA_count,然后给AB_count和BA_count里面输入值,关闭返回线层,点击Networks/Paths→create创建新的虚拟路网。

6、进行OD反推,点击Planning—OD Matrix Estimation,在弹出的界面单击Options,又弹出一个界面,此时在界面勾选Create themes,单击OK,弹出的界面可以更改保存的位置。

od反编译工具用法

od反编译工具用法

od反编译工具用法反编译是指将已经编译过的程序文件转换为高级源代码的过程。

反编译工具可以帮助开发者了解和学习其他人编写的程序,对于调试和修复软件错误也很有帮助。

OD (OllyDbg) 是一种广泛使用的反汇编调试工具,本文将介绍如何使用OD进行反编译。

OD的基本使用方法如下:2.打开需要反编译的程序:在OD主界面上点击“文件”菜单,然后选择“打开”选项,浏览并选择需要反编译的程序文件,并点击“打开”按钮。

3.反汇编代码窗口:OD会在主界面上打开一个反汇编代码窗口,这个窗口将显示程序的机器码和相应的汇编指令。

4.反编译代码:可以通过“右键单击”汇编指令,然后选择“跟随”选项来进行反编译。

OD会尝试寻找并显示反编译后的代码。

5.查看变量和数据:在OD的主界面上,有一个“数据窗口”,可以显示程序中的变量和内存数据。

在反汇编代码窗口中选择一些指令,然后在数据窗口中查看它所使用的变量和数据的值。

6.设置断点:在OD中设置断点可以帮助我们在特定指令上暂停执行程序,以便查看程序状态和调试错误。

在反汇编代码窗口中选择一些指令,然后点击“上方”菜单中的“条件断点”选项,OD会弹出一个对话框,可以在其中设置断点条件。

7.运行程序:在OD的主界面上,有一个“执行”菜单,可以用于运行程序。

可以通过点击“执行”菜单中的“运行”选项来启动程序的执行。

当程序遇到断点时,会停止执行并进入调试模式。

8.调试程序:在OD的调试模式下,可以通过一些常用的调试功能来调试程序。

例如,可以通过“单步执行”菜单选项逐行执行程序代码,通过“寄存器窗口”查看和修改寄存器值,通过“内存窗口”查看和修改内存数据等。

需要注意的是,使用OD进行反编译需要一定的汇编和调试知识。

同时,反编译软件可能涉及违法行为,如未获得程序开发者的许可而进行反编译。

请确保遵守法律规定,并只在合法和正当的情况下使用反编译工具。

在使用OD进行反编译时,可以参考以下一些技巧和注意事项:1.了解汇编语言与机器码的对应关系:汇编语言是将机器码转换为可读性更高的指令的语言,因此了解汇编语言的基本语法和常见指令有助于理解和分析程序。

破解各种软件注册码

破解各种软件注册码

一、准备好常用破解工具,1、查壳工具:PEiD 0.952、脱壳调试:OllyICE v1.10(俗称OD,可下载一些OD插件保存在程序文件目录下的plugin文件夹中,启动OD时会自动链接插件)3、Win32反汇编:WinHex14.2(本帖暂用不着)4、修复工具:ImportREC V1.6(本帖暂用不着)5、注册机编写:keymake够了,初学不宜太多。

新手所有的工具在小生工具包里都有(赞下小生同鞋的无私奉献)二、壳的概念:关于壳的介绍文章很多,很多初学者还不知道壳是什么,那么你就暂且这样通俗的去理解:壳就是软件的包装外壳。

三、脱壳:顾名思义,我就不多说了。

四、调试:用OD调试程序的进程,寻找关键(算法)CALL,修改有关汇编语言达到软件注册或破解的目的。

五、有人问:我不懂汇编语言和算法怎么办?我告诉你,没关系,首先你必须从简单的、好欺负的软件入手(初学者千万别找年轻的、经常更新的或高版本的软件),否则,你只会以失败而告终。

六、如果你是第一次学破解,我告诉你一个方法,只要你按如下操作一般都能成功(有的新版本软件除外):1、首先注册软件,查看软件弹出的有关注册失败的信息框的内容。

2、查壳:有壳脱壳,无壳用OD载入。

3、手动脱壳基本方法:从OD载入软件程序后弹出是否分析对话框,点“否”,停在程序壳的入口(含有pushad等类似字符)。

接下来我们的目的是要寻找第一个popad 。

(1)首先按F8,接下来或近处便是CALL,此时的CALL或是离这里很近的CALL必须按F7,否则你就掉入陷井,后面遇到CALL一旦掉入也没关系,你先记下来,重新载入程序(按CTRL+F2),再遇到这个时就用F7进入。

(2)出现往回跳转时,即红色线显示跳转实现,必须在下一行点左鍵,然后按F4步过,灰色为跳转未实现,可不理它照样F8。

(3)其他全部F8,一路下去必定能找到第一个popad,找到后离此不远必定有一个大的跳转,一旦跳转来到有push ebp字样,说明壳己走完到主程序(OEP),在此用OD插件→ollyDump→Dump debu…→Dump脱壳→保存。

ollydbg破解教学之万能断点篇

ollydbg破解教学之万能断点篇

ollydbg破解教学之万能断点篇有的只是OD不能下万能断点的断⾔,⼀时⼼恢之极,可是我原来⽤TRW和SICE⽤的挺好,谁知系统⼜跟我闹⽭盾,⼀⽤TRW和SICE就死机,没办法我现在只能⽤OD,我写的⼀些破解⽂章都是⽤OD破的,反复试验,我终于发现OD也能下万能断点,在我以前写的⼀些⽂章中好象有⼀篇简单提到过,但没有说的很详细,这次静下⼼,想写⼀点东西,送给我⼼爱的组织DFCG吧,我的破解是从DFCG组织起步的,很感谢DFCG的⾼⼿们的帮助,在此说声谢谢!为了更明确,这次破解所使⽤的调试器OD是从看雪论坛临时下载的OD1.09的汉化版,没有使⽤我⾃⼰⼿头经过改造的OD,在此也感谢看雪论坛,这⾥真的有很多⾼⼿,在这个论坛我也学到了很多.这次破解的对象是超级XX王,为保护国产软件我隐去了软件相关信息,我不想给⾃⼰带来⿇烦,现在⼯作很忙,能少⼀点⿇烦就尽量少⼀点吧.破解作者yzez[DFCG]破解⼯具ollydbg汉化版,下载https:///softs/58565.html破解⽬的本不为破解⽽破解,只因为技术⽽破解破解环境WINDOWS XP,这个我已经在98和XP下各做了两次,贴图和我这篇⽂章是在XP系统下完成的.破解过程1.检查了⼀下,该程序⽆壳,C++编译,⽤W32DSM反汇编⼀堆乱码,我倒!那就动态调试吧!⽤ollydbg1.09载⼊程序,这次我将教你们如何⽤OD下万能断点,过程我尽可能详细⼀点,下⾯请看.载⼊程序选OD菜单栏上的插件-----命令⾏(快捷键是ALT+F1),在弹出的窗⼝中输⼊万能断点命令:bpx hmemcpy,按ENTER键,结果⼜出现⼀个对话框:Intermodular calls00401164 CALL DWORD PTR DS:[<&USER32.GetWindowRect>] USER32.GetWindowRect0040118F CALL DWORD PTR DS:[<&USER32.GetClientRect>] USER32.GetClientRect00401279 CALL DWORD PTR DS:[<&USER32.GetClientRect>] USER32.GetClientRect004013E1 CALL DWORD PTR DS:[<&USER32.GetClientRect>] USER32.GetClientRect0040190A CALL DWORD PTR DS:[<&KERNEL32.GetThreadLocale>] kernel32.GetThreadLocale0040191C CALL DWORD PTR DS:[<&KERNEL32.GetLocaleInfoA>] kernel32.GetLocaleInfoA还有很多,我就省略了,在这个框⾥右键单击,出现⼀个对话框,选中在每个命令中设置断点(热键是S),单击,你看每⼀⾏都变成了红⾊吧,这表⽰全部设下断点了,后⾯的过程很烦燥,你要⼀边按F9,边按F2把⼀些⽆⽤的断点去掉,有⼀点耐⼼吧,当然也可以不这样做,但遇到断点跳不过的时候,你就得按F2把这个断点去掉.感觉在这⼀点上OD⽐不上TRW和SICE,到出现注册信息框后,你要输⼊注册信息,然后按确定,程序被断下来,我的序列号是:GK342QZ0C6RE03L,我输⼊试验码:123456789098765.程序中断在下⾯:00471F71 CALL DWORD PTR DS:[<&USER32.GetWindowTex>****按确定后回到OD程序中断在此,按F8⾛,在此还没有到关键处!*****************************************************注意这⾥会循环两次,分别处理序列号和试验码,按F8⾛00471F77 LEA ECX,DWORD PTR DS:[EAX+1]00471F7A PUSH ECX00471F7B MOV ECX,DWORD PTR SS:[EBP+10]00471F7E PUSH EAX00471F7F CALL SuperPIM.0043E15D00471F84 PUSH EAX00471F85 PUSH ESI00471F86 CALL DWORD PTR DS:[<&USER32.GetWindowTex>00471F8C MOV ECX,DWORD PTR SS:[EBP+10]00471F8F PUSH -100471F91 CALL SuperPIM.00401D6A00471F96 JMP SHORT SuperPIM.00471FA300471F98 MOV EAX,DWORD PTR SS:[EBP+10]00471F9B PUSH DWORD PTR DS:[EAX]00471F9D PUSH ESI00471F9E CALL SuperPIM.00470B6100471FA4 POP ESI00471FA5 POP EBP00471FA6 RETN 0C*************************************程序第⼆次循环后最后会返回到0040FE99下⾯看代码:----------------------------------------------------------------------------------------------------------0040FE99 LEA EAX,DWORD PTR SS:[EBP-14]****第⼆次循环后会返回到这⾥,注意这就是我们要找的关键地⽅,按F8往下!0040FE9C PUSH EAX0040FE9D CALL SuperPIM.00433D92***********这就是关键CALL,按F7追进,⼀定要进,因为算法就在这⾥⾯!0040FEA2 POP ECX0040FEA3 AND DWORD PTR SS:[EBP-4],00040FEA7 LEA ESI,DWORD PTR DS:[EDI+74]0040FEAA MOV EAX,DWORD PTR DS:[ESI]******试验码⼊EAX0040FEAC CMP DWORD PTR DS:[EAX-C],0******⽐较试验码输⼊了吗?0040FEB0 JE SHORT SuperPIM.0040FF2F******没有输⼊就跳⾛,⼀跳就失败!0040FEB2 PUSH 280040FEB4 LEA EAX,DWORD PTR SS:[EBP-18]0040FEB7 PUSH ESI0040FEB8 PUSH EAX0040FEB9 CALL SuperPIM.0042CEC8**********此CALL对输⼊的注册码进⾏处理,得到⼀个40位的长字符串,有兴趣⾃⼰跟,******************************************我已是头晕的很,不想跟进!0040FEBE LEA ECX,DWORD PTR SS:[EBP-14]0040FEC1 PUSH ECX0040FEC2 PUSH EAX0040FEC3 CALL SuperPIM.0040F9B7**********此CALL对序列号处理,也是得到⼀个40位的长字符串0040FEC8 MOV ECX,DWORD PTR SS:[EBP-18]0040FECB ADD ESP,140040FECE ADD ECX,-100040FED1 MOV BYTE PTR SS:[EBP-D],AL0040FED4 CALL SuperPIM.00401B5D**********此CALL进⾏⽐较,注册码不对,值为00040FED9 CMP BYTE PTR SS:[EBP-D],0*******⽐较是0吗?0040FEDD JE SHORT SuperPIM.0040FF2F******相等就跳,跳就失败,所以⼀定不能跳!0040FEDF PUSH 0**************************不跳往下你就成功了!下⾯代码省略! ...............................................................省略若⼲代码!.........................============================================================================================================= ************************************关键CALL的代码!*******************************************************00433D92 MOV EAX, SuperPIM.0049844E****追进关键CALL后我们来到这⾥!00433D97 CALL SuperPIM.0045090000433D9C PUSH ECX00433D9D PUSH ECX00433D9E AND [LOCAL.5], 000433DA2 LEA EAX, [LOCAL.5]00433DA5 PUSH EAX00433DA6 CALL SuperPIM.00433CA9********此CALL根据电脑硬件信息得到你的序列号,有兴趣跟吧!我是没有兴趣!00433DAB AND [LOCAL.1], 000433DAF PUSH 1400433DB1 LEA EAX, [LOCAL.5]00433DB4 PUSH EAX00433DB5 LEA EAX, [LOCAL.4]00433DB8 PUSH EAX00433DB9 CALL SuperPIM.0042CEC8*******算法CALL(1),按F7跟进!00433DBE PUSH 2800433DC0 LEA EAX, [LOCAL.4]00433DC3 PUSH EAX00433DC4 PUSH [ARG.1]00433DC7 MOV BYTE PTR SS:[EBP-4], 100433DCB CALL SuperPIM.0042CEC800433DD0 MOV ECX, [LOCAL.4]00433DD3 ADD ESP, 1C00433DD6 ADD ECX, -10*****************************省略N⾏代码!********************************************************0043454B RETN=========================================================================================================== ***********************************算法CALL!*********************************************************0042CEC8 MOV EAX, SuperPIM.00497B52********追进算法CALL我们在这⾥!0042CECD CALL SuperPIM.004509000042CED2 SUB ESP, 140042CED5 PUSH EBX0042CED6 PUSH ESI0042CED7 XOR EBX, EBX0042CED9 PUSH EDI0042CEDA MOV [LOCAL.8], EBX0042CEDD CALL SuperPIM.004639B50042CEE2 MOV EDX, DWORD PTR DS:[EAX]0042CEE4 MOV ECX, EAX0042CEE6 CALL DWORD PTR DS:[EDX+C]0042CEE9 LEA EDI, DWORD PTR DS:[EAX+10]0042CEEC MOV [LOCAL.4], EDI0042CEEF MOV EAX, [ARG.2]0042CEF2 MOV EAX, DWORD PTR DS:[EAX]*******序列号:GK342QZ0C6RE03L移⼊EAX0042CEF4 MOV ESI, DWORD PTR DS:[EAX-C]*****序列号的位数15(⼗六进制值是F)送⼊ESI0042CEF7 CMP ESI, EBX**********************⽐较ESI和EBX,ESI的值是F即序列号位数,EBX的初始值是00042CEF9 MOV [LOCAL.1], EBX0042CEFC MOV [LOCAL.8], ESI0042CEFF JE SuperPIM.0042CFB2*************相等就跳,这⾥当然不相等,所以就不会跳!0042CF05 MOV EAX, [ARG.3]******************常数14(⼗进制值是20)送⼊EAX0042CF08 CMP EAX, ESI**********************⽐较EAX和ESI,即14和F⽐较!0042CF0A MOV [LOCAL.6], EAX0042CF0D JG SHORT SuperPIM.0042CF12*******⼤于就跳!0042CF0F MOV [LOCAL.6], ESI0042CF12 CMP [LOCAL.6], EBX****************跳到这⾥!⽐较14和00042CF15 JLE SuperPIM.0042CFB2*************⼩于就跳,这⾥当然不会⼩!所以不跳!0042CF1B MOV EAX, EBX**********************0移⼊EAX0042CF1D CDQ***********************************EDX清0,准备计算!0042CF1E IDIV ESI***************************除,EAX/ESI ,EAX的值是0,ESI的值存放序列号的位数F0042CF20 MOV EAX, [ARG.2]******************赋EAX地址值0042CF23 MOV EAX, DWORD PTR DS:[EAX]*******序列号:GK342QZ0C6RE03L移⼊EAX0042CF25 PUSH EBX***************************EBX⼊栈0042CF26 MOV AL, BYTE PTR DS:[EDX+EAX]*****序列号的第⼀位G(ASCII码值47)⼊AL0042CF29 MOV BYTE PTR SS:[EBP-1C], AL******保存值470042CF2C PUSH [LOCAL.7]0042CF2F CALL SuperPIM.0042CD8E*************算法CALL(2),按F7跟进!代码直接在下⾯给出============================================================================================================== ***************************算法CALL(2)*****************************************************0042CD8E PUSH EBP0042CD8F MOV EBP, ESP0042CD91 PUSH ECX*************************G的ASCII码值47⼊ECX0042CD92 MOVZX EAX, BYTE PTR SS:[EBP+8]****扩展成000000470042CD96 MOV ECX, [ARG.2]****************赋ECX的初始值为00042CD99 MOV [LOCAL.1], EAX0042CD9C MOV EAX, ECX********************ECX的值移⼊EAX0042CD9E IMUL EAX, ECX********************EAX=EAX*ECX=0*00042CDA1 LEA EAX, DWORD PTR DS:[EAX+EAX*2+7]**EAX+EAX*2+7的值7给EAX0042CDA5 IMUL EAX, ECX********************EAX=EAX*ECX=7*00042CDA8 ADD EAX, 0D*********************EAX=EAX+0D=D0042CDAB IMUL EAX, ECX********************EAX=EAX*ECX=D*0=00042CDAE PUSH ESI*************************序列号位数F⼊栈!0042CDAF LEA ESI, DWORD PTR DS:[ECX+5]0042CDB2 PUSH ESI0042CDB3 MOV [ARG.1], EAX0042CDB6 LEA EAX, [ARG.1]0042CDB9 PUSH 40042CDBB PUSH EAX0042CDBC CALL SuperPIM.0042CD2E***********这个CALL也在计算,我实在不想跟进!0042CDC1 PUSH ESI0042CDC2 LEA EAX, [LOCAL.1]0042CDC5 PUSH 40042CDC7 PUSH EAX0042CDC8 CALL SuperPIM.0042CD5E**********这个CALL也是计算CALL,烦!不跟了!0042CDCD MOV EAX, [ARG.1]0042CDD0 ADD ESP, 180042CDD3 XOR EAX, [LOCAL.1]*************这⾥赋EAX的值380000020042CDD6 POP ESI0042CDD7 LEAVE0042CDD8 RETN=========================================================================算法CALL(2)结束================== 0042CF34 POP ECX0042CF35 POP ECX0042CF36 PUSH 2B***************************常数2B⼊栈!0042CF38 XOR EDX, EDX0042CF3A POP ECX**************************把常数2B赋给ECX0042CF3B DIV ECX**************************除,EAX/ECX=38000002/2B=014D6535,余数1B⼊EDX0042CF3D MOV ECX, EDX*********************结果1B⼊ECX0042CF3F ADD CL, 30***********************CL=CL+30=1B+30=4B(对应的字符串是K)0042CF42 CMP CL, 39***********************⽐较是不是数字90042CF45 MOV BYTE PTR SS:[EBP-14], CL*****保存字符串K0042CF48 JLE SHORT SuperPIM.0042CF55******⼩于就跳⾛!0042CF4A CMP CL, 41***********************⽐较是不是A0042CF4D JGE SHORT SuperPIM.0042CF55******⼤于就跳⾛0042CF4F ADD CL, 0F60042CF52 MOV BYTE PTR SS:[EBP-14], CL0042CF55 CMP EBX, [ARG.3]*****************跳到这⾥!⽐较0和140042CF58 JGE SHORT SuperPIM.0042CF67******⼤于等于就跳⾛!0042CF5A PUSH [LOCAL.5]0042CF5D LEA ECX, [LOCAL.4]0042CF60 CALL SuperPIM.00417EAF0042CF65 JMP SHORT SuperPIM.0042CFA5******⽆条件跳0042CF67 MOV EAX, EBX0042CF69 CDQ0042CF6A IDIV [ARG.3]0042CF6D MOVSX ECX, CL0042CF70 PUSH 2B0042CF72 MOV ESI, EDX0042CF74 MOVSX EAX, BYTE PTR DS:[ESI+EDI]0042CF78 LEA EAX, DWORD PTR DS:[EAX+ECX-60]0042CF7C CDQ0042CF7D POP ECX0042CF7E IDIV ECX0042CF80 ADD DL, 300042CF83 CMP DL, 390042CF86 MOV BYTE PTR SS:[EBP-14], DL0042CF89 JLE SHORT SuperPIM.0042CF960042CF8B CMP DL, 410042CF8E JGE SHORT SuperPIM.0042CF960042CF90 ADD DL, 0F60042CF93 MOV BYTE PTR SS:[EBP-14], DL0042CF96 PUSH [LOCAL.5]0042CF99 LEA ECX, [LOCAL.4]0042CF9C PUSH ESI0042CF9D CALL SuperPIM.0042CE4B0042CFA2 MOV ESI, [LOCAL.8]0042CFA5 MOV EDI, [LOCAL.4]***************上⾯跳到这⾥!0042CFA8 INC EBX*************************EBX加10042CFA9 CMP EBX, [LOCAL.6]**************⽐较1和140042CFAC JL SuperPIM.0042CF1B***********⼩于就跳,循环,序列号只有15位,这⾥循环20次,取完后⼜从第⼀位取出! ************************************循环结束后得到的值是:K3L2LPBDW1F2H4B8S0UY这就是我们要的注册码!0042CFB2 MOV ECX, [ARG.1]0042CFB5 LEA EAX, [LOCAL.4]0042CFB8 PUSH EAX0042CFB9 CALL SuperPIM.00401F360042CFBE LEA ECX, DWORD PTR DS:[EDI-10]0042CFC1 CALL SuperPIM.00401B5D0042CFC6 MOV ECX, [LOCAL.3]0042CFC9 MOV EAX, [ARG.1]0042CFCC POP EDI0042CFCD POP ESI0042CFCE POP EBX0042CFCF MOV DWORD PTR FS:[0], ECX0042CFD6 LEAVE0042CFD7 RETN写这篇⽂章的⽬的是想说明如何在OD下万能断点,算法过程太烦琐,就不想多跟了!希望能对⼤家有点启发,如果觉得这篇破⽂还⾏帮我顶⼀下吧!也是希望有更多的⼈能看到,对更多的⼈有益,我也是⼀只菜鸟,请⼤家多多指点!。

proe4.0安装破解详细图文教程

proe4.0安装破解详细图文教程

3
安装
选中接受许可,下一步,选取Pro/ENGINEER
4
安装
选择安装路径:在D盘新建PROE4.0文件夹,下一步。 添加许可证:选择“锁定的许可证文件”,找到之前准备好的许可证,确定
5
ห้องสมุดไป่ตู้装
创建桌面快捷方式,指定启动目录(默认),下一步。勾选OLE设置,下一步。语言均改为简体中 文,点击安装,完成后退出
用记事本打开破解文件crack中的ptc_licfile.dat,把00-00-00-00-00-00全部替换为本机的物理地址 (查询方法:运行——cmd——ipconfig/all)并保存
2
安装
双击安装程序setup.exe,,下一步。(注意:安装软件包路径内不能有中文,proe安装的目的目录 路径内不能有中文,安装软件包所在的盘的盘符不能有中文,计算机名称不能有中文,最好用户名 也不要有中文。)
6
破解
以管理员身份运行PTC_Creo_Patcher_SSQ.exe,点击Look For,选择proe程序的安装路径 PROE4.0,点击LOOK FOR,点击START,出现下图对话框后确定。至此安装完成。
7
修改环境变量
右击“我的电脑”,然后依次点“属性”,“高级”,“环境变量”,在用户变量中新建一个变量,变量名: lang,变量值chs ,(chs就是简体中文的意思,以保证你的安装界面是简体中文),(如果不进行这一步操作 的话安装界面里可能会显示乱码,如果你的安装界面里没有乱码,可以跳过这一步)
1
准备许可证

几种用OD脱壳方法

几种用OD脱壳方法OD是反编译软件的一种,可以将可执行文件转换为可读的源代码。

脱壳是指从已经加密或保护的软件中提取出原始的未加密或未保护的代码。

下面是几种常见的OD脱壳方法:1.静态分析法:静态分析是指对二进制文件进行分析,了解其结构、函数调用和控制流程等信息。

通过对逆向工程的分析,可以分析出加密算法和解密函数的位置。

使用静态分析法脱壳的主要步骤如下:-打开OD软件,将加密的可执行文件加载到OD中。

- 使用各种OD工具,如IDA Pro,OllyDbg等,显示可执行文件的汇编代码。

-通过分析代码和调试程序,找到加密算法和解密函数的位置。

-根据找到的位置,修改程序的执行流程,跳过解密函数,使得程序直接执行解密后的代码。

2.动态调试法:动态调试是指在运行时对程序进行调试和分析。

使用动态调试法脱壳的主要步骤如下:-打开OD软件,将加密的可执行文件加载到OD中。

- 使用动态调试工具,如OllyDbg或GDB等,在程序执行期间跟踪和记录函数调用和内存访问。

-通过分析函数调用和内存访问,找到加密算法和解密函数的位置。

-在找到的位置上下断点,执行程序并使用OD工具查看解密后的代码。

3.内存镜像法:内存镜像法是指通过将程序加载到内存中,并对内存进行镜像和分析来脱壳。

使用内存镜像法脱壳的主要步骤如下:-运行加密的可执行文件。

- 使用内存镜像工具,如DumpBin或WinDBG等,将程序的内存镜像保存到磁盘上。

-使用OD软件加载内存镜像文件。

-通过分析内存镜像文件,找到加密算法和解密函数的位置。

-修改程序的执行流程,跳过解密函数,使得程序直接执行解密后的代码。

这些方法都可以用于将加密的可执行文件转换为可读的源代码,从而进行进一步的分析和修改。

脱壳过程需要进行深入的逆向工程和对程序的理解,因此需要具备一定的技术和知识。

此外,需要注意的是,脱壳过程可能涉及到破解和侵犯版权的行为,应遵守法律规定,并仅限于安全研究和个人学习的目的使用。

菜鸟教程第零课、开启ce自身保护、设置od,让调试不非法

一、设置ce
1置
到论坛搜索最新的OD,多试几个。在360里添加信任。
先打开OD,再打开游戏。在使用OD时,不要使用内存访问和写入断点,其它断点可以使用。
第零课开启ce自身保护设置od让调试不非法因为好多人调试出错所以写下这一课
第零课、开启ce自身保护、设置od,让调试不非法
因为好多人调试出错,所以写下这一课。不过第一课已经有了,咱就叫做第零课吧。应该不会出第负一课了^ ^
因为新区加驱动保护了,而老区没有。新手,请登录老区分析,新手还是先将过驱动放一边吧。

od用流程图查看代码执行流程

od用流程图查看代码执行流程准备工作。

Windows程序由于要使用API函数,在分析中以API函数作为切入点就使过程变得容易起来。

·先了解程序序列号验证流程。

1.输入用户名和序列号;2.使用GetDlgItemTextA函数把字符读出;3.对输入字符进行计算;4.使用lstrcmp函数进行比较。

所以上述的函数就是我们下断点分析的目标,追踪程序序列号验证过程。

(这种为了解密制作的小程序一般称为“CrackMe)。

加载目标文件进行调试。

为了让OD中断在程序入口点,在加载前需要在Options->Debuggingoptions中设置。

在event标签里,一般需要将断点设置在WinMain处。

寄存器。

ESP栈指针指向栈顶。

EIP当前要执行指令(无法通过寄存器面板修改,只能通过在反汇编窗口Neworiginhere改变EIP及当前执行指令的位置,程序会从这条指令开始执行)。

寄存器下方显示的是标志寄存器。

C,P,......,O;只能在0/1之间切换。

单步追踪。

F2设置断点。

F7单步步进遇到call指令跟进。

F8单步步过遇到call指令路过,不跟进。

F9/菜单栏中播放按钮运行程序。

F12暂停程序处理死循环使用。

Ctrl+F2重新调试目标程序(OD将结束目标进程并重新加载它)。

Ctrl+F7在用户按ESC/F12或遇到其他断点时停止重复单步步进。

Ctrl+F8在用户按ESC/F12或遇到其他断点时停止重复单步步过。

Ctrl+F9直到出现ret指令时中断,返回调用call指令的位置。

执行到返回(Executetillreturn)OD会停止在第一个ret/retf/iret遇到ret指令时暂停还是路过在调试选项中设置。

➖在进入子程序的过程中,回看之前单步追踪的代码。

Alt+F9若进入系统领空,可瞬间回到应用程序领空Executetillusercode(执行到用户代码)。

双击EIP或者点击view菜单中的C让光标回到当前EIP指向的语句。

OD菜鸟的福音(经典讲解CALL的找法)

OD菜鸟的福音(经典讲解CALL的找法)详细教程目录第一章概述 (1)第二章组件 (5)一、一般原理[General prnciples] (5)二、反汇编器[Disassembler] (8)三、分析器[Analysis] (9)四、Object扫描器[Object scanner] (12)五、Implib扫描器[Implib scanner] (12)第三章 OllyDbg的使用 (13)一、如何开始调试[How to start debugging session] (13)二、CPU 窗口[CPU window] (14)三、断点[Breakpoints] (14)四、数据窗口[Dump] (15)五、可执行模块窗口[Executable modules window] (16)六、内存映射窗口[Memory map window] (17)七、监视与监察器[Watches and inspectors] (19)八、线程[Threads] (19)九、调用栈[Call stack] (20)十、调用树[Call tree] (21)十一、选项[Options] (21)十二、搜索[Search] (22)十三、自解压文件[Self—extracting (SFX) files] (22)十四、单步执行与自动执行[Step—by—step execution and animation] (23)十五、Hit跟踪[Hit trace] (23)十六、Run 跟踪[Run trace] (24)十七、快捷键 (26)十八、插件[Plugins] (29)十九、技巧提示[Tips and tricks] (29)第四章其他功能 (30)一、调试独立的DLL[Debugging of stand—alone DLLs] (30)二、解码提示[Decoding hints] (32)三、表达式赋值[Evaluation of expressions] (32)四、自定义函数描述[Custom function descriptions] (34)概述OllyDbg 是一种具有可视化界面的32 位汇编—分析调试器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档