小程序代码丢失!反编译找回

简介: 小程序源代码的容易获取问题确实存在一些潜在的安全隐患。然而,现在的小程序开发框架采用像 Babel 这样的打包工具,将 JavaScript 逻辑代码混合在一个文件中并进行转编译,使其变得难以理解。

不适用于所有小程序,请自知。

为了学习微信小程序开发、看看大厂的前端大神如何规避小程序的各种奇葩的坑,于是就想到获取小程序的源文件,然后再对其进行反编译还原为源代码,来作为学习参考。

了解

  • _xxxx.wxapkg是什么?

    • 微信小程序的源文件,存放在微信的服务器上。当我们使用一个微信小程序的时候,其实是微信将它从服务器上下载到手机上,然后再来运行的,所以按照这个逻辑,我们是可以从手机本地存储找到这个已经下载过的小程序源文件。
    • .wxapkg是一个二进制文件,有其自己的一套结构。
  • 小程序的源文件在哪里?

    以安卓手机为例:

    具体目录位置:

    /data/data/com.tencent.mm/MicroMsg/{16进制字符}/appbrand/pkg/

    在这个目录下,会有一些_xxxx.wxapkg类型的文件,这些就是微信小程序的包。但是这个目录,用手机自带的文件管理器肯定是不行的,安卓iPhone都要使用第三方的文件管理器。

    推荐:RE文件管理器

微信小程序的格式:.wxapkg

重要说明:虽然微信小程序的包后缀是.wxapkg,但有一些包的依赖后缀也是.wxapkg,所以真正的小程序包大小为1M左右,而依赖包大小2、3M甚至更多。

报错:Error: This Package is unrecognizable, please decrypted every type of file by hand.可能就是这个没找对包的问题。

准备

详细步骤(使用安卓模拟器获取.wxapkg文件)

  1. 打开安装好的安卓模拟器,并在模拟器中安装微信RE管理器

  2. 设置模拟器:

    设置 => 超级用户 => 超级用户设置 => 自动响应:选择允许

    操作目的:为了能让RE管理器顺利获取到ROOT权限。

    设置模拟器

  3. 在模拟器中打开微信,然后在微信中运行想要获取的小程序(为了将小程序的源文件包微信服务器下载到本地)。

  4. RE管理器中找到需要的源文件包,长按文件,然后点击右上角选项选择压缩所选文件,再将压缩文件通过微信或其他方式发送到你使用的这台电脑我的电脑中。

  5. 解压文件,这样就在此电脑中拿到了小程序的源文件。

  6. 打开Node.js命令窗口或者本地CMD命令窗口,用cd命令进入到刚才下载的反编译脚本目录下,运行命令安装依赖:npm install

  7. 然后运行命令,进行反编译.wxapkg文件:

    node wuWxapkg.js [-d] <files>
    
    # 举个栗子
    node .\wuWxapkg.js D:\_xxxx.wxapkg
    
  8. 回车运行,反编译脚本会将.wxapkg文件还原为微信开发者工具能够运行的源文件,目录地址和反编译的文件地址一致。

  9. 到这一步,如果运行顺利的话,就结束了。

总结

小程序作为微信生态内的新生力量,备受官方、开发者和内容创业者的期望。但在考虑代码安全性的情况下,我们必须谨慎思考它的获取方式,因为未来这些方式可能会受到限制。小程序源代码的容易获取问题确实存在一些潜在的安全隐患。然而,现在的小程序开发框架采用像 Babel 这样的打包工具,将 JavaScript 逻辑代码混合在一个文件中并进行转编译,使其变得难以理解。这意味着即使源码被获取,也很难分辨出其内部细节。

目录
相关文章
|
6月前
|
JavaScript Java 测试技术
基于小程序的移动学习平台+springboot+vue.js附带文章和源代码说明文档ppt
基于小程序的移动学习平台+springboot+vue.js附带文章和源代码说明文档ppt
45 0
|
2月前
|
小程序 JavaScript Go
代码总有一个是你想要的分享63个微信小程序源
分享63个微信小程序源代码,包括电商系统、同城拼车、博客等多种应用,涵盖C#、Node.js、Golang等技术栈。每个项目附带源码和示例,适合初学者和开发者参考学习。提取码:8888,代码效果参考:http://www.603393.com/sitemap.xml。
54 2
|
3月前
|
小程序 前端开发 JavaScript
微信小程序实现微信支付(代码和注释很详细)
微信小程序实现微信支付(代码和注释很详细)
|
3月前
|
小程序 JavaScript 前端开发
微信小程序开发必备前置知识:基本代码构成与语法
【8月更文挑战第8天】微信小程序的基本代码构成与语法
100 0
微信小程序开发必备前置知识:基本代码构成与语法
|
3月前
|
小程序 JavaScript 安全
微信小程序实现云闪付支付(代码和注释很详细)
微信小程序实现云闪付支付(代码和注释很详细)
|
5月前
|
XML 小程序 Java
java小程序代码详细展示
java小程序代码详细展示
38 0
|
6月前
|
JavaScript Java 测试技术
基于小程序的健身管理系统及会员微信小程序+springboot+vue.js附带文章和源代码说明文档ppt
基于小程序的健身管理系统及会员微信小程序+springboot+vue.js附带文章和源代码说明文档ppt
49 2
|
6月前
|
JavaScript Java 测试技术
基于小程序的订餐系统+springboot+vue.js附带文章和源代码说明文档ppt
基于小程序的订餐系统+springboot+vue.js附带文章和源代码说明文档ppt
34 0
基于小程序的订餐系统+springboot+vue.js附带文章和源代码说明文档ppt
|
6月前
|
JavaScript Java 测试技术
基于小程序的汽车保养系统+springboot+vue.js附带文章和源代码说明文档ppt
基于小程序的汽车保养系统+springboot+vue.js附带文章和源代码说明文档ppt
37 0
|
6月前
|
JavaScript Java 测试技术
基于小程序的童装商城+springboot+vue.js附带文章和源代码说明文档ppt
基于小程序的童装商城+springboot+vue.js附带文章和源代码说明文档ppt
39 0