IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 微信小程序逆向 -> 正文阅读

[移动开发]微信小程序逆向

微信小程序逆向

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

1.抓包分析:

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

在这里插入图片描述

在这里插入图片描述

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

微信包名:com.tencent.mm

小程序源码:/data/data/com.tencent.mm/MicroMsg/项目/appbrand/pkg
在这里插入图片描述
在这里插入图片描述

3.adb查看下文件:

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

nox_adb shell

cd  /data/data/com.tencent.mm/MicroMsg/

ls -l 查看时间 发现aaba04bb0ee1d78b101872e87bba14b8为项目名
在这里插入图片描述

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

pull至D盘project文件夹下:

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

在这里插入图片描述
下载解包工具 :https://github.com/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 = C116C7B2EE53E91E

 t = t.toLowerCase(), this.globalData.AES_KEY = e, this.globalData.AES_IV = t;

那么 t = "c116c7b2ee53e91e", AES_KEY = "451D73AB326D99F0E19E35EE2B7C611C"

AES_IV = t;   ---> AES_IV  = "c116c7b2ee53e91e"

在这里插入图片描述

7.动态调试

下载微信开发者工具:
在这里插入图片描述

在这里插入图片描述
断点调试
在这里插入图片描述

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-09-11 18:56:29  更:2021-09-11 18:58:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:09:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码