首页
论坛
专栏
课程

[调试逆向] [原创]关于MAGMAnode的简单分析

2019-7-1 23:33 874

[调试逆向] [原创]关于MAGMAnode的简单分析

2019-7-1 23:33
874
0.工具准备
MAGMASOFT v4.4 P28
Windows XP SP3
rhel-server-5.8-x86_64
ollydbg IDA
1.Windows下分析
MAGMASOFT 4.4版本通过替换MAGMAnode服务来实现破解。
MAGMAnode.exe直接用IDA分析发现加壳了,查壳工具看了下是VMP的(版本很老那是肯定的)。
用OD附加进程后直接用OllyDumpEx发现生成的文件可以稳定运行,再用IDA查看其实已经还原了(自己不是很懂加壳这块)。
将网上的crack版和原版MAGMAnode对比后发现很难找出到底改了哪个关键代码。

根据以下命令行 可以启动软件。

于是打算通过调试POSIX来看看启动过程,然而遇到sysenter,无法跟踪后续代码。


接着将OD设置为实时调试器,并配合下int3中断继续调试。
先断一处可疑的地方,看了下调用堆栈。



再把断点往前移看下完整的启动过程,最后发现关键函数send,以及偏移地址[ebp-4E4]所在的Socket包,其中第二行为授权用户SID加密后的数据。网上的crack就是伪造了这一行的数据,从而来骗过注册码算号的过程。


这里有一个简单的patch思路,在push 200h处用call来实现跳转(正好是干扰分析的无用代码处)
但是call 之后会将EIP先压入栈顶
所以call 之后要马上接一句pop 将EIP的值先暂时保存到一个临时内存处(可以是要替换的SID处)
然后就可以push 200h复原
再将EIP压入栈顶即可
后面用mov来实现SID的替换
最后ret回来(网上的crack比这个复杂)


2.Linux下分析
比较顺利的是Linux和Win下用的同一套注册算法,直接替换SID即可。而且Linux下的调用规则是mov eax,200h,patch更为简单。






[公告]安全测试和项目外包请将项目需求发到看雪企服平台:https://qifu.kanxue.com

最新回复 (0)
游客
登录 | 注册 方可回帖
返回