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 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 记录第一次wx小程序逆向 -> 正文阅读

[移动开发]记录第一次wx小程序逆向


前言

之前也听说过小程序逆向,但是感觉难度不会很大,然后这段时间接触了一下,好家伙,开眼了。
一开始准备抓包看看,结果pc,手机端,模拟器都没有抓到数据,只有图片的请求,具体数据包一个没有,Wireshark尝试了一下,太难用了,就放弃了,这时候庆幸我好兄弟彦祖兄拉了我一把,教了个骚操作调试,同时给了一个想法,这个小程序可能是用的js调用app内的方法发出的请求,所以这边抓不到请求的包,同时又无法去hook app。
在这里插入图片描述

然后好兄弟给了几个方法思路,我一个都不会,就尝试自己弄了一下,发现数据所在的标签class属性能直接在反编译好的小程序中直接搜到!
在这里插入图片描述


一、准备阶段

准备夜神模拟器,具体自己百度,这里我使用的安卓5的模拟器,不知道高版本会不会有影响,但是多一事不如少一事,先把意外元素去掉
在这里插入图片描述
弄好之后下个wx和mt文件管理器,其实不下也行,自带的文件管理也可以用,然后就是xposed神器和JustTrustMe这里给个下载链接
链接:https://pan.baidu.com/s/1CkoWeKFvzTh-IxA47TDPvA
提取码:pypy
xposed安装失败看一下我之前的文章
https://blog.csdn.net/Ig_thehao/article/details/120554696
然后进入wx的时候,记住不要点任何其他的小程序,直接进入需要逆向的小程序,之后在/data/data/com.tencent.mm/MicroMsg/一串很长的数字字母/appbrand/pkg下把所有的wxapk复制出来。


下载 nodejs
下载 wxappUnpacker
https://github.com/ROBOT008/wxappUnpacker
在解压缩后的文件夹内安装依赖:

npm install esprima
npm install css-tree
npm install cssbeautify
npm install vm2
npm install uglify-es
npm install js-beautify

再准备一个wx小程序开发者工具,这个直接官网下载就行了

二、使用步骤

准备完毕之后,开始反编译小程序,将之前的wxapk文件全部粘贴到wxappUnpacker解压后的文件夹内,当前目录下cmd

node wuWxpkg.js 主包文件

有些小程序是有分包需要 使用 -s 来反编译分包

node wuWxpkg.js 分包文件 -s=./刚刚解包的主包文件夹

可能解包中存在问题可以参考下面博客解决
https://blog.csdn.net/hao_ws/article/details/106737513

接着打开微信开发工具,选择主包文件夹编译,从这里开始就要根据自己小程序报的错来解决了参考链接
在这里插入图片描述
在这里插入图片描述

__plugin__和路径的问题可以忽略,wxml之类的问题我是直接删掉相关的代码,其他可能的问题如下:
_typeof3 is not function
参考博客:
https://blog.csdn.net/weixin_42981560/article/details/120911445
@babel/runtime/helpers/typeof.js 文件 全部替换 如下代码即可


function _typeof2(o) {
  "@babel/helpers - typeof";
  return (_typeof2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
      return typeof o;
  } : function(o) {
      return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
  })(o);
}
 
 
function _typeof(o) {
  return "function" == typeof Symbol && "symbol" === _typeof2(Symbol.iterator) ? module.exports = _typeof = function(o) {
      return _typeof2(o);
  } : module.exports = _typeof = function(o) {
      return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : _typeof2(o);
  }, _typeof(o);
}
 

module.exports = _typeof;

提示getLocation需要在app.json中声明permission字段
参考链接:
https://www.jb51.net/article/181833.htm
app.json中加入下面这段代码

"permission": {
  "scope.userLocation": {
   "desc": "你的位置信息将用于小程序位置接口的效果展示"
  }
 }

还有一个wx登录的问题,这个直接抓包替换请求就行

三,逆向过程

从之前找到wxml中发现同级下js文件中找到了一段请求数据在这里插入图片描述
同时在登录send发送附近单步执行找到了以下js
在这里插入图片描述
无混淆js看着就是舒服,可以直接调试看出是所有其他参数json+时间戳,MD5之后的就是sign,到这里逆向完毕,然后就是抓包模拟请求了

总结

结果发现是云函数,第一次接触云函数我还有点不服,在了解了云函数之后,ok放弃

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-12-24 18:35:55  更:2021-12-24 18:36:53 
 
开发: 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/24 10:58:33-

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