23 / 06 / 2018 buling

PHP很多时候遇到问题很难定位,比如,微信支付回调的时候 ,明明代码报错了,但很难定位到什么问题导致了错误,这个时候可以用如下代码来定位

define(ROOT_PATH, '/tmp');
//注册结束回调
register_shutdown_function( function(){
    $error = error_get_last();
    if($error){
        file_put_contents(ROOT_PATH.'/some-error.txt', 'error:'.json_encode($error));
    }
} );
//监听错误回调
set_error_handler( function($num, $str, $file, $line, $context = null){
    file_put_contents(ROOT_PATH.'/some-error.txt', 'error:'.$num.';'.$str.';'.$file);
} );
//监听异常回调
set_exception_handler( function(Exception $e){
    file_put_contents(ROOT_PATH.'/some-error.txt', 'error:'.$e->getLine().';'.$e->getMessage().';'.$e->getFile());
} );
//显示所有错误信息
error_reporting( E_ALL );
12 / 06 / 2018 buling

就不介绍前提了,直接正题吧
1、找一部android手机,usb连接到电脑,需要root
2、找到一个adb.exe
找到adb.exe的方式有很多,比如装一个PC应用宝,或者微信开发者工具下面也有,用everything搜一下就可以找到
3、cmd下面执行:
adb.exe devices
如果手机连接成功会显示设备
List of devices attached
71MBBL6228EU device
4、进入设备命令行:
adb.exe shell
5、提升权限到root:
su
如果提示没有这个命令,那说明设备还没有root,可以下载一个kingroot APP
6、切换到微信小程序代码包目录:
cd /data/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg
7、可以把你要破解的小程序删掉,重新搜索打开,再目录中 ll 看最新创建时间的就是目标小程序
8、因为 /data 目录为系统级目录,无法直接将其进行复制,需要重新挂载为可操作模式
mount -o remount,rw /data
9、拷贝小程序到手机SD卡中,可以用文件管理直接找到这个目标包
cd /data/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg/_-1946107229_14.wxapkg /mnt/sdcard
10、把apkg包传到电脑端
https://gist.github.com/feix/32ab8f0dfe99aa8efa84f81ed68a0f3e 使用这个脚本,直接解压apkg
11、还原各个加密文件:page-frame.html、app-service.js、app-config.json
参考这里:https://github.com/qwerty472123/wxappUnpacker
ok