GeekCat 发表于 2014-6-30 23:22:06

Batch Image Resizer V2.88 追码、爆破

【文章标题】:Batch Image Resizer V2.88    追码、爆破【文章作者】: geekcat
【作者邮箱】: [email protected]
【作者主页】:
【软件名称】: Batch Image Resizer V2.88   
【软件大小】: 739 KB (756,748 字节)
【加壳方式】: 无
【保护方式】: 注册码
【编写语言】: Microsoft Visual C++ 6.0
【使用工具】: OD、PEID
【操作平台】: XP SP3【下载地址】:http://www.onlinedown.net/softdown/29844_2.htm【破解声明】:破解在于交流思路和过程,结果并不重要,请不要用于非法用途;
【软件介绍】: 批量修改大小,旋转,转换图像的工具,支持的格式有:JPEG, BMP, GIF, PCX, PNG。新版本允许你在编辑GIJ动画文件前查看它。【破解声明】:PYG第九轮作业九--------------------------------------------------------------------------------------------------------------------------------【破解过程】
1、OD加载程序,运行输入注册信息提示“Thanks for registration! Please restart Batch Image Resizer.” 软件的主窗口上和关于里都有有“Trial Version”这样的字符串;2、搜索字符串,看到“Trial Version”、“Full Version”,双击来到汇编窗口,来到段首下断F9运行、断下F8向下走:代码:
00402B98      8B85 C8000000 mov eax,dword ptr ss:00402B9E   .85C0          test eax,eax00402BA0      74 43         je short BatchIma.00402BE5                        ;爆破这,启动时注册框没有了,软件主窗口试用版也变成了全功能版,但关于你显示的还是试用版   je 00402BA200402BA2   .68 24134200   push BatchIma.00421324                     ;(Full Version)00402BA7   .8D4C24 1C   lea ecx,dword ptr ss:………………………………………………………………………………………………………省略去中间N多代码00402BE0   .E9 9C000000   jmp BatchIma.00402C8100402BE5   >68 14134200   push BatchIma.00421314                  ;(Trial Version)00402BEA   .8D4C24 1C   lea ecx,dword ptr ss:
3、不是完美爆破这样肯定不行,于换个地方下手吧!软件有请提示请重启软件,这肯重启验证的了;开始查看注册信息保存在什么地方;4、在注册表里找到之前输入的注册信息,于是下注册表断点”RegQueryValueExA“F9跑起来,当在堆栈窗口出现以下信息返回程序领空;
0012E0E8   73DCA3D4/CALL 到 RegQueryValueExA 来自 mfc42.73DCA3D20012E0EC   000000BC|hKey = 0xBC0012E0F0   004213C8|ValueName = "Registration Code"0012E0F4   00000000|Reserved = NULL0012E0F8   0012E118|pValueType = 0012E1180012E0FC   003E40C0|Buffer = 003E40C00012E100   0012E110\pBufSize = 0012E1100012E104   0012F296ASCII "atchImageResizer.exe"
5、来到程序领空F8向下走;代码:
00405E8C|.52            push edx00405E8D|.E8 58080100   call <jmp.&MFC42.#535>00405E92|.8D4424 1C   lea eax,dword ptr ss:00405E96|.8BCE          mov ecx,esi00405E98|.50            push eax00405E99|.E8 82000000   call BatchIma.00405F2000405E9E|.8B7424 14   mov esi,dword ptr ss:            ; 爆破点: 修改为 或jmp short 00405ED3      假码:(ASCII "1234567890abcdefghijk")00405EA2|.8B4424 18   mov eax,dword ptr ss:          ;爆破点: 修改为 或jmp short 00405ED3   真码: (ASCII "L5Y9KYRG7YCKF2U7")       在信息窗口出现真码00405EA6|>8A10          /mov dl,byte ptr ds:00405EA8|.8ACA          |mov cl,dl00405EAA|.3A16          |cmp dl,byte ptr ds:00405EAC|.75 1C         |jnz short BatchIma.00405ECA                   ;这个循环是对比真假码的每一位,出现不等时就退出循环00405EAE|.3ACB          |cmp cl,bl00405EB0|.74 14         |je short BatchIma.00405EC600405EB2|.8A50 01       |mov dl,byte ptr ds:00405EB5|.8ACA          |mov cl,dl00405EB7|.3A56 01       |cmp dl,byte ptr ds:00405EBA|.75 0E         |jnz short BatchIma.00405ECA00405EBC|.83C0 02       |add eax,0x200405EBF|.83C6 02       |add esi,0x200405EC2|.3ACB          |cmp cl,bl00405EC4|.^ 75 E0         \jnz short BatchIma.00405EA600405EC6|>33C0          xor eax,eax00405EC8|.EB 05         jmp short BatchIma.00405ECF00405ECA|>1BC0          sbb eax,eax00405ECC|.83D8 FF       sbb eax,-0x100405ECF|>3BC3          cmp eax,ebx00405ED1|.75 0C         jnz short BatchIma.00405EDF                                  ;爆破点:修改为 jnz00405ED300405ED3|.C785 C8000000>mov dword ptr ss:,0x1               ;全部变量ebp+0xC800405EDD|.EB 06         jmp short BatchIma.00405EE500405EDF|>899D C8000000 mov dword ptr ss:,ebx00405EE5|>8D4C24 18   lea ecx,dword ptr ss:
注册名:[email protected]注册码:L5Y9KYRG7YCKF2U7
----------------------------------------------------------------------------------------------------------------------------【破解总结】:1、字符串没加密,容易切入注册验证流程中;2、注册信息明文保存,要改进;3、注册码明文出现寄存器里,这点要改进应该加密;4、真假两个注册码对比时,直接修改成真码跟真对比或假码跟假码对比,之前N大在有一课时也这样说了;5、直接修改跳过真假对比跳到全局变理处,去验证代码!----------------------------------------------------------------------------------------------------------------------------【版权声明】:本文原创于geekcat,转载请注明作者并保存文章的完整!



页: [1]
查看完整版本: Batch Image Resizer V2.88 追码、爆破