美文网首页微信小程序开发个人感悟小程序
如何反编译小程序获得腾讯视频源码-谈小程序安全

如何反编译小程序获得腾讯视频源码-谈小程序安全

作者: 杨越Yul | 来源:发表于2018-02-04 17:29 被阅读1847次

小程序越来越火,但其中的安全问题不容忽视,今天我们就来尝试反编译获取腾讯视频小程序的源码,提醒大家注意代码的安全和混淆,同时也希望微信能够加大对小程序开发者源码的保护,方法仅供技术交流,请勿非法使用!


1.首先获取微信压缩后的源码(.wxapkg)

方法有多种,安卓已root手机可以在/data/data/com.tencent.mm/MicroMsg/cd6fcxxx/appbrand/pkg/xx.wxapkg这个目录中找到,或者可以通过charles或fiddler抓包(需要下载旧版微信)直接获取到下载的.wxapkg

2.解压wxapkg

Github上已有公开的源码,这里使用Python3的方式,解压后的目录结构

  • app-config.json 各个页面的.json集合,分别放入各个页面和app.json中即可
  • app-service.js 所有.js集合,分别放入对应页面和app.js中(先js格式化一下)
  • page-frame.html 所有的.wxml文件,这个需要一些技巧才能还原,下面细说
  • pages/xxx 所有的.wxss

3.还原wxss

  • 在page-frame.html的makeup方法中添加log,即可输出wxss样式 function makeup(file, suffix).png
  • 在chrome开发者工具中打开,将wx-去掉即可 wxss.png
  • 目前输出的是app.wxss,输出其它页面的wxss则将pages/xxx/xxx.html中的setCssToHead替换page-frame.html中的内容(替换黄色部分) setCssToHead.png

4.还原wxml

按照以下操作修改page-frame.html中的方法(图片名即方法名),建议使用sublime编辑,这里贴出部分截图,详细可以参考这篇博客

function $gwrt( should_pass_type_info ).png function $gwrt( should_pass_type_info ).png function $gwrt( should_pass_type_info ).png function $gwrt( should_pass_type_info ).png function $gwrt( should_pass_type_info ).png
  • 都修改好后,就可以在控制台中输入$gwx("./pages/xxx/xxx.wxml")();来输出wxml了 wxml.png

5.运行

  • 将代码还原后就可以在编译器中直接运行了 运行效果1.png 运行效果2.png

6.总结

  • 可以看到即便大如腾讯视频,做了很多组件化,分包的操作,也可以较为轻松的反编得到源码,更不用说一些没有做的小程序,得到它们源码会更为容易。
  • 微信可以改进的地方,一是需要对旧版本微信下载wxapkg做处理(刚开始留的坑),二是手机本地存放wxapkg的地方,wxapkg也需要进一步加密,三是page-frame.html需要更多的加密,避免可以轻松得到wxml和wxss
  • 开发者能做的则是将js尽量的混淆,一些重要私密的功能尽量交给服务器完成,不要写在小程序中

相关文章

网友评论

  • 小钟钟同学:大佬 可以发一份源码学习一下滴吗?:blush:
  • 629bf8bf0bdc:解析单个wxml 报错
    Uncaught ReferenceError: $gdc is not defined,
    global.f = $gdc(f_[path], "", 1);
    怎么解决?
  • 3c48f67304ec:大神你好,我按照博客里面的操作了,JS和WXSS都能成功,提取WXML的过程中,试了几遍, @杨越Yul 在谷歌控制台报一个错误,错误项是
    _a = _b _b = _c _ow = false
    请问什么原因啊
    杨越Yul:同样的问题哦,keyname后面换行
    3c48f67304ec:@杨越Yul 谢谢您,我是新手,现在又出现了一个新的问题,
    _y["wx:key"] = keyname _(father, _y);
    不知道哪里出问题了:sob:
    杨越Yul:_b _c后面加;换行
  • 3c48f67304ec:大神写的要是再通俗一点就好了,比如那个makeup怎么写的…小白
  • c8d27518ac61:请问js文件如何获取?
    杨越Yul:@追风william2016 都在app-service.js中
  • 226c9a708f07:需要你的帮助,帮我拿一个小程序源码,急急急!定有重酬!先打赏提起注意下!加我微信QQGYCY
  • c637128d15e5:老大有没有qq,学习交流一下
  • 华莱士01:什么编译器呀
  • 56091e45528d:谢谢大哥
  • 56091e45528d:或者邮箱admin@skyqq.cc
  • 56091e45528d:在吗?能不能发一份腾讯视频小程序的源码?直接给个下载链接吧。。。
    谁是我我我:@pNetwork 亲,源码拿到没有?
  • 646a55dadb80:牛逼轰轰的
  • 乌枭:棒
  • 2282c6795abf:厉害了,越越

本文标题:如何反编译小程序获得腾讯视频源码-谈小程序安全

本文链接:https://www.haomeiwen.com/subject/kjrmzxtx.html