电脑磁盘出现了问题导致代码丢失了,刚好最近的代码都没有上传到git,真的很尴尬。

1、下载node js,前端开发的小伙伴都会有。

2、下载模拟器,夜神模拟器安卓版。官网https://www.yeshen.com/

3、下载反编译代码  git:https://gitee.com/ksd/wxappUnpacker/  上面有教程

4、安装模拟器以及下载微信app,re文件浏览器我也是安装了的,但是似乎没用到

wx小程序反编译为js代码_小程序

 

 5、熟悉小程序文件生成的地址以及如何拷贝到电脑

使用模拟器打开小程序后会在默认的文件夹生成pkg文件

点击这个图标弹出窗口如下:

wx小程序反编译为js代码_反编译_02

 

点击打开安卓文件夹进入目录,模拟器默认是开启了root的

wx小程序反编译为js代码_git_03

 

可以看到根目录,进入根目录

wx小程序反编译为js代码_xml_04

 

 然后依次进入data/data/com.tencent.mm/MicroMsg  然后停在这里就行了,进来就是这个样子

wx小程序反编译为js代码_小程序_05

 

目前第一个就是我浏览小程序生成的文件,最初是没有的,当你浏览了一个小程序后就会生成。

打开小程序后可以通过wx小程序反编译为js代码_git_06来回切换微信与文件夹,如下:

 

wx小程序反编译为js代码_ico_07

进入里面的7f630952801d3f32d5dee52d977f915e/appbrand/pkg

wx小程序反编译为js代码_git_08

 

 这个就是浏览的小程序文件,我们需要将两个文件拷贝出来进行反编译。

点击复制,上面就会出现一个粘贴选项

wx小程序反编译为js代码_git_09

 

然后切换到

wx小程序反编译为js代码_小程序_10

 

打开安卓文件夹,粘贴到这里面

wx小程序反编译为js代码_ico_11

然后打开电脑文件夹

wx小程序反编译为js代码_反编译_12

 

文件就存在里面了

wx小程序反编译为js代码_xml_13

 

6、反编译pkg文件

反编译代码安装

npm install

npm install esprima

npm install css-tree

npm install cssbeautify

npm install vm2

npm install uglify-es

npm install js-beautify

完成后目录如下,

wx小程序反编译为js代码_xml_14

pkg文件如下:

wx小程序反编译为js代码_ico_15

 

 

执行命令 node wuWxapkg.js  G:\test_wechat\_-2084398954_3.wxapkg     对主包执行即可,一般是比较小的那个

执行效果如下:

Unpack file G:\test_wechat\_-2084398954_3.wxapkg...

Header info:
  firstMark: 0xbe
  unknownInfo:  0
  infoListLength:  723
  dataLength:  510685
  lastMark: 0xed

File list info:
  fileCount:  20
Saving files...
Unpack done.
Split app-service.js and make up configs & wxss & wxml & wxs...
deal config ok
deal js ok
deal html ok
deal css ok
Decompile ./components/dialog/dialog.wxml...
Decompile success!
Decompile ./components/icon/icon.wxml...
Decompile success!
Decompile ./components/nav/index.wxml...
Decompile success!
Decompile ./pages/index/index.wxml...
Decompile success!
splitJs: G:\test_wechat\_-2084398954_3\app-service.js
G:\test_wechat\_-2084398954_3 utils/WXBizDataCrypt.js
G:\test_wechat\_-2084398954_3 utils/WxValidate.js
G:\test_wechat\_-2084398954_3 utils/api.js
G:\test_wechat\_-2084398954_3 utils/common.js
G:\test_wechat\_-2084398954_3 utils/config.js
G:\test_wechat\_-2084398954_3 utils/cryptojs/cryptojs.js
G:\test_wechat\_-2084398954_3 utils/cryptojs/lib/AES.js
G:\test_wechat\_-2084398954_3 utils/cryptojs/lib/BlockModes.js
G:\test_wechat\_-2084398954_3 utils/cryptojs/lib/Crypto.js
G:\test_wechat\_-2084398954_3 utils/cryptojs/lib/CryptoMath.js
G:\test_wechat\_-2084398954_3 utils/cryptojs/lib/DES.js
G:\test_wechat\_-2084398954_3 utils/cryptojs/lib/HMAC.js
G:\test_wechat\_-2084398954_3 utils/cryptojs/lib/MARC4.js
G:\test_wechat\_-2084398954_3 utils/cryptojs/lib/MD5.js
G:\test_wechat\_-2084398954_3 utils/cryptojs/lib/PBKDF2.js
G:\test_wechat\_-2084398954_3 utils/cryptojs/lib/PBKDF2Async.js
G:\test_wechat\_-2084398954_3 utils/cryptojs/lib/Rabbit.js
G:\test_wechat\_-2084398954_3 utils/cryptojs/lib/SHA1.js
G:\test_wechat\_-2084398954_3 utils/cryptojs/lib/SHA256.js
G:\test_wechat\_-2084398954_3 utils/cryptojs/test/PBKDF2-test.js
G:\test_wechat\_-2084398954_3 utils/demo.js
G:\test_wechat\_-2084398954_3 utils/request.js
G:\test_wechat\_-2084398954_3 utils/util.js
G:\test_wechat\_-2084398954_3 app.js
G:\test_wechat\_-2084398954_3 components/dialog/dialog.js
G:\test_wechat\_-2084398954_3 components/icon/icon.js
G:\test_wechat\_-2084398954_3 components/nav/index.js
G:\test_wechat\_-2084398954_3 pages/index/index.js
Splitting "G:\test_wechat\_-2084398954_3\app-service.js" done.
Guess wxss(first turn)...
Import count info: {}
Guess wxss(first turn) done.
Generate wxss(second turn)...
Generate wxss(second turn) done.
Save wxss...
saveDir: G:\test_wechat\_-2084398954_3
Split and make up done.
Delete files...
Deleted.

File done.
Total use: 704.634ms   

就反编译完成了,编译完成会缺失project.config.json 文件和部分其他静态文件,小事情补上即可。

到此就完成了反编译。

wx小程序反编译为js代码_xml_16

 

 惊险啊。