关于破解微信小游戏

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

关于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内容了

 

 

 

 

 

 =======2024-02-28==========

经常需要访问GitHub看crack, Frida相关代码,但是速度太慢,有时甚至打不开! TaoBao真是万能呀,啥都能找得到,十几块居然可以永久。 搜clashx, 我是在鑫楚软件店买的,

有啥需求真的可以去逛逛,说不定就能解决问题! 推荐给大家...   

不知道大家现在用的啥,是怎么解决上网难题的

 

 

posted @ 2021-02-19 13:47  Please Call me 小强  阅读(9518)  评论(2编辑  收藏  举报