小程序采集node.s依赖更新合集

filzhoqj1fggu_woo~idh~8

更新之前的帖子。

、[b2_insert_post id=”1672″]

小程序采集—2019.4 更新  

是的,小程序又可以采集了。

项目比较乱,就不写单独帖子了,发个合集,懂的人自行摸索吧!

开始.

  • 仔细阅读此页内容
  • 下载第一个项目里的包,并安装依赖
  • 参考第二个项目里的依赖安装命令,再用第二个项目里的依赖安装命令进行安装一下(因为第一个项目命令不全)
  • 第一个项目基于第二个项目
  • 第三个项目内的东西没用到,感觉应该有点用,贴出来给遇到相关问题的人吧!
  • 标题前有 » 符号的为项目[汗..]

如有问题联系q20838641(请注明来意)

  • 如需代采集小程序以及wordpress小程序开发请联系博主(付费服务.)

%title插图%num


»Wechat App(微信小程序,.wxapkg)解包及相关文件(.wxss,.json,.wxs,.wxml)还原工具

68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2545372538392538382545362539432541432d302e332d7265642e737667 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2545352542452541452545342542462541312545372538392538382545362539432541432d2533453d32303138303131312d627269676874677265656e2e737667

Wechat App(微信小程序, .wxapkg)解包及相关文件(.wxss, .json, .wxs, .wxml)还原工具

1. 说明

    •  修复 “ReferenceError: $gwx is not defined” 和 extract wxss 等问题
    •  支持分包
    •  支持一键解包
  •  支持一键安装各种依赖

一键匹配、统计文本中的内容,请下载 calcwords 。

2. wxapkg 包的获取

Android 手机最近使用过的微信小程序所对应的 wxapkg 包文件都存储在特定文件夹下,可通过以下命令查看:

adb pull /data/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg ./

其中{User} 为当前用户的用户名,类似于 2bc**************b65

3. 用法

用法分 mac 和 windows,请根据系统来操作

1. for Mac OS (Mac操作系统)

  • 安装npm和node
./install.sh -npm
  • 安装依赖
./install.sh
  • 解包某个小程序
./de_miniapp.sh  -d 小程序包路径(.wxapkg格式)
  • 一键解文件夹下所有小程序
./de_miniapp.sh  小程序包所在文件夹
  • 一键解当前文件夹下所有小程序
./de_miniapp.sh

** 举例

Mac OS

./de_miniapp.sh -d ./testpkg/_-751579163_42.wxapkg

testdir

2. for Windows OS (Windows 操作系统)

  • 解包某个小程序
node wuWxapkg.js 小程序包路径(.wxapkg格式)

** 举例

node wuWxapkg.js testpkg_-751579163_42.wxapkg

4. 提取统计WXSS或者其他样式

详情参照 calcwords

  1. 下载calcwords源码
git clone https://github.com/larack8/calcwords
  1. 设置统计的.wxapkg路径和输入结果路径,调用 calcWxssStyle
	public static void testCalcWords() throws IOException {
		String fromFilePath = "/Users/Shared/my_git/java/CalcWords/testletters/";
		String resultFilePath = "/Users/Shared/my_git/java/CalcWords/result.txt";

		calcWxssStyle(fromFilePath, resultFilePath);// 统计微信小程序源码WWXSS样式
//		calcWxssProperty(fromFilePath, resultFilePath);// 统计微信小程序源码WXSS属性
	}
  1. 打开输出结果文件

如下图样式

cc

赞赏原作者:

5cb05c40b98ae


»Wechat App(微信小程序,.wxapkg)解包及相关文件(.wxss,.json,.wxs,.wxml)还原工具


  • 介绍:

68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2545372538392538382545362539432541432d302e332d7265642e737667 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2545352542452541452545342542462541312545372538392538382545362539432541432d2533453d32303138303131312d627269676874677265656e2e737667 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2545362539342541462545362538432538312d302532352d79656c6c6f772e737667

Wechat App(微信小程序, .wxapkg)解包及相关文件(.wxss, .json, .wxs, .wxml)还原工具

当前功能如下(分包功能尚未完成!)

  • node wuConfig.js <files...> 将 app-config.json 中的内容拆分到各个文件对应的 .json 和 app.json , 并通过搜索 app-config.json 所在文件夹下的所有文件尝试将 iconData 还原为 iconPath 。
  • node wuJs.js <files...> 将 app-service.js (或小游戏中的 game.js ) 拆分成一系列原先独立的 javascript 文件,并使用 Uglify-ES 美化,从而尽可能还原编译前的情况。
  • node wuWxml.js [-m] <files...> 将编译/混合到 page-frame.html ( 或 app-wxss.js ) 中的 wxml 和 wxs 文件还原为独立的、未编译的文件。如果加上-m指令,就会阻止block块自动省略,可能帮助解决一些相关过程的 bug 。
  • node wuWxss.js <dirs...> 通过获取文件夹下的 page-frame.html ( 或 app-wxss.js ) 和其他 html 文件的内容,还原出编译前 wxss 文件的内容。
  • node wuWxapkg.js [-o] [-d] [-s=<Main Dir>] <files...> 将 wxapkg 文件解包,并将包中上述命令中所提的被编译/混合的文件自动地恢复原状。如果加上-o指令,表示仅解包,不做后续操作。如果加上-d指令,就会保留编译/混合后所生成的新文件,否则会自动删去这些文件。同时,前面命令中的指令也可直接加在这一命令上。而如果需要解压分包,请先解压主包,然后执行node wuWxapkg.js [-d] -s=<Main Dir> <subPackages...>,其中Main Dir为主包解压地址。除-d-s外,这些指令两两共存的后果是未定义的(当然,是不会有危险的)。

wxapkg 包的获取

Android 手机最近使用过的微信小程序所对应的 wxapkg 包文件都存储在特定文件夹下,可通过以下命令查看:

adb pull /data/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg

其中{User} 为当前用户的用户名,类似于 2bc**************b65

另注

所有命令上都可以使用-f指令来提高一定的并行度,但输出信息会混乱。

如果发现包内文件“缺失”,请先检查解包时是否出现提示NOTICE: SubPackages exist in this package.。如存在,请在寻找好分包后,按上文提示操作。(小程序需要访问特定页面;小游戏需要触发特定函数,然后分包才会被下载。)

局限(包括但可能不限于以下内容)

  • 实现中很多功能基于特定的版本(wcc-v0.6vv_20180111_fbi, 且不考虑面向低版本适配)和字符串搜索,所以不能很好的适应各种特殊情况。
  • wxml 文件拥有不同于 xml 和 html 文件的字符转义规则,且尚未公开(并非”没有”),因此未能很好的还原相关内容。
  • js 文件被压缩后会丢失原始变量名等信息内容无法还原;wxss 文件压缩后的注释也会丢失。
  • wxs 文件会将所有的变量如 Math 改为 nv_Math ,这里仅通过字符串替换去除。
  • 一些被引用 wxss 文件本身的源文件丢失,因此无法恢复原始目录。
  • 有些项目开启了难以复原的es6转es5选项,检验本项目结果是否正确时需要关闭项目中的es6转es5选项。
  • wxml 中一些无法找到相对应 的正向语句的内容无法还原。
  • json 中components项丢失,仅会标注被其他包引用的自定义组件。

依赖

这些 node.js 程序除了自带的 API 外还依赖于以下包: cssbeautifyCSSTreeVM2EsprimaUglifyESjs-beautify

您需要安装这些包才能正确执行这些程序,为了做到这一点,您可以执行npm install;另外如需全局安装这些包可执行以下命令:

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

此外,这些 node.js 程序之间也有一定的依赖关系,比如他们都依赖于 wuLib.js 。

参考

这些实现除了参考微信小程序开发文档、 wxapkg 文件解包后的内容以及通过开发者工具编译的一些 wxml 外,还参考了一些 github 上的相关内容的分析( unwxapkg.pywechat-app-unpack ),在此感谢他们。

另外,如果您对本程序的一些具体实现细节感兴趣,可以参考 DETAILS.md 。


»2019小程序解包 解决$gwx报错问题

  • 介绍2019小程序解包 解决$gwx报错问题 分包解法 node wuWxapkg.js -d D:Unpacker_1357420259_6.wxapkg node wuWxss.js D:Unpacker_1357420259_6component node wuWxml.js D:Unpacker_1357420259_6componentpage-frame.js node wuJs.js D:/Unpacker/_1357420259_6/component/app-service.js 若解分包报错可以根据报错修改$gwx的处理
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 共8条

请登录后发表评论

    • 头像23330
    • 头像new键客0
    • 头像new键客0
    • 头像new键客0
      • Alextao的头像-钻芒博客赞助会员Alextao徽章-元老玩家-钻芒博客等级-LV6-钻芒博客作者0
    • 头像麻辣0