Re-WP(更新中…)
Logindemo
一开始用jadx看的,给我看傻逼了说是,带了比较抽象的混淆,然后导致我看了好久才理清楚逻辑

后面用JEB看就舒服多了,从最后由网络行为发出去的签名往回推即可,锁定secretKey这个变量

这里secretKey往回的第一个函数有点迷,拷打了一下gpt,说是反射的dex_class.dex这个文件中的say_hello方法

跟进这个方法之后发现就是一个异或

从给的另一个附件中锁定关键数据,解出secretKey
1 | import base64 |
异或完之后接着往回逆,逻辑倒过来的话那就是先解native层的Getstr.getNothing,然后是LoginActivity.transform,最后是GoodCard.anything

先跟进Getstr.getNothing,比赛的时候太着急了,当时看到65537迟钝了一秒,感觉好熟悉,但是就死活没想起来是RSA加密,反编译之后直接锁定到关键的取值函数,从一坨数字中取出RSA的q和p

用下面的RSA板子直接解
1 | def modular_exponentiation(base, exp, mod): |
再看下一层,transform就是给ascll码乘100,用上述解出来的结果除回去即可得到121 119 116 115 55 104 117 109 106 53 104 54 103

然后最后一层就是一堆混乱排序的操作,一开始想逆,搓了一会儿脚本感觉脑子要缺氧了,反正现在已经有密文了,长度也是知道的,直接模拟一下怎么打乱的不就好了

上面的打乱顺序的java代码用python重构了一下即可
1 | class MyMath: |