最近,我还在致力于Momo小游戏的开发,发现了一些有趣的事情,所以在这里记录一下。
这段时间我还在开发一些小游戏、小程序,但是有时候发现表现不是那么理想(其实我的小新手水平有限),所以我就想,我想看看怎么做其他前辈处理这种问题(虽然我只是想看看高手们是怎么写他们的代码的!)。 而且还有一个问题,小游戏或者小程序不同于H5、网页,无法直接用F12查看代码。 你怎样才能得到他们的代码?
经过一番搜索折腾,加上百度,找到了一个还是可行的方法:就是通过手机上缓存的小程序文件反编译恢复原来的代码。
具体如何实现呢,我们来详细说一下:
首先你需要知道小程序在手机中的文件存储位置
——那么这个地点到底是哪里呢?
————具体目录位置:/data/data/com.tencent.mm/MicroMsg/{{一串32位16补码字符串名称文件夹}}/appbrand/pkg/这个目录下会有一些A后缀如xxx.wxapkg的文件是小程序或小游戏包。
———xxx.wxapkg是什么?
—————微信小程序源码阅读笔记1 这里有详细的介绍文件游戏源码博客,你可以看一下。
然后获取小程序的.wxapkg包
——我的获取方式:我在笔记本上使用了root过的Android手机模拟器游戏源码博客,在上面安装了RE文件管理器,然后通过管理器获取到了。
- - 执行:
1.安装手机模拟器(这里我用的是夜神模拟器)
下载链接:…
2、模拟器上安装Momo、QQ、RE管理器
先将RE管理器下载到笔记本上,然后拖到模拟器上。
RE管理器下载地址:pan.baidu.com/s/1PPBx08rN...
莫莫、QQ直接下载就可以模拟了。
3.设置超级用户
安装RE管理器后,需要设置RE的超级用户权限。
4. 缓存小游戏或小程序
打开陌陌后,找到您想要获取代码的小游戏或小程序,然后打开该小游戏或小程序。 程序开始运行后,源文件已经下载到本地。
5.找到源文件
将模拟器的操作页面切换到桌面,运行RE管理器,然后在管理器上找到上面提到的目录:
/data/data/com.tencent.mm/MicroMsg/{{一串32位16补码字符串名称文件夹}}/appbrand/pkg/
这里这个就是我们需要的源文件包,然后我们可以通过访问的时间找出刚才运行的是哪个程序。
6. 压缩
我们需要先压缩要使用的文件。 如果文件未压缩,会提示文件无效。
按住该文件,会出现一个工具栏,然后点击工具栏侧面的按钮,选择压缩所选文件
压缩完成后按照提示点击查看
7.发送到笔记本
找到想要的文件后,按住该文件,会出现一个工具栏,然后点击工具栏侧面的按钮,选择发送,然后选择你要发送的位置(三种选择方式,只要你能拿到这个文件就可以了)
8. 获取文件
这就是我们需要的文件。 下一步是反编译并解析出源代码。
最后反编译
——首先反编译使用node.js运行环境
———节点下载地址:nodejs.org/en/
——然后反编译脚本(GitHub上qwerty472123高手写的node.js版本)
————下载地址github.com/qwerty47212...
这两个安装好后,打开编译脚本所在的文件夹,然后shift+鼠标右键,在菜单中选择“在此处打开命令窗口”
然后安装以下依赖项:
npm 安装 esprima
npm 安装 css-tree
npm 安装 css 美化
npm安装vm2
npm installluglify-es
npm installjs-beautify
这些都安装完毕后,就到了最后一步反编译了:
继续在当前命令行中输入
nodewuWxapkg.js[-d]//files是要反编译的文件名
例如:有一个文件_-1568765780_11.wxapkg
直接复制地址栏中的地址+文件名
节点.wuWxapkg.jsC:UsersAdministratorDesktopapp123_-1568765780_11.wxapkg
输入运行
完成后,源文件所在文件夹中会出现一个同名文件夹。 该文件夹包含您需要的所有小游戏或程序的源代码。
至此,一切就完成了,剩下的就可以自由发挥了。