poxyman:抓包用
三、开干
1、安装工具
1、先下载官方utools安装包
2、安装nodejs
3、npm 安装asar,命令: npm i -g asar
首先进入程序目录如下:
进入中断输入以下命令:
asar e app.asar utools
会生成一个名叫utools的文件夹,用vscode打开即可看到js代码。可以用格式化文档命令,使用prettier插件格式化下,方便待会阅读代码。
3、寻找特征
先从app的这个提示入手
没什么卵用,这个信息找不到具体函数,改变思路,应用启动时候肯定要进行服务器请求,获取当前用户的信息,判断是不是会员,所以咱们掏出那个男人poxyman,开始抓包看请求地址:
就是这个请求,注意到有一个属性叫做purchased ,中文就是已购买:false,咱们就搜这个属性。
找到这个判断是不是已购买的函数,咱们从它入手。全局搜索,有一下三处调用,所以我们只要让这个函数返回会员信息,就大功告成。
根据函数内容,我们只要全都返回1即为会员身份,所以将所有return处改为1。
我们打包验证下:
asar p utools app.
替换原有app.asar,重启app,测试会员功能,
已经可用。
4、破解收费插件、
1、寻找插件文件
插件商店有很多插件是需要内购的,这些插件是需要自行下载的。比如这款gpt插件。我们尝试破解它,同理,我们先上抓包男,看看这个插件是下载下来的什么。
下载插件是这个请求,请求下来的是加密内容,
去代码中搜索这个接口,发现了调用的函数如下:,显然将请求的字节流内容保存到了某个asar文件中,那这就好办了,我们直接去utools数据目录找到这个插件文件。
前往如下文件夹:
按照时间排序找到最新的plugin文件,进行解包
asar e 0bd6fb01b1cc82cf7c1a40ebddc5f6da.asar pt
解包后vscode打开文件夹备用。
2、寻找破解特征
老办法,对于这样的需要登录的应用,启动时必然要有账号信息请求。所以我们打开插件登录账号后,重启插件进行抓包。
找到请求了,这个isvip参数摆明了就是突破口啊。我们先用抓包软件脚本功能,修改返回值试试看。直接返回true。
再次打开插件,发现vip功能已经可用,但是总不能每次都启动着poxyman使用插件,因此我们着手破解其源文件。
我们打开刚刚解号的包,直接搜索这个接口请求gpt-user/testVIP,啪的一下很快啊,就一个结果
根据变量定位到以下函数位置,return这个三元表达式咱们直接给他取反即可,
修改如下:
重新打包asar
asar p pt 0bd6fb01b1cc82cf7c1a40ebddc5f6da.asar
替换源文件,重启插件发现,插件打不开了???返回白屏
替换源文件又可以打开,怀疑主程序对插件文件做了md5校验。
咱们回到主程序源代码。搜索md5,果然找到如下代码
由pluginPath可见为插件md5校验,如果校验不通过就不会mount插件了,所以我们删除这块代码,保留mount。重新打包重启主程序,再次打开插件,成功打开了。测试会员功能可用。
四、后记
此类electron程序是我上手的第一款macos app ,对网上大佬们的教程表示衷心感谢,希望能加入论坛进行进一步的学习,后续我会进一步学习分享object-c编写的macos应用的逆向破解。希望能通过申请,谢谢。