安卓逆向之华山杯ctf第一题:错错错
题目下载:http://download.****.net/detail/darmao/9873200
题目打开是这样的,有个***,然后根据这个***生成一个***,然后输入即可解锁。
首先我们,这个***是不停更新的,所以我们需要先反编译,将其变化的周期改长一些:
点击提交按钮的代码逻辑是这样的:
调用了encryption01.MyEncryption()函数,用输入的***和这个函数的返回值相比较,一般的思路就是开始看着搞函数的加密算法,但是我们看看smali代码:
这里将encryption01.MyEncryption()的返回值放到了v1寄存器里,这个时候可以添加一个toast,将***弹出来:
重新打包,触发onClick函数,这时就会将正确的***弹出来了。