Hex Comparison注册分析

本文仅用于学习用途,支持正版。

在学习Flexlm ECC patch过程中,需要对比下别人patch的exe和原本exe的差异,使用到这款Hex Comparison这款二进制比较工具。那么就先来学习一下这款软件的注册机制。


使用的软件版本: 4.0


第一步: 查壳发现无壳


Hex Comparison注册分析


第二步: 瞎注册一下,看有什么提示字符


Hex Comparison注册分析

看来我们需要输入正确格式的邮箱地址。
Hex Comparison注册分析
到这里看到邮箱地址是没问题了,下一步搞定注册码。


第三步:既然它给我们这么多提示信息,那么我们使用OD查找一下


很快就定位到了0040DEB0这个地址引用了:


Hex Comparison注册分析


第四步:拖到IDA里面分析一下这个地址附近的流程


a:分析0040DEB0这个地址附近的代码[_TForm3_BitBtn2Click函数内]


Hex Comparison注册分析


b:继续分析


Hex Comparison注册分析


c:预备工作


先来看一下第127-130行:


unknown_libname_46(v36);
TControl::GetText(a1[191]);
*(_BYTE *)(dword_4DB510 + 1236) = sub_40BE50(v36[0]);
sub_4CDA5C(v36, 2);


通过浏览周边发现这么个模式即


unknown_libname_46(变量)
TControl::GetText(a1[xxx]);
sub_4CDA5C(变量, 2);


猜测并结合OD调试可以把unknown_libname_46改名BInitStr,sub_4CDA5C改名为BReleaseStr。


其次,从形式上看sub_40BE50(v36[0]),像是要把字符串的第一个字符传递进函数去做运算,但是结合调试发现其实传递进去的就是第一个字符的引用,函数里面还是要通过这个字符来使用这个字符串中的其他字符。


d: 分析函数sub_40BE50


Hex Comparison注册分析
Hex Comparison注册分析
Hex Comparison注册分析


e: 完事大吉


运行发现注册失败,接着在IDA中分析,发现在_TForm3_BitBtn2Click函数内还有一个判断的地方。


Hex Comparison注册分析


第五步:总结注册码


第0位:随意设定
第1位: 1
第2-9位:随意设定
第10位: Y
第11-18位:根据第2-9位计算得到
第19-22位: 随意设定
第23位: 必须是数字
第24-39位: 根据第1-18位计算得到
第40-43位: 'HFC2'
又注册码中必须含有邮箱地址,故第44位开始加上邮箱地址[其中有个地方是将邮箱的.替换成at符号,忘记是在哪块了]


第六步:总结


a. IDA有些变量识别的不准确需要配合调试使用,也可能是自己使用IDA不熟练,没有掌握到窍门。碰到有赋值使用的变量和没赋值就使用的变量要特别关注。

b. 注册成功后发现这个软件不能正确的比较前言提到的两个exe差异的地方,以前这个软件工作的好好的。

c. 附件文件仅供参考,不能正确运行。


d. 如果错误,请大家指正,我会及时修正。




Hex Comparison注册分析


看雪ID:wx_匚

https://bbs.kanxue.com/user-home-767991.htm

*本文为看雪论坛优秀文章,由 wx_匚 原创,转载请注明来自看雪社区

Hex Comparison注册分析

# 往期推荐

1、IOFILE exploit入门

2、入门编译原理之前端体验

3、如何用纯猜的方式逆向喜马拉雅xm文件加密(wasm部分)

4、反恶意软件扫描接口(AMSI)如何帮助您防御恶意软件

5、sRDI — Shellcode反射式DLL注入技术

6、对APP的检测以及参数计算分析


Hex Comparison注册分析


Hex Comparison注册分析

球分享

Hex Comparison注册分析

球点赞

Hex Comparison注册分析

球在看

原文始发于微信公众号(看雪学苑):Hex Comparison注册分析

版权声明:admin 发表于 2023年10月11日 下午6:00。
转载请注明:Hex Comparison注册分析 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...