芒果验证最新版一键例子 分析思路和处理方法讨论
本帖最后由 xia先生 于 2023-4-22 11:02 编辑原始求助帖:https://www.52hb.com/thread-58354-1-1.html
东西我看了下。的确是芒果作者的VL壳授权。一些简单的东西我就文字描述了
丢到OD里。看区段信息VLicense经验可知。一般一键加验证的。都是内存加载DLL。
下断点GetVersion
堆栈可以看到内存加载DLL的函数地址,跟进去。易语言的DLL。那我们就吧FF25 易语言的初始化这里给他NOP掉。让他直接返回。
第二次断下时发现程序端已经解码写回了。堆栈中发现是验证DLL。同样的办法FF25 NOP掉初始化
第三次。第四次。第五次。第N次。一直在重复的加载验证DLL。
分析后得知 壳一直在调用 GetPrivateProfileStringA 函数。获取授权文件的信息。如果验证不通过。就死循环的加载验证DLL
验证他在VM区段里。我也没什么好办法去找爆破点。
尝试强行汇编调转到程序的OEP。
可以看到原始IAT没有被修改。但是IAT的调用函数被修改掉了。进IAT调用函数里面看看。
一堆的混淆和常量加减法。计算得到真实的IAT地址。但是因为我们是强行进来的。常量没有修复。所以得到的真实IAT地址是错误的。跟下去就奔溃了。
那就没什么好办法了。正版登录脱壳吧。
怎么脱壳。方法
1写程序跑VM。得到真实IAT地址。在IAT里面寻找指针。写回即可
2写脚本跑VM。得到真实IAT地址。在IAT里面寻找指针。写回即可
3跟我一样。偷懒。直接复制原始程序的汇编代码粘贴。。。
到这里就很容易了。直接 转储 修复。搞定问题
更新新方法:
正版登录看这里的值。0x00689000 +8 +0C 2个密钥。
密钥的分析和计算方法看新帖子:
https://www.52hb.com/thread-58436-1-1.html
因为程序大小问题。上传不了。我吧他的VM区段00412000大小0031A000用工具CFF删除了。缩减大小 谢谢楼主分享方法。 谢谢分享! 问题是,软件被加密后,没有原来程序,咋粘贴 阳光彩虹小白马 发表于 2023-4-21 18:59
问题是,软件被加密后,没有原来程序,咋粘贴
这里只讨论理论。方法是3个。其中我选择的是自写程序。您如果有需要。可以走RMB区给您安排。 xia先生 发表于 2023-4-21 20:51
这里只讨论理论。方法是3个。其中我选择的是自写程序。您如果有需要。可以走RMB区给您安排。 ...
你这破了个寂寞啊,根本连理论都不是啊,你这操作很迷啊,你说你帖子里讲的是个脱壳方法,但本质是壳都没脱。给你个加密的,你能有未加密前的IAT? xia先生 发表于 2023-4-21 20:51
这里只讨论理论。方法是3个。其中我选择的是自写程序。您如果有需要。可以走RMB区给您安排。 ...
走RMB区,你脚本写出来了吗,就走? 阳光彩虹小白马 发表于 2023-4-21 21:37
走RMB区,你脚本写出来了吗,就走?
已经写出来了程序。可以脱掉。您可以走RMB区试试看
页:
[1]
2