使用Inspeckage尝试hook其中的加密函数
环境:夜神模拟器
Inspeckage 2.3
某收件APP

获取关键参数

安装app后,抓包看到如下参数

1568449534566.png
在AK中搜索其中关键词fm和sign,搜索中发现sign过多,于是尝试搜索FM,搜索中发现如下class文件。

1568449857454.png
打开Java源代码,在其中的一个void类型的b函数中发现关键。

1568449940990.png
打开对应文件的sha256函数

1568450012586.png
基本可以确定加密算法为这个,对其中的三个参数加盐来sha256

paramString1对应了localObject5,也就是timestamp

paramString2对应了localObject4,也就是nonce

paramString3对应了localObject2,也是其中暂不得知道为何的参数

这几个参数,其中sign是不得知为什么参数,其他一个为uuid,一个为时间戳,于是我们尝试hook这个函数。

配置HOOK

在Inspeckage的界面中选着HOOK,点击找到左侧加载出来的函数方法

1568450695050.png
点击后如下,添加

1568450719164.png
在模拟器中做一个请求,此处仍然使用之前的登陆请求,hook到的参数和结果

1568450803357.png
其中result就是抓包到的请求sign参数,可以看到参数paramString3为一串拼接的字符串,其中密码为MD5加密,在hash选项中可以看到加密的原参数,和sha256用到的salt值

加密尝试

1568451215940.png
那么尝试使用在线加密,从hook到的结果得知,paramString3就是请求中的FM字段

1568451631004.png
和请求中携带的sign参数对比为相同参数

1568451683666.png
本以为会到此为止,但是当仔细查看hook的参数时发现,paramString3中的参数均是缺少标签对的,例如

<root>123</root><sign>123</sign>
他只显示
123</root>123</sign>

暂没查到原因。





# Android逆向  

tocToc: