飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5395|回复: 0

[原创] Batch Image Resizer V2.88 追码、爆破

[复制链接]
  • TA的每日心情
    开心
    2019-3-25 14:18
  • 签到天数: 881 天

    [LV.10]以坛为家III

    发表于 2014-6-30 23:22:06 | 显示全部楼层 |阅读模式
    【文章标题】:  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
    破解声明】:破解在于交流思路和过程,结果并不重要,请不要用于非法用途;
    【软件介绍】: 批量修改大小,旋转,转换图像的工具,支持的格式有: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:[ebp+0xC8]
    00402B9E   .  85C0          test eax,eax
    00402BA0      74 43         je short BatchIma.00402BE5                        ;爆破这,启动时注册框没有了,软件主窗口试用版也变成了全功能版,但关于你显示的还是试用版   je 00402BA2
    00402BA2   .  68 24134200   push BatchIma.00421324                       ;  (Full Version)
    00402BA7   .  8D4C24 1C     lea ecx,dword ptr ss:[esp+0x1C]
    ………………………………………………………………………………………………………省略去中间N多代码
    00402BE0   .  E9 9C000000   jmp BatchIma.00402C81
    00402BE5   >  68 14134200   push BatchIma.00421314                    ;  (Trial Version)
    00402BEA   .  8D4C24 1C     lea ecx,dword ptr ss:[esp+0x1C]

    3、不是完美爆破这样肯定不行,于换个地方下手吧!软件有请提示请重启软件,这肯重启验证的了;开始查看注册信息保存在什么地方;
    4、在注册表里找到之前输入的注册信息,于是下注册表断点”RegQueryValueExA“F9跑起来,当在堆栈窗口出现以下信息返回程序领空;

    0012E0E8   73DCA3D4  /CALL 到 RegQueryValueExA 来自 mfc42.73DCA3D2
    0012E0EC   000000BC  |hKey = 0xBC
    0012E0F0   004213C8  |ValueName = "Registration Code"
    0012E0F4   00000000  |Reserved = NULL
    0012E0F8   0012E118  |pValueType = 0012E118
    0012E0FC   003E40C0  |Buffer = 003E40C0
    0012E100   0012E110  \pBufSize = 0012E110
    0012E104   0012F296  ASCII "atchImageResizer.exe"

    5、来到程序领空F8向下走;
    代码:

    00405E8C  |.  52            push edx
    00405E8D  |.  E8 58080100   call <jmp.&MFC42.#535>
    00405E92  |.  8D4424 1C     lea eax,dword ptr ss:[esp+0x1C]
    00405E96  |.  8BCE          mov ecx,esi
    00405E98  |.  50            push eax
    00405E99  |.  E8 82000000   call BatchIma.00405F20
    00405E9E  |.  8B7424 14     mov esi,dword ptr ss:[esp+0x14]            ; 爆破点: [esp+0x14]修改为[esp+0x18] 或jmp short 00405ED3      假码:(ASCII "1234567890abcdefghijk")
    00405EA2  |.  8B4424 18     mov eax,dword ptr ss:[esp+0x18]          ;  爆破点: [esp+0x18]修改为[esp+0x14] 或jmp short 00405ED3     真码: (ASCII "L5Y9KYRG7YCKF2U7")       在信息窗口出现真码
    00405EA6  |>  8A10          /mov dl,byte ptr ds:[eax]
    00405EA8  |.  8ACA          |mov cl,dl
    00405EAA  |.  3A16          |cmp dl,byte ptr ds:[esi]
    00405EAC  |.  75 1C         |jnz short BatchIma.00405ECA                   ;  这个循环是对比真假码的每一位,出现不等时就退出循环
    00405EAE  |.  3ACB          |cmp cl,bl
    00405EB0  |.  74 14         |je short BatchIma.00405EC6
    00405EB2  |.  8A50 01       |mov dl,byte ptr ds:[eax+0x1]
    00405EB5  |.  8ACA          |mov cl,dl
    00405EB7  |.  3A56 01       |cmp dl,byte ptr ds:[esi+0x1]
    00405EBA  |.  75 0E         |jnz short BatchIma.00405ECA
    00405EBC  |.  83C0 02       |add eax,0x2
    00405EBF  |.  83C6 02       |add esi,0x2
    00405EC2  |.  3ACB          |cmp cl,bl
    00405EC4  |.^ 75 E0         \jnz short BatchIma.00405EA6
    00405EC6  |>  33C0          xor eax,eax
    00405EC8  |.  EB 05         jmp short BatchIma.00405ECF
    00405ECA  |>  1BC0          sbb eax,eax
    00405ECC  |.  83D8 FF       sbb eax,-0x1
    00405ECF  |>  3BC3          cmp eax,ebx
    00405ED1  |.  75 0C         jnz short BatchIma.00405EDF                                  ;爆破点:修改为 jnz  00405ED3
    00405ED3  |.  C785 C8000000>mov dword ptr ss:[ebp+0xC8],0x1                 ;全部变量  ebp+0xC8
    00405EDD  |.  EB 06         jmp short BatchIma.00405EE5
    00405EDF  |>  899D C8000000 mov dword ptr ss:[ebp+0xC8],ebx
    00405EE5  |>  8D4C24 18     lea ecx,dword ptr ss:[esp+0x18]

    注册名:[email protected]
    注册码:L5Y9KYRG7YCKF2U7

    ----------------------------------------------------------------------------------------------------------------------------
    【破解总结】:
    1、字符串没加密,容易切入注册验证流程中;
    2、注册信息明文保存,要改进;
    3、注册码明文出现寄存器里,这点要改进应该加密;
    4、真假两个注册码对比时,直接修改成真码跟真对比或假码跟假码对比,之前N大在有一课时也这样说了;
    5、直接修改跳过真假对比跳到全局变理处,去验证代码!
    ----------------------------------------------------------------------------------------------------------------------------
    【版权声明】:
    本文原创于geekcat,转载请注明作者并保存文章的完整!




    评分

    参与人数 1威望 +20 飘云币 +20 收起 理由
    Nisy + 20 + 20 赞一个!

    查看全部评分

    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表