对一个微信小程序软件的逆向#
0x01#
因为最近有反编译微信小程序的需求,用了一个工具发现还不错,但是过了几天弹出了收费需求,感觉验证挺简单的。尝试破解一下。
因为运行之后在主程序上这是一个窗口,我不太懂逆向,根据我能理解的一点知识,我觉得或许能够将这个窗口给 push 掉。
0X02#
看到文件夹中的 pdb 和 DLL,猜测大概率是 C #写的,查了一下壳。#
丢入 dnspy 查看一下,
这个源码和接口明显就是混淆过的,感觉和 Net Reactor 的壳非常相似,尝试一下脱壳。
使用网上通用的 Net Reactor 脱壳方案即可脱壳成功,同时重新加载主程序进去看看。
这下代码都很正常了。
刚开始在主程序里面没有找到更新的那块代码,后来在 Common.dll 中找到了(同样混淆了,需要脱壳)
打个断点跑一下代码,看看退出的时候会断在哪里。
发现会上传挺多数据到服务器那边的,包含 BIOS USER 网卡 ID 主板编号 CPU 型号等信息,猜测应该是用作于支付后的状态确认。
如果打开支付页面 变量会成为 true 如果直接退出则是 false,直接搜索这个方法去看看那块代码。
程序更新也在这块代码里,逻辑也很简单。
一个 code 标志用于判断,如果 code 是 - 45 则打开赞助窗口,如果是 0,则进入下一步。
那这样破解思路也很简单了,只需要把他这块判断全部 nop 掉,然后最后填充一个 0 保持他原本的代码完整可以通过验证逻辑就行。
完事。