软件逆向入门实战:进销存管理软件快速定位一字节破解软件未注册
|
admin
2026年4月29日 16:54
本文热度 81
|
免责声明
本文档所有内容仅供安全研究、学术交流与技术学习使用,严禁用于任何未经授权的逆向破解、网络攻击、隐私窃取、恶意软件开发。使用者应确保已获得目标软件权利人的合法授权并自行承担因使用本文档内容所产生的一切法律责任与后果,作者不对任何直接或间接损害承担任何责任,继续阅读即视为您已知悉并同意上述全部条款。
这是一个网友发给的一个进销存管理软件,未注册有功能限制。首先是打开软件点击注册,随便输入假的注册码发现有错误提示打开调试器 Ollydbg.exe,把软件拖入调试器后运行。输入假注册码后,弹出了错误提示框。我们用堆栈法找错误位置。可以看到,程序调用了消息函数MessageBoxA调用是程序模块地址的就双击它。007C3BFA /75 1B jnz Xjxc.007C3C17007C3BFC |6A 40 push 0x40007C3BFE |68 903C7C00 push jxc.007C3C90 ; 软件注册007C3C03 |68 9C3C7C00 push jxc.007C3C9C ; 注册成功,本程序所有功能限制下次启动时将被自动解除,欢迎您成为我们正式版本用户!007C3C08 |8BC3 mov eax,ebx007C3C0A |E8 1152CDFF call jxc.00498E20007C3C0F |50 push eax007C3C10 |E8 4F42C4FF call <jmp.&user32.MessageBoxA>
看到这里有个JNZ跳转,上面应该就是关键的地方。我们把这里直接NOP掉不让它跳转失败试试。修改后发现它有重启验证。把修改好的程序重新打开还是未注册。说明不是关键位置。
上面分析跳转失败的位置,前面CALL应该是比对。我们在前面的CALL进去看看,尝试下断点。重新加载程序,软件正常断了下来0081FEC6 8B95 C8FBFFFF mov edx,dword ptr ss:[ebp-0x438]0081FECC 8B43 14 mov eax,dword ptr ds:[ebx+0x14]0081FECF E8 C04BBEFF call jxc.00404A940081FED4 /75 07 jnz Xjxc.0081FEDD
这里直接就出现了真假码对比。非常惊讶,直接明码比较了!
0081FED4 /75 07 jnz Xjxc.0081FEDD0081FED6 |B3 01 mov bl,0x1
经过调试分析MOV B1,1是关键,把上面JNZ进行NOP后保存程序。程序就直接是注册版本了。程序重启也没出现试用对话框。直接是正式版。上面分析仅作为技术学习。总的来说是一款很优秀的国产软件,官网作者也在更新和升级的。也希望作者在下一版中对软件保护和算法进行升级。
阅读原文:https://mp.weixin.qq.com/s/UgBp6TXxT1wzRjzfsRtJig
该文章在 2026/4/29 16:54:41 编辑过