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

微信小程序逆向 -- 易推无水印

时间:2023-01-18 01:15:34

相关推荐

微信小程序逆向 -- 易推无水印

微信小程序逆向案例 – 易推无水印

前言:

①仅作学习所用,不可非法利用

②网页结构的变化较多,代码的可用周期较短,仅作学习分享思路

③如有侵权,请联系我删除!!谢谢

所需工具:
Node环境安卓模拟器appiumwxappUnpacker微信开发者工具
参考blog:
wxappUnpacker的使用adb shell
正文

​ 私以为微信小程序可以简单的理解为:微信在内部封装了一个浏览器并提供了一下接口API供开发者开发网页, 且微信提供一套类似于Vue的框架帮助你快速开发。,最终以APP中小程序的形式呈现。

​ 以夜神模拟器(安卓版本5,微信版本7.0.17)为例,当我们打开一个小程序时,该小程序的前端都会以wxapkg的压缩包形式下载到本地,例如浏览器中的Source资源,会在本地有一个缓存。具体位置在

/data/data/com.tencent.mm/MicroMsg/016407466c27a6a659baa3d49bead133/appbrand/pkg

​ 其中016407466c27a6a659baa3d49bead133为微信用户的个人文件夹,每登入一个用户用户都会创建一个文件夹用于缓存用户的个人信息。

​ 一个能够快速找到的方法是根据时间,一般你在模拟器中登陆微信,这个由于写入缓存这个文件的最后操作时间就会更改为离你最近的时间,我们可以依次更快的定位到当前登录账号的缓存文件。

​ adb pull可以实现安卓与PC的文件传输,我们在安卓手机中长按小程序的wxapkg将其打包为一个zip压缩包,之后通过adb pull将其传输到PC端。

# 电脑发文件到手机adb push <电脑路径> <手机路径># 手机发文件到电脑adb pull <手机路径> <电脑路径>

​ 由于这个wxapkg的目录比较深这边提供一个更快速的方法

adb shell#进入adb shell 如果爆连接设备不唯一就指定设备#进入到shell 之后就和Liunx的操作一致我们可以通过cd + tab补全快速定位到wxapkg所在目录之后复制所需的路径就好了adb pull 安卓端文件路径 PC端路径

​ 传输完成后将其解压得到wxapkg就可以使用wxappUnpacker进行反编译了,在反编译之前需要下载wxappUnpacker所需要的第三方依赖

npm install esprimanpm install css-treenpm install cssbeautifynpm install vm2npm install uglify-esnpm install js-beautifynpm install escodegennpm install cheerio

​ 反编译结果如下:

​ 至此我们就获得了小程序的源码,在这里我们使用微信开发者工具进行动态调试。关于易推的小程序端抓包分析在这就不多做讲解了,易推返回数据的接口为

# 视频解析接口/Video/GetVideoInfo#请求荷载的data:

​ 其中字段text黏贴的解析文本,code、versionCode、appId、sign未知。

​ 在微信开发者工具中打开后呈如下样式,我们和谷歌浏览器一样ctrl shift F全局搜索这几个字段code、versionCode、appId、sign,结果如下:

​ 其中versionCode、appId为固定的 ,一个是小程序版本号,一个是小程序IP(唯一),code、sign未知,我们在微信开发者工具的network网络管理中查看GetCideoInfo的调用栈可以清晰的发现:

​ 打下断点其中e就是我们所需要的code,s为我们复制的文本和code的字典,在formParmas之后s变为

s:{text: "/F3Ia3b,复制本条信息,打开【小红书】App查看精彩内容!",code: "013BSP000QQDyL1NOh300mhr1r2BSP0Z"}t.formParmas(s):{appId: "wx9bd0e7e316a31f28"code: "013BSP000QQDyL1NOh300mhr1r2BSP0Z"sign: "365D449E46A0EAE13CEE94533AA0E59C"text: "/F3Ia3b,复制本条信息,打开【小红书】App查看精彩内容!↵"versionCode: "102"}

​ 进行到这里我们需要做的是向上追朔code=e,中code如何生成的,向下逆向t.formParmas(s)的加密函数。

​ 最后你会得到:code为wx.Login生成的临时登录身份,有效期为5min(详情看微信小程序开发文档),sign为md5加密。

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