1 / 18

情境 10: 应用 32 位动态分析 技术破解密码

情境 10: 应用 32 位动态分析 技术破解密码. 编写加密软件. 10.1 软件加壳原理 10.2 动态验证原理 10.3 OliIce 的使用方法 10.4 ColorPiker 的破解. 重点、难点. 本单元的重点是: 掌握 OllyDbg/OllyIce 的使用方法 。 本单元的难点是: 使用 OllyDbg/OllyIce 对 ColorPiker 进行破解 。. 预备知识. 软件加壳原理

inara
Download Presentation

情境 10: 应用 32 位动态分析 技术破解密码

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 情境10:应用32位动态分析技术破解密码

  2. 编写加密软件 • 10.1 软件加壳原理 • 10.2 动态验证原理 • 10.3 OliIce的使用方法 • 10.4 ColorPiker的破解 计算机信息加密与解密

  3. 重点、难点 • 本单元的重点是: • 掌握OllyDbg/OllyIce的使用方法 。 • 本单元的难点是: • 使用OllyDbg/OllyIce对ColorPiker进行破解 。 计算机信息加密与解密

  4. 预备知识 • 软件加壳原理 • 所谓加壳,是一种通过一系列数学运算,将可执行程序文件或动态链接库文件的编码进行改变(目前还有一些加壳软件可以压缩、加密驱动程序),以达到缩小文件体积或加密程序编码的目的。 •   当被加壳的程序运行时,外壳程序先被执行,然后由这个外壳程序负责将用户原有的程序在内存中解压缩,并把控制权交还给脱壳后的真正程序。一切操作自动完成,用户不知道也无需知道壳程序是如何运行的。一般情况下,加壳程序和未加壳程序的运行结果是一样的。 •   如何判断一个可执行文件是否被加了壳呢有一个简单的方法(对中文软件效果较明显)。用记事本打开一个可执行文件,如果能看到软件的提示信息则一般是未加壳的,如果完全是乱码,则多半是被加壳的。 计算机信息加密与解密

  5. 预备知识 • 动态验证原理 • 当用户从网络上下载某个共享软件(Shareware)后,一般都有使用时间上的限制,当过了共享软件的试用期后,你必须到这个软件的公司去注册后方能继续使用。注册验证过程一般是用户把自己的私人信息(一般主要指名字)连同信用卡号码告诉给软件公司,软件公司会根据用户的信息计算出一个序列码,在用户得到这个序列码后,按照注册需要的步骤在软件中输入注册信息和注册码,其注册信息的合法性由软件验证通过后,软件就会取消掉本身的各种限制,这种加密实现起来比较简单,不需要额外的成本,用户购买也非常方便,在互联网上的软件80%都是以这种方式来保护的。 计算机信息加密与解密

  6. 操作过程与要点 OllyDbg(简称OD) 是由Oleh Yuschuk(www.ollydbg.de)编写的一款具有可视化界面的用户模式调试器。OllyDbg结合了动态调试和静态分析,具有GUI界面,可以识别2300多个C和Windows API中的常用函数及其使用的参数,比较适合初学者,它对异常的跟踪处理相当灵活,可以处理其它编译器无法解决的难题,这些特性使得OllyDbg成为Ring 3级程序的首选工具。本文以OllyDbg 1.10版本为例进行介绍。 计算机信息加密与解密

  7. 计算机信息加密与解密

  8. OllyDbg的介绍与使用 Ollydbg的常用功能及操作: a.载入后继续运行程序(F9):调试运行载入的程序。 b.单步追踪(F7):遇到Call指令会跟入执行。 c.单步追踪(F8):遇到Call指令会不会跟入执行。 d.执行到所选代码(F4):选定某行后按F4即可执行到这里,可用于调出循环。 e.执行到返回语句(Ctrl+F9):当进入一个函数时可用来跳出这个函数体。 f.执行到程序的领空(Alt+F9):如果进入到引用的DLL模块领空,可以用此快捷键快速回到程序领空。 计算机信息加密与解密

  9. OllyDbg的介绍与使用 g.停止调试(ALT+F2)。 h.重新调试(Crtl+F2)。 i.查看“导入表”(Ctrl+N)。 j.查找虚拟地址(Ctrl+G)。 k.搜索汇编代码(Ctrl+F)。 l.设置断点(F2):设置断点后的虚拟地址会呈红色状态,要取消这个断点就再按一下F2键即可。 m.输入注释(;):在选定的行上按下分号键即可弹出输入注释的对话框。 n.输入标签(:):在选定的行上按下冒号键即可弹出输入标签的对话框。 o.在积存器窗口中双击积存器,可以修改积存器中的值。 计算机信息加密与解密

  10. ColorPiker的破解 • 【目标软件】ColorPicker v2.06 • 【破解工具】FileInfo,AspackDie,OllyDBG • 【破解平台】Windows XP • 准备工作 • 本课中所运用的软件工具和所要破解的软件如下: • 1、ColorPicker v2.06:准备破解的软件 • 2、FileInfo v4.01:用于检测软件的封装包 • 3、AspackDie v1.41:用于将原始文件脱壳 • 4、OllyDBG v1.1:动态调试工具 • 建议:独立设置一个目录,以便学习破解时方便。 计算机信息加密与解密

  11. ColorPiker的破解 破解步骤: (1)安装并运行ColorPicker v2.06 在程序主界面中单击About按钮,出现注册框,要求输入用户名及注册码。如图所示。 在用户名输入框中输入任意用户名和注册码,单击ok按钮,出现注册错误的提示窗口 计算机信息加密与解密

  12. ColorPiker的破解 (2)检测软件是否加壳 为检测方便,将FileInfo复制到ColorPicker的安装目录下,进入命令行模式,输入 >FileInfo ColorPicker.exe 窗口中提示行中出现“ASPack v2.11”字样,说明此文件的封装包(即壳)为ASPack 2.11,如图所示。 计算机信息加密与解密

  13. ColorPiker的破解 (3)脱壳 运行AspackDie.exe,出现文件查找对话框,将目前切换至ColorPicker v2.06的安装目录,选择可执行文件colorpicker.exe,点击“打开”按钮后,发现在当前目录下生成了一个名为unpacked.exe的文件,该文件即colorpicker.exe脱壳后的文件。 计算机信息加密与解密

  14. ColorPiker的破解 (4)动态分析 运行OllyDBG,单击菜单“文件/打开”或按快捷键F3打开去壳后的可执行文件unpacked.exe。在OllyDBG反汇编窗口的空白处点击鼠标右键,选择“超级字符串参考”—>“查找UNICODE”。在查找结果中我们发现了疑是注册成功的字符串“register successfully”,如图8.4-18所示。 计算机信息加密与解密

  15. ColorPiker的破解 004A031E E8 7162F9FF CALL Unpacked.00436594 004A0323 8B45 E0 MOV EAX,DWORD PTR SS:[EBP-20] 004A0326 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C] 004A0329 E8 9A85F6FF CALL Unpacked.004088C8 004A032E 837D F8 00 CMP DWORD PTR SS:[EBP-8],0 // 判断是否输入了用户名 004A0332 0F84 9B010000 JE Unpacked.004A04D3 //为零跳转 004A0338 8D45 DC LEA EAX,DWORD PTR SS:[EBP-24] 004A033B 50 PUSH EAX 004A033C 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8] 004A033F BA 2E391E00 MOV EDX,1E392E 004A0344 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] 004A0347 E8 8C020000 CALL Unpacked.004A05D8 // 关键call,用于计算注册码 004A034C 8B55 DC MOV EDX,DWORD PTR SS:[EBP-24] 004A034F 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C] 004A0352 E8 6945F6FF CALL Unpacked.004048C0 // 判断注册码是否正确004A0357 0F85 41010000 JNZ Unpacked.004A049E //跳转到刚才的注册错误信息处 计算机信息加密与解密

  16. ColorPiker的破解 这段代码中有很明显的字符串比较指令和2个跳转指令,并且其中一个和产生注册错误信息有很直接的联系,我们假定这里就是注册算法结果比较的结尾部分,并在地址004A0323处下断点,然后按快捷键F9执行程序。为什么要在地址004A0323处设置断点呢?因为没有必要走的太远,尽量要相对近些,以便在作单步分析时,比较容易得到结果,提高效率。 程序运行后,单击About按钮,出现注册框,输入用户名“test”和注册码“abc123”,单击OK按钮后断点被触发,返回到OllyDBG窗口,按F8键单步执行,同时观察右边的寄存器和堆栈数值。运行至地址004A0326代码行时,右侧寄存器EAX数值中出现输入的注册码,按F8键继续单步执行,运行至地址004A033F代码行时,右侧寄存器ECX数值中出现输入的用户名,继续单步执行,运行至地址004A034F代码行时,在寄存器EDX中出现类似“35398688-671972752-674517966”这样的数值,即有可能是注册码。我们将该数值记录下来并进行验证。 计算机信息加密与解密

  17. ColorPiker的破解 (5)验证注册码 重新运行colorpicker.exe,输入用户名“test”和记录的注册码“35398688-671972752-674517966”。这时程序弹出提示窗口显示注册成功信息,如图8.4-19所示,说明该软件已经被成功破解。 计算机信息加密与解密

  18. 再 见 ! 计算机信息加密与解密

More Related