LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

软件逆向破解零基础入门实战11

admin
2025年12月16日 13:21 本文热度 966
零基础入门软件破解逆向新手入门篇第11篇。继续学习分析逆向一款最简单的crackme软件。

输入正确的注册码完成注册功能,如下图:
输入错误注册码直接报错。尝试找到关键位置破解软件直接注册或找到注册码计算的算法写出注册机。
    打开反汇编调试器OllyDBG,将要破解分析的软件拖进OD内,直接F9运行起来。和前面几篇一样,运用F12大法快速找关键位置。
    输入假的注册码后,点击Check按钮,弹出错误信息后。在OD调试器内按F12暂停软件,然后按alt+k观看是哪里调用了。
观察到调用MessageBoxA函数提示框,有个是软件地址的调用。值得注意。下一条也是程序模块的调用。401512,直接双击看看
刚好看到这个功能代码中有软件提示框的内容。大概这个功能就是要破解分析的关键内容。直接在段首下F2断点。
F9运行软件,再次点击Check按钮直接断下来。继续分析。。。。。

lstrlenA 是 Windows API 中用于计算以 null 结尾的 ANSI 字符串长度的函数,返回值为字符串中字符的个数(不包括终止 null 字符)。

获取假注册码并取它的长度,结果在EAX内。

​00401566  |.  8945 F0       mov [local.4],eax00401569  |.  837D F0 01    cmp [local.4],0x10040156D  |.  7316         jnb short 11.004015850040156F  |.  640push0x4000401571  |.  68 2C304000   push11.0040302C                         ;  ASCII "CrackMe"00401576  |.  6834304000push11.00403034                         ;  ASCII "Enter Registration Number"0040157B  |.  8B4D E0       mov ecx,[local.8]0040157E  |.  E8 7B050000   call <jmp.&MFC42.#4224>

这里是判断注册三长度是否大于1。

00401585  |> \8D4D E4       lea ecx,[local.7]00401588  |.  51            push ecx                                 ; /String2 = "<BrD-SoB>"00401589  |.  8D55 F4       lea edx,[local.3]                        ; |0040158C  |.  52            push edx                                 ; |String1 = "gzh:it036"0040158D  |.  FF15 00204000 call dword ptr ds:[<&KERNEL32.lstrcmpA>] ; \lstrcmpA00401593  |.  85C0          test eax,eax00401595  |.  7516         jnz short 11.004015AD00401597  |.  640         push 0x4000401599  |.  6850304000   push 11.00403050                         ;  ASCII "CrackMe"0040159E  |.  6858304000   push 11.00403058                         ;  ASCII "Correct way to go!!"004015A3  |.  8B4D E0       mov ecx,[local.8]004015A6  |.  E8 53050000   call <jmp.&MFC42.#4224>

lstrcmp是Windows API中的字符串比较函数‌。

这代码就是在对比两个字符是否相等,不相等直接跳转 注册码错误框。这里是关键位置。

第一种破解方法:比较ECX和EDX内容,此时将ECX内容修改成EDX一样即可完成破解。

在数据窗口跟随后,选择要修改的内容右键

直接修改成输入的注册码内容即可。

修改后F8往下走,跳转就变成灰色不跳了。
完成破解。
第二种方法:更直接的把JNZ直接NOP掉强制它完成注册:
修改后,可以将修改的保存成新软件后,就随便输入字符都能完成注册了。
第三种方法:找出它的注册码生成算法,逆推出注册码算法,写成注册机。这个软件从上面的对比发现它是和一个固定字符在比较。那它的真正的注册码为:
<BrD-SoB>
这样整个软件的分析和逆向就完成了。也是非常简单适合破解入门的新手学习和练手!


阅读原文:原文链接


该文章在 2025/12/16 15:11:41 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved