做好了反编译的准备,下载了微信最新版的apk,不过搜索后发现加密代码在/weixin661android1220_1/assets/whatsnew_embed/wx7c8d593b2c3a7703_3.wxapkg这个揉和了一坨二进制和一坨javascript的文件中,javascript代码是经过uglify的,不过仔细分析也能看出加密的方法。
https://pic3.zhimg.com/v2-40db01ca6ff6558c898e377c29ed0884_b.jpg
分析的过程就省略了,直接说结果吧:
数据部分使用AES加密,加密模式为CBC,填充为pkcs7,数据块128位,密钥和偏移量为登陆态session_id的前16位。
在线解析的网站 http://tool.chacuo.net/cryptaes
针对抓包方法:构造好数据后经过AES加密后得到action_data,再构造请求即可。
发送请求,返回errcode为零。如果为-2说明解析action_data错误,为108表示监测到作弊,被拒绝。