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: |