使用安卓模拟器获取任意小程序源码完整教程(多图预警!)

刚刚get到一个新技能,趁着热乎赶紧整理出来分享给大家。本教程适用于任何小程序的反编译,但大多数项目都做了代码的压缩混淆,尤其是使用第三方框架的。而且小程序开发工具也会做一层编译,所以破解得到的项目实际是最终编译过的,但这并不影响代码的可读性,毕竟主要逻辑还是在。而且如果是纯原生开发的小程序经过破解得到的破解包不管是项目结构还是可读性与原项目基本没差。

以新浪微博小程序为例进行实战操作

一、下载网易mumu模拟器,安装微信与re文件浏览器;

下载地址:网易mumu官网

二、登录微信在小程序页搜索小程序名称,找到并打开小程序,模拟器打开小程序有可能闪退,但不要紧,因为小程序包已经开始后台下载了;
三、回到模拟器桌面打开RE文件管理器,提示请求超级用户访问权限,点击永久记住选择,允许其获取root权限。(注意:一定要允许root权限!)
四、按此路径进入目录:
/data/data/com.tencent.mm/MicroMsg
  • MicroMsg会保存你的用户相关信息,每登录一个微信号就会产生一个哈希值作为用户标识进行对应,
    看时间找到最新的一个用户点进去;

  • 找到appbrand目录,里面包含2个文件夹,一个是pkg(执行文件),一个是jscache(缓存文件)

  • 进入pkg目录下,找到最近的一个.wxapkg的文件,这个就是刚刚缓存的小程序文件,但它是个二进制文件不能直接拿来用,需要对它进行反编译处理。

  • 长按文件将它进行压缩为tar格式,然后发送到别人的微信上,让他一会在转发给你即可。

流程图

五、.wxapkg 解包

兜兜转转绕了一圈我们终于拿到小程序的 .wxapkg 包,接下来就是如何将它反编译成为一个完整的项目了,首先 .wxapkg 文件到底是什么呢?你可能会认为它就是类似 Android 的 .apk 或者 iOS 的 .ipa 安装包,本质上是一个 .zip 压缩包?其实不是的,它是一个二进制文件,实际的文件结构如下图(图片取自文章 微信小程序源码阅读笔记):

如何编译:

  1. 打开终端,用git下载代码 git clone https://github.com/qwerty472123/wxappUnpacker.git

  2. 切换到wxappUnpacker目录使用cnpm i安装依赖,安装之前需要安装Node环境(自行安装);

  3. 解压得到的tar文件,得到wxapkg的路径,在wxappUnpacker目录下执行node node wuWxapkg.js + wxapkg文件路径即可。

  4. 看到以下输出说明反编译成功,这时候你就会得到一个项目文件了。


    5.使用编辑器打开文件夹开心的看大神们怎么实现各种功能的吧,总会对你有所启发,微博的这个小程序源码可读性特别高,除了样式文件,感觉已经全了,有图有真相。

目录结构:


代码片段:
局限(包括但可能不限于以下内容)
  • 实现中很多功能基于特定的版本(wcc-v0.6vv_20180111_fbi, 且不考虑面向低版本适配)和字符串搜索,所以不能很好的适应各种特殊情况。
    wxml 文件拥有不同于 xml 和 html

  • 文件的字符转义规则,且尚未公开(并非"没有"),因此未能很好的还原相关内容。

  • js 文件被压缩后会丢失原始变量名等信息内容无法还原;wxss 文件压缩后的注释也会丢失。

  • wxs 文件会将所有的变量如 Math 改为 nv_Math ,这里仅通过字符串替换去除。

  • 一些被引用 wxss 文件本身的源文件丢失,因此无法恢复原始目录。

  • 有些项目开启了难以复原的es6转es5选项,检验本项目结果是否正确时需要关闭项目中的es6转es5选项。

  • wxml 中一些无法找到相对应 的正向语句的内容无法还原。

  • json 中components项丢失,仅会标注被其他包引用的自定义组件。

最后欢迎大家关注公众号前端小苑,我会定期在这里发表原创文章。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
微信开发小程序模拟器中图片无法显示的问题可能有多种原因。根据引用内容,有以下几个可能的原因和解决方案: 1. 在安卓设备上,拼接的路径返回的是一个流,需要将其转换成base64格式才能正常显示。而在PC和iOS设备上可能内部已经做了处理,所以可以显示出来。因此,你可以尝试在安卓设备上对返回的流进行处理,将其转换成base64格式后再进行显示。\[1\] 2. 如果你在本地服务器上使用了localhost作为路径,而在手机上无法显示图片,可能是因为手机无法访问本地服务器。你可以将localhost替换为你的本机IP地址,确保手机和电脑连接在同一个WiFi网络下,这样手机才能访问到本地服务器上的图片。\[2\] 3. 另外,如果你在微信开发者工具中使用了英特尔显卡,可能会遇到图片无法显示的问题。你可以尝试打开英特尔显卡控制面板,依次进入显示器设置,将量化范围设置为全范围,然后保存应用。这样可能可以解决图片显示问题。\[3\] 综上所述,你可以尝试根据以上的解决方案来解决微信开发小程序模拟器中图片无法显示的问题。 #### 引用[.reference_title] - *1* [微信小程序 图片显示不出来的问题 100%管用](https://blog.csdn.net/qq_61033782/article/details/125779838)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [微信小程序在模拟器可以显示,手机扫编译二维码显示不了 解决办法](https://blog.csdn.net/m0_51094219/article/details/129773134)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [微信小程序开发工具模拟器不显示鼠标问题【推荐两方案】](https://blog.csdn.net/sdfjasad/article/details/124019401)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值