zoukankan      html  css  js  c++  java
  • 关于破解微信小游戏

    最近一直在破解某小游戏,且已经达到了一定目的。

    关于wxapkg文件解压和压缩,我自己本人扩展了一下工具。

    附上链接:https://github.com/dzqdzq/unwxapkg

    安装方式: npm i git@github.com:dzqdzq/unwxapkg.git -g

    修改js代码后, 然后压缩,替换原来的wxapkg.  

    因为不能在开发者工具里运行看日志,也不能在logcat中看微信小程序的输出日志。 于是开发了一个远程输出日志的功能:

    服务器代码:

    const express = require('express')
    const app = express()
    const port = 3000
    
    app.use(express.json())
    app.post('/echo', (req, res) => {
      let {m, a} = req.body;
      let f = console[m];
      if(f){
        f.apply(console, a);
      }
      res.sendStatus(200);
    })
    
    app.listen(port, () => {
      console.log(`Example app listening at http://localhost:${port}`)
    })

    客户端hook console 代码:

    crayon.framework.dzqLog = (method,args)=>{
                      wx.request({
                        url:"http://192.168.31.158:3000/echo",
                        data:{ "m":method, a:args},
                        method:'post',
                        header:{
                           "Content-Type":"application/json"
                        },
                        success:function(res){
                          // crayon.framework.Toast.Make('请求成功').Show()
                        },
                        fail:function(err){
                          crayon.framework.Toast.Make(err).Show()
                        }
                    })};
                    
                    console.log = function(){
                      crayon.framework.dzqLog('log', Array.from(arguments))
                    }
                    console.info = function(){
                      crayon.framework.dzqLog('info', Array.from(arguments))
                    }
                    console.error = function(){
                      crayon.framework.dzqLog('error', Array.from(arguments))
                    }
                    console.warn = function(){
                      crayon.framework.dzqLog('warn', Array.from(arguments))
                    }

    将改好的代码重新压缩成wxapkg文件。  不能直接替换原文件,因为直接替换无效,每次启动小程序,微信会校验md5文件信息。 我的方式是文件做了一个监听,等md5检验完后,再让微信读取我修改的文件。

     

     打印日志杠杠滴

    ==============2021-03-25----------

    以上的日志,我是在真机上跑的, 可以用IP。   今天我发现在模拟器上居然不OK。 提示 fail url not in domain list

    当然, 这个并不能难住我。既然提示url没有配置, 那么就直接使用用domain list里的域名, 然后在中间做一个代理, 如果是echo, 那么就走本地, 其他接口就正常访问服务就行。

    至于有哪些域名是已经配置了的, 在代码里肯定有交待, 直接全局搜索 https:// 就完事, 随便整一个域名写上,没啥难度。

    配置charles代理 android7以上:

    1, 下载chls.pro/ssl    直接到默认目录: /data/media/0/Download

    2, 将证书再导出到Mac电脑

    adb pull /data/media/0/Download/downloadfile-1.crt .
    openssl -subject_hash_old -in downloadfile-1.crt |head -1

    3. 将得到hash值3be31b03

    4.  将下载的证书移动到根证书目录并重命名

    /data/media/0/Download/downloadfile-1.crt /system/etc/security/cacerts/3be31b03.0

    5. 至此就可以拿到任何app的https内容了

     

     

  • 相关阅读:
    DrGraph软件升级:处理BUG_退出程序出错
    CB2010的一个BUG:在Win2K SP4之前的系统上会出问题
    DrGraph软件升级:WIN7下的程序BUG修正
    DrGraph软件升级:编译提速
    DrGraph软件升级:窗口背景色处理
    潜安高拍仪V2013版(1)
    「工具箱」Simple Test Model
    「游戏」Astromenace
    「游戏」Simon Tatham's Puzzles
    2011 新年目标
  • 原文地址:https://www.cnblogs.com/dzqdzq/p/14415733.html
Copyright © 2011-2022 走看看