180 likes | 401 Views
情境 10: 应用 32 位动态分析 技术破解密码. 编写加密软件. 10.1 软件加壳原理 10.2 动态验证原理 10.3 OliIce 的使用方法 10.4 ColorPiker 的破解. 重点、难点. 本单元的重点是: 掌握 OllyDbg/OllyIce 的使用方法 。 本单元的难点是: 使用 OllyDbg/OllyIce 对 ColorPiker 进行破解 。. 预备知识. 软件加壳原理
E N D
编写加密软件 • 10.1 软件加壳原理 • 10.2 动态验证原理 • 10.3 OliIce的使用方法 • 10.4 ColorPiker的破解 计算机信息加密与解密
重点、难点 • 本单元的重点是: • 掌握OllyDbg/OllyIce的使用方法 。 • 本单元的难点是: • 使用OllyDbg/OllyIce对ColorPiker进行破解 。 计算机信息加密与解密
预备知识 • 软件加壳原理 • 所谓加壳,是一种通过一系列数学运算,将可执行程序文件或动态链接库文件的编码进行改变(目前还有一些加壳软件可以压缩、加密驱动程序),以达到缩小文件体积或加密程序编码的目的。 • 当被加壳的程序运行时,外壳程序先被执行,然后由这个外壳程序负责将用户原有的程序在内存中解压缩,并把控制权交还给脱壳后的真正程序。一切操作自动完成,用户不知道也无需知道壳程序是如何运行的。一般情况下,加壳程序和未加壳程序的运行结果是一样的。 • 如何判断一个可执行文件是否被加了壳呢有一个简单的方法(对中文软件效果较明显)。用记事本打开一个可执行文件,如果能看到软件的提示信息则一般是未加壳的,如果完全是乱码,则多半是被加壳的。 计算机信息加密与解密
预备知识 • 动态验证原理 • 当用户从网络上下载某个共享软件(Shareware)后,一般都有使用时间上的限制,当过了共享软件的试用期后,你必须到这个软件的公司去注册后方能继续使用。注册验证过程一般是用户把自己的私人信息(一般主要指名字)连同信用卡号码告诉给软件公司,软件公司会根据用户的信息计算出一个序列码,在用户得到这个序列码后,按照注册需要的步骤在软件中输入注册信息和注册码,其注册信息的合法性由软件验证通过后,软件就会取消掉本身的各种限制,这种加密实现起来比较简单,不需要额外的成本,用户购买也非常方便,在互联网上的软件80%都是以这种方式来保护的。 计算机信息加密与解密
操作过程与要点 OllyDbg(简称OD) 是由Oleh Yuschuk(www.ollydbg.de)编写的一款具有可视化界面的用户模式调试器。OllyDbg结合了动态调试和静态分析,具有GUI界面,可以识别2300多个C和Windows API中的常用函数及其使用的参数,比较适合初学者,它对异常的跟踪处理相当灵活,可以处理其它编译器无法解决的难题,这些特性使得OllyDbg成为Ring 3级程序的首选工具。本文以OllyDbg 1.10版本为例进行介绍。 计算机信息加密与解密
OllyDbg的介绍与使用 Ollydbg的常用功能及操作: a.载入后继续运行程序(F9):调试运行载入的程序。 b.单步追踪(F7):遇到Call指令会跟入执行。 c.单步追踪(F8):遇到Call指令会不会跟入执行。 d.执行到所选代码(F4):选定某行后按F4即可执行到这里,可用于调出循环。 e.执行到返回语句(Ctrl+F9):当进入一个函数时可用来跳出这个函数体。 f.执行到程序的领空(Alt+F9):如果进入到引用的DLL模块领空,可以用此快捷键快速回到程序领空。 计算机信息加密与解密
OllyDbg的介绍与使用 g.停止调试(ALT+F2)。 h.重新调试(Crtl+F2)。 i.查看“导入表”(Ctrl+N)。 j.查找虚拟地址(Ctrl+G)。 k.搜索汇编代码(Ctrl+F)。 l.设置断点(F2):设置断点后的虚拟地址会呈红色状态,要取消这个断点就再按一下F2键即可。 m.输入注释(;):在选定的行上按下分号键即可弹出输入注释的对话框。 n.输入标签(:):在选定的行上按下冒号键即可弹出输入标签的对话框。 o.在积存器窗口中双击积存器,可以修改积存器中的值。 计算机信息加密与解密
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:动态调试工具 • 建议:独立设置一个目录,以便学习破解时方便。 计算机信息加密与解密
ColorPiker的破解 破解步骤: (1)安装并运行ColorPicker v2.06 在程序主界面中单击About按钮,出现注册框,要求输入用户名及注册码。如图所示。 在用户名输入框中输入任意用户名和注册码,单击ok按钮,出现注册错误的提示窗口 计算机信息加密与解密
ColorPiker的破解 (2)检测软件是否加壳 为检测方便,将FileInfo复制到ColorPicker的安装目录下,进入命令行模式,输入 >FileInfo ColorPicker.exe 窗口中提示行中出现“ASPack v2.11”字样,说明此文件的封装包(即壳)为ASPack 2.11,如图所示。 计算机信息加密与解密
ColorPiker的破解 (3)脱壳 运行AspackDie.exe,出现文件查找对话框,将目前切换至ColorPicker v2.06的安装目录,选择可执行文件colorpicker.exe,点击“打开”按钮后,发现在当前目录下生成了一个名为unpacked.exe的文件,该文件即colorpicker.exe脱壳后的文件。 计算机信息加密与解密
ColorPiker的破解 (4)动态分析 运行OllyDBG,单击菜单“文件/打开”或按快捷键F3打开去壳后的可执行文件unpacked.exe。在OllyDBG反汇编窗口的空白处点击鼠标右键,选择“超级字符串参考”—>“查找UNICODE”。在查找结果中我们发现了疑是注册成功的字符串“register successfully”,如图8.4-18所示。 计算机信息加密与解密
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 //跳转到刚才的注册错误信息处 计算机信息加密与解密
ColorPiker的破解 这段代码中有很明显的字符串比较指令和2个跳转指令,并且其中一个和产生注册错误信息有很直接的联系,我们假定这里就是注册算法结果比较的结尾部分,并在地址004A0323处下断点,然后按快捷键F9执行程序。为什么要在地址004A0323处设置断点呢?因为没有必要走的太远,尽量要相对近些,以便在作单步分析时,比较容易得到结果,提高效率。 程序运行后,单击About按钮,出现注册框,输入用户名“test”和注册码“abc123”,单击OK按钮后断点被触发,返回到OllyDBG窗口,按F8键单步执行,同时观察右边的寄存器和堆栈数值。运行至地址004A0326代码行时,右侧寄存器EAX数值中出现输入的注册码,按F8键继续单步执行,运行至地址004A033F代码行时,右侧寄存器ECX数值中出现输入的用户名,继续单步执行,运行至地址004A034F代码行时,在寄存器EDX中出现类似“35398688-671972752-674517966”这样的数值,即有可能是注册码。我们将该数值记录下来并进行验证。 计算机信息加密与解密
ColorPiker的破解 (5)验证注册码 重新运行colorpicker.exe,输入用户名“test”和记录的注册码“35398688-671972752-674517966”。这时程序弹出提示窗口显示注册成功信息,如图8.4-19所示,说明该软件已经被成功破解。 计算机信息加密与解密
再 见 ! 计算机信息加密与解密