php微信小程序解包过程的案例分析

  介绍

这篇文章给大家分享的是有关php微信小程序解包过程的案例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

这个解包只能看个大概

1。找到小程序压缩包

1.1,手机根或安装模拟器(我用的是夜神)

1.2,在模拟器上安装微信(用android5系统的模拟器,低版本小程序容易打不开)

1.3,打开登陆微信后,打开小程序

1.4,打开模拟器自带的文件管理器来到目录:/数据/数据/com.tencent.mm/MicroMsg/{{一串32位的16进制字符串文件夹}}/appbrand/pkg/

1.5,里面有很多wxapkg文件,找到最新修改日期的文件比如-357038350 _91.wxapkg,前面打勾选中

1.6,文件管理器回到/mnt/共享/其他目录,粘贴即可,打开安卓模拟器上我的电脑=>打开电脑文件夹找到粘贴的文件-357038350 _91。wxapkg 夜神教程链接:跳转查看

2。对压缩包解包

详细参考:https://codechina.csdn.net/mirrors/leo9960/wechat-app-unpack?utm_source=csdn_github_accelerator

我用的php类:

使用方法:cmd=祝辞;cd php文件目录php wx_unpak=>。php 357038350 _91.wxapkg

我主要是想用其中的一些图片,很多图片都被base64了放到js (app-service.js)和样式(app-wxss.js)文件中了,需要我们匹配组装一下

& lt; php ?   $ str =, file_get_contents (& # 39; _ - 357038350 _97.wxapkg.unpacked/app-service.js& # 39;);   时间=美元preg  & # 39;/(数据:形象。* ?)\“/& # 39;;   len 美元;=,strlen(& # 39;数据:图像/png; base64, & # 39;);   如果(preg_match_all(怀孕的美元,str美元,美元arr)) {   foreach才能(arr美元[1],as  k 美元;=祝辞,img美元){   ,,,用file_put_contents(& # 39;。/图片/& # 39;$ k。强生# 39;. png # 39;, base64_decode (substr (img, len美元)));   ,,,//echo  substr (img, len美元);退出;   ,,}   },{else    echo 才能;& # 39;没有# 39;;   }      $ str =, file_get_contents (& # 39; _ - 357038350 _97.wxapkg.unpacked/app-wxss.js& # 39;);=$ preg  & # 39;/\((数据:形象。* ?)\)/& # 39;;   len 美元;=,strlen(& # 39;数据:图像/png; base64, & # 39;);   如果(preg_match_all(怀孕的美元,str美元,美元arr)) {   foreach才能(arr美元[1],as  k 美元;=祝辞,img美元){   ,,,用file_put_contents(& # 39;。/图片/a2_& # 39; $ k。强生# 39;. png # 39;, base64_decode (substr (img, len美元)));   ,,,//echo  substr (img, len美元);退出;   ,,}   },{else    echo 才能;& # 39;没有# 39;;   }

wx_unpak。php

& lt; php ?/* *   源文件目录/数据/数据/才能com.tencent.mm MicroMsg/{{一串32位的16进制字符串文件夹}}/appbrand/pkg///数据/com.eg.android.AlipayGphone才能,,在文件/nebulaInstallApps/目录下存储了所有加载过的小程序   ,* (php),/路径//unpack-wxapkg.php  & lt; xxx.wxapkg>   ,* php  unpak.php  _1123949441_351.wxapkg   ,*/function  unpack_wxapkg(文件,美元,美元targetDir)   {   if 才能;(! is_dir (targetDir美元)){   ,,,mkdir ($ targetDir);   ,,}      echo 才能“Reading 文件。\ n";   时间=美元才能file  file_get_contents($文件);   时间=美元才能ptr  18;      时间=美元才能headerStruct  new  StructDef ([   ,,,& # 39;mask1& # 39;,=祝辞,& # 39;ushort& # 39;   ,,,& # 39;info1& # 39;,=祝辞,& # 39;ulong& # 39;   ,,,& # 39;indexInfoLength& # 39;,=祝辞,& # 39;ulong& # 39;   ,,,& # 39;bodyInfoLength& # 39;,=祝辞,& # 39;ushort& # 39;   ,,,& # 39;mask2& # 39;,=祝辞,& # 39;ushort& # 39;   ,,,& # 39;fileCount& # 39;,=祝辞,& # 39;ulong& # 39;   )才能);      echo 才能“Parsing  file 头…\ n";      时间=美元才能header 美元headerStruct→打开(文件);//,,print_r([& # 39;头# 39;,=祝辞,$头]);=美元才能unpackULong  function  (), use (和文件,美元,和ptr美元),{   ,,,ret 美元;=,unpack_ulong (substr (ptr美元美元的文件,,,,4));   ,,,ptr 美元;+=,4;   ,,,return 随著美元;   ,,};=美元才能unpackUShort  function  (), use (和文件,美元,和ptr美元),{   ,,,ret 美元;=,unpack_ushort (substr (ptr美元美元的文件,,,,2));   ,,,ptr 美元;+=,2;   ,,,return 随著美元;   ,,};=美元才能unpackStr  function  (len美元),use (和文件,美元,和ptr美元),{   ,,,ret 美元;=,substr(文件,美元,美元ptr,, len美元);   ,,,ptr 美元;+=,len美元;   ,,,return 随著美元;   ,,};         时间=美元才能fileCount 美元头[& # 39;fileCount& # 39;];      echo 才能“Got  fileCount 美元;文件。\ n";      时间=美元才能unpackedFiles  [];      for 才能;($小姐:=,0;,美元小姐:& lt;, fileCount;美元,美元我+ +),{   ,,,nameLength 美元;=,unpackULong美元();   ,,,f 美元;=,(   ,,,,,& # 39;nameLength& # 39;,=祝辞,nameLength美元,   ,,,,,& # 39;名字# 39;,=祝辞,unpackStr美元(nameLength美元),   ,,,,,& # 39;抵消# 39;,=祝辞,unpackULong美元(),   ,,,,,& # 39;大小# 39;,=祝辞,unpackULong美元(),   ,,,);      null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

php微信小程序解包过程的案例分析