近在自学QQ小流程开发,半个月自学下来,很想实战呵呵踩踩坑,只好品雅版了两个Lyft他们家的青桔电单车小流程的后端同时实现,过程不告而别,差不多两周时间过去了,辨认出小流程的坑相比而言想象的要多的多!!在实际练手中,完全是Vellore的,看到人家上线的小流程的效用,纯靠推测,部分效用在挖空心思后能做出大致的同时实现,但有些细节,稳当全力都没能做出来。很想一窥源码,查看究竟,看看小厂的后端天神们是怎样规避了小流程的各式各样残花的坑。

只好想到以获取到小流程地示例,接着再对其进行LLVM还原为源码,来作为自学参照。我腾讯了各式各样有关小流程地LLVM讲义,但感觉都不太适合像我这样地算数小白,踩了挺多坑。在这儿把我重新简化好的,快速地以获取两个QQ小流程源码的形式纪录下来。

单纯聊呵呵xxxxx.wxapkg

先来想想两个很单纯的问题,小流程的示例存放在哪?

总之是在QQ的伺服器上。

但在QQ伺服器上,FTP想以获取到,的确是非常困难的,有没有别的办法呢?

单纯思考呵呵他们采用小流程的场景就会明白,当他们登出来两个QQ小流程的时候,其实是QQ已经将它的从伺服器上浏览到了智能手机,接着再来运转的。所以,虽然他们没潜能从伺服器上以获取到,但他们应该能从智能手机本地找出到已经浏览过的小流程示例

那么怎样才能在智能手机里找出小流程的示例包呢?

这儿且以Android智能手机为例,毕竟穷逼不曾拥有过苹果公司智能手机具体产品目录位置间接给出:/data/data/com.tencent.mm/MicroMsg/{{一串32位的16十进制数组文档夹}}/appbrand/pkg/在这个产品目录下,会辨认出一些xxxxxxx.wxapkg类型的文档,这些就是QQ小流程的包

准备材料

node.js运转环境如果没有加装nodejs,请先加装呵呵浏览门牌号:http://nodejs.org/en/LLVM的脚本这儿提供两个Github上qwerty472123天神写的node.js版的,总之也有其它版的,这儿我只是单纯他用node.js版总括门牌号:github.com/qwerty47212…Android工具包(要求便携式root职权)我采用的是奇乐工具包,用来以获取小流程示例浏览门牌号:www.yeshen.com/cn/download…

详尽步骤:

QQ小流程的格式就是:.wxapkg.wxapkg是两个十十进制文档,有其自己的一套结构。有关.wxapkg的详尽内容能参照lrdcq天神的昌明:QQ小流程源码阅读笔记但这儿有位坑,想进入到上面这个产品目录的话,用智能手机便携式的文档命令行的确是不行的,Android或者iPhone都要要加进第三方的文档命令行,比如:RE文档命令行,并且Android需要取得root职权,而苹果公司智能手机的确是要逃狱的,且iphone的逃狱难度>>Android以获取root,不管逃狱还是root,这都太稳当,总之有潜能的同学能间接从智能手机内来操作,但这儿不推荐从真机内以获取。

采用Android工具包以获取到.wxapkg文档

不必逃狱,不必root,采用电脑端的Android工具包来以获取是两个非常单纯方便快捷且的以获取形式,要点如下:

关上加装好的Android工具包,并在工具包中加装QQ、QQ、RE命令行QQ、QQ在工具包便携式的应用商店里搜索浏览加装即可RE命令行的浏览门牌号:pan.baidu.com/s/1PPBx08rN…浏览好后间接拖曳进关上的工具包窗口就会自动加装增设呵呵工具包以我个人认为比较称心的奇乐工具包总括首先到工具包内部增设超级用户职权只需三步以获取任何人QQ小流程源代码插图只需三步以获取任何人QQ小流程源代码插图1这些操作的目的都是为了能让RE命令行顺利的以获取到ROOT职权接下来在工具包里关上QQ,接着在QQ中运转你想以获取的下流程(这其实是让QQ把小流程的示例包从伺服器浏览到了本地了)就以我说的这款青桔电单车的小流程总括(希望Lyft的天神不会想打死我~)在工具包QQ中运转呵呵后,间接切回工具包桌面运转RE浏览器来到产品目录/data/data/com.tencent.mm/MicroMsg/{{一串32位的16十进制数组文档夹}}/appbrand/pkg/就抵达了目的文档夹只需三步以获取任何人QQ小流程源代码插图2你会看到辨认出里面的一些.wxapkg后缀的文档,就是它们没错啦,能根据采用的时间来判断那个是你刚才从伺服器浏览过来的一般小流程的文档不会太大,能结合时间来判断,长按压缩所选文档,接着再将压缩好的包通过QQ发送到我的电脑如果不进行压缩的话,是无法将这个文档通过QQ来发送的只需三步以获取任何人QQ小流程源代码插图3所以QQ的这个功能能让他们很方便的拿到示例,而不必到电脑产品目录去找工具包的文档产品目录。解压。这样几步单纯操作,就成功拿到了小流程的示例了。

采用LLVM脚本解包 wxapkg

到这儿你应该已经将LLVM脚本从github浏览 或者 clone 到本地某个产品目录关上nodejs命令窗口cd 到你clone或者浏览好的LLVM脚本产品目录下在node命令窗口中依次加装如下依赖:npm install esprimanpm install css-treenpm install cssbeautifynpm install vm2npm install uglify-es加装好依赖之后,就是最后一步了,LLVM .wxapkg 文档在当前产品目录下输入node wuWxapkg.js [-d] //files 就是你想LLVM的文档名例如:我有两个需要LLVM的文档_163200311_32.wxapkg已经解压到了D盘根产品目录下,那么就输出命令node .\wuWxapkg.js D:\_163200311_32.wxapkg回车运转只需三步以获取任何人QQ小流程源代码插图4LLVM脚本就能一步将.wxapkg 文档还原为QQ开发者工具能够运转的示例,产品目录门牌号和你LLVM的文档门牌号是一样的只需三步以获取任何人QQ小流程源代码插图5

接着在QQ开发者工具新增项目即可关上

只需三步以获取任何人QQ小流程源代码插图6运转成功,源码以获取完成只需三步以获取任何人QQ小流程源代码插图7

只需两步即可完成

至此他们通过非常单纯的形式以获取到了两个想的小流程示例,并对齐进行了LLVM还原 以后想再LLVM其他的小流程,非常快速,真的只需要两步

采用工具包找出小流程.wxapkg文档采用nodejs LLVM脚本将.wxapkg文档LLVM

采用此方法,绝大部分的小流程都能正常LLVM出来,但也会有一些特殊的情况,具体能查看qwerty472123天神的readme文档

写在后面的话

.apk 之类的文档LLVM非常困难,而小流程竟能如此轻松随意地被以获取到源码,根源在于小流程的开发团队并没有对小流程的执行文档进行有效的保护,也是加密,所以他们才能采用别人写好的脚本间接进行LLVM,其过程类似于解压。

实际上,小流程只是很单纯的将图片、js和json文档压在一起,而压制的过程是Wxml -> Html、 Wxml -> JS、Wxss -> Css,转换后文档十十进制格式跟后缀名为wx十十进制格式完全一致。

上线的源码能如此单纯的被以获取到,不得不说小流程的源码安全存在很大的隐患,这一点很多开发者应该也知道,所以辨认出有些小流程会将重要的js逻辑代码柔在两个js文档中,这样,即使被以获取了源码,也不是很容易读懂,但任然避免不了被窥视的问题。 小流程作为QQ生态内的新生力量,不仅被官方,也被很多开发者和内容创业者寄予厚望,处于对代码的安全性的考虑,这个漏洞迟早有会被修复(封掉)的。

所以这种这儿介绍的以获取小流程源码的方法,应该是不会太长久的。

作者:行无忌链接:只需两步以获取任何QQ小流程源码-实战讲义-小流程社区-QQ小流程-QQ小流程开发社区-小流程开发论坛-QQ小流程联盟著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

作者 nasiapp

在线客服
官方客服
我们将24小时内回复。
12:01
您好,有任何疑问请与我们联系!

选择聊天工具: