老样子抓了几次包,发现请求头正常,携带的参数也是明文,但是其中的sign有变化,直接开始分析sign怎么来的

直接jadx搜索sign,运气不错,搜索出来的数据不多,挨个点进去看看,没多少时间就锁定了,就在下图里面

传递的数据给了a函数,点击进去

扔给ai分析一下,很明显了,参数拼接然后组合,最后的返回值又扔给了一个a函数


继续跟进a到这,hook一下,看看传递了什么过来

熟不熟悉,就是请求的参数,把他们在前面加上str然后拼接起来,我们继续跟进,看看mxSign里面的逻辑实现,发现是在so层的,ida启动


静态函数,一搜索就出来了


代码有点多,直接ai分析一下,看看大概是在做什么,貌似是RSA的加密,但是看着过程有点复杂,我们继续根据ai提供的点我们逐步看看

首先看看decodeBase64Key传递是什么东西(这里我就把参数写死了,包装一下,直接调用java层的方法函数),调用打印,出来的不晓得是什么东西(这里尝试过多次不同的输出方式都不行,不晓得啥情况,有没有大佬指点下)

不过没关系,这个不行,换一个,hook它上面basic_string方法看看,没想到碰到惊喜了,这个方法输出了两次,第一个是RSA的私钥,第二次是最终加密成的参数


【PS:这里输出的日志扔给ai看过,结果ai把最终的结果当成私钥了,所以大家用ai的时候一定要自己辨别一下给的答案,ai的不一定是对的】

然后继续hook一下mbedtls_sha256,这是对输入字符串进行SHA256哈希,第一个参数是传递进去的字符串,第二个是字符串的长度,出来的哈希结果是:6d 45 19 dc ff 58 5f 88 1d 1b d8 0b cb 91 0c db 6c 13 27 d6 51 4e 48 d0 a0 2f 22 db bd 49 f7 14

编写python脚本验证,将字符串转换成哈希输出的结果,最终是对的上的

接下来就是使用私钥进行加密,然后转换成base64编码了,私钥我们前面已经得到了,不需要继续分析下去了,接下来就是编写python代码进行测试了。下图是脚本运行的输出对比

第一眼是对的上了,但是越看越不对劲,符号咋对不上,继续往下看看,原来还漏了一个符号转换,它最终将'+' -> '-','/' -> '_'

经过一番修改,最终打印出来的值通过了文本对比工具的对比


无检测,并且java层很容易就找到了,难点都是在so里面,先是转换 -> 然后加密 -> 最后修改符号,有一定难度
import base64
from Crypto.PublicKey import RSA
from Crypto.Signature import pkcs1_15
from Crypto.Hash import SHA256
private_key_pem = 私钥的话这里自己找一下吧
def mxsign(input_string, private_key_pem):
private_key = RSA.import_key(private_key_pem)
h = SHA256.new(input_string.encode())
hash_digest = h.digest()
print(f"SHA256哈希字节: {hash_digest.hex()}")
signature = pkcs1_15.new(private_key).sign(h)
print(f"RSA签名: {signature}")
result = base64.b64encode(signature).decode()
print(f"base64编码: {result}")
result = result.replace("+", "-").replace("/", "_")
return result
if __name__ == "__main__":
test_string = "appId=ba660596c1d911ebabac005056883e3e&captcha=123456&mobilePhone=12345678901&t=1753409951546"
signature = mxsign(test_string, private_key_pem)
import base64
from Crypto.PublicKey import RSA
from Crypto.Signature import pkcs1_15
from Crypto.Hash import SHA256
private_key_pem = 私钥的话这里自己找一下吧
def mxsign(input_string, private_key_pem):
private_key = RSA.import_key(private_key_pem)
传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2025-9-2 17:35
被kanxue编辑
,原因: