200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 微信小程序逆向

微信小程序逆向

时间:2020-01-14 18:38:45

相关推荐

微信小程序逆向

微信小程序逆向

大致思路:抓包分析–>加密参数查找–>小程序源码获取–>分析加密逻辑

1.抓包分析:

返回结果json中,data都是加密数据,初看一看为base64。

2.小程序源码都是微信放在本地的数据,故而在data/data/目录下。

微信包名:com.tencent.mm

小程序源码:/data/data/com.tencent.mm/MicroMsg/项目/appbrand/pkg

3.adb查看下文件:

我用的夜神模拟器(nox_adb):

nox_adb shellcd /data/data/com.tencent.mm/MicroMsg/

ls -l 查看时间 发现aaba04bb0ee1d78b101872e87bba14b8为项目名

4.将pkg pull至电脑本地,进行解包:

pull至D盘project文件夹下:

nox_adb pull /data/data/com.tencent.mm/MicroMsg/aaba04bb0ee1d78b101872e87bba14b8/appbrand/pkg D:\project

下载解包工具 :/xuedingmiaojun/mp-unpack

打开pkg,有多个wxapkg文件,查看大小,赛选出较大的进行解包。

解出来的包查看是否有app.js入口,从入口分析,若没有换其他的wxapkg文件解包。

5.将解出的包到入到node环境中

在编辑器中搜索下data参数,发现较多,直接在app.js入口搜索下,看有无初始化。

发现一处加密地方:

key: "_initEncryptParam",value: function() {for (var e = (0, u.md5)("sht_" + o.default.$appConfig.source + "_" + o.default.$appConfig.wechatCheckVer + "_" + p.ENCRYPT_KEY).toUpperCase(), t = "", a = e.length - 1; a > 15; a--) t += e.charAt(a);t = t.toLowerCase(), this.globalData.AES_KEY = e, this.globalData.AES_IV = t;}

6.静态分析代码:

md5("sht_" + "weapp" + "_" + "2.55.0" + "_" + "7B853E6EB9076E63BB4BEAC830561F40").toUpperCase()​md5("sht_weapp_2.55.0_7B853E6EB9076E63BB4BEAC830561F40").toUpperCase()​e = "451D73AB326D99F0E19E35EE2B7C611C"for (var e = "451D73AB326D99F0E19E35EE2B7C611C", t = "", a = e.length - 1; a > 15; a--) t += e.charAt(a);​t = C116C7B2EE53E91Et = t.toLowerCase(), this.globalData.AES_KEY = e, this.globalData.AES_IV = t;那么 t = "c116c7b2ee53e91e", AES_KEY = "451D73AB326D99F0E19E35EE2B7C611C"AES_IV = t; ---> AES_IV = "c116c7b2ee53e91e"

7.动态调试

下载微信开发者工具:

断点调试

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。