两步获取小程序源码

2019-03-25  本文已影响0人  锐心凌志

这种方法,并不能反编译出所有的小程序源码,请自知!

具体的局限请看:qwerty472123大神的md文件
https://github.com/qwerty472123/wxappUnpacker

下面是原文:
 最近在学习微信小程序开发,半个月学习下来,很想实战一下踩踩坑,于是就仿写了一个滴滴他们家的青桔单车小程序的前端实现,过程一言难尽,差不多两周时间过去了,发现小程序的坑远比想象的要多的多!!在实际练手中,完全是黑盒的,看到人家上线的小程序的效果,纯靠推测,部分效果在绞尽脑汁后能做出大致的实现,但是有些细节,费劲全力都没能做出来。很想一窥源码,查看究竟,看看大厂的前端大神们是如何规避了小程序的各种奇葩的坑。

于是就想到获取到小程序地源文件,然后再对其进行反编译还原为源代码,来作为学习参考。我百度了各种关于小程序地反编译教程,但是感觉都不太适合像我这样地初学小白,踩了挺多坑。在这里把我重新简化好的,快速地获取一个微信小程序源码的方式记录下来。

一、简单聊一下xxxxx.wxapkg

先来想想一个很简单的问题,小程序的源文件存放在哪

但是在微信服务器上,普通用户想要获取到,肯定是十分困难的,有没有别的办法呢?

那么如何才能在手机里找到小程序的源文件包呢?

二、准备材料

1.node.js运行环境

2.反编译的脚本

3.安卓模拟器(要求自带root权限)

三、详细步骤

使用安卓模拟器获取到.wxapkg文件

不用越狱,不用root,使用电脑端的安卓模拟器来获取是一个非常简单快捷的获取方式,具体步骤如下:
1.打开安装好的安卓模拟器,并在模拟器中安装QQ微信[RE管理器](https://www.baidu.com/s?wd=RE%E7%AE%A1%E7%90%86%E5%99%A8&tn=24004469_oem_dg&rsv_dl=gh_pl_sl_csd)

2.设置一下模拟器

这里写图片描述 这里写图片描述

3.接下来在模拟器里打开微信,然后在微信中运行你想要获取的下程序(这其实是让微信把小程序的源文件包从服务器下载到了本地了)

四、使用反编译脚本解包 wxapkg

如果运行出现了点问题:

1、可以试试,点击开发者工具详情去掉 es6转es5的勾,勾上不校验安全域名
2、 勾选了还是无法运行?那么请在详情里把基础版本库调低至1.5左右,再试试
3、出现找不到某些文件的情况怎么办?我只能告诉:删!删!删! app.json
里面,提示找不到那个文件,就将pages下注册的该页面语句暂时删除掉。删
到可以运行为止
4、还是无法运行?那就自己想办法吧!

五、两步即可完成

至此我们就通过非常简单的方式获取到了一个想要的小程序源文件,并对其进行了反编译还原 以后想要再反编译其他的小程序,非常快速,只需要两步

1.使用模拟器找到小程序.wxapkg文件
2.使用nodejs反编译脚本将.wxapkg文件反编译

使用此方法,绝大部分的小程序都能正常反编译出来,但是也会有一些特殊的情况,具体可以查看qwerty472123大神的readme.md文件

六、写在后面的话

早在跳一跳小游戏火的时候,就有人通过小程序的appid和版本号,构造URL直接从服务器端下载该小程序的源码wxapkg文件。但是这种方法很快就被封了。

上线的源代码能如此简单的被获取到,不得不说小程序的源码安全存在一些隐患,不过现在的小程序开发框架会用babel这样的打包工具把js逻辑代码揉在一个js文件里,转编译成看不懂的代码,这样,即使被获取了源码,也很难窥得蛛丝马迹

七、常见问题

Error: Cannot find module 'uglify-es' at Function.Module._resolveFilename (module.js:547:15) at Function.Module._load (module.js:474:25) at Module.require (module.js:596:17) at require (internal/module.js:11:18) at Object.<anonymous> (D:\learn\weixinsmall\jiema\wxappUnpacker-master\wuJs.js:3:16) at Module._compile (module.js:652:30) at Object.Module._extensions..js (module.js:663:10) at Module.load (module.js:565:32) at tryModuleLoad (module.js:505:12) at Function.Module._load (module.js:497:3)
解决方法:
提示的很明显,缺少uglify-es依赖啊 在当前目录下把下面都执行一遍安装完依赖就好了

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

逍遥模拟器获取文件:
http://bbs.xyaz.cn/thread-52540-1-1.html

上一篇下一篇

猜你喜欢

热点阅读