【WhaleCTF逆向题】第二期包剪锤【初级】writeup

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiangshangbashaonian/article/details/82870253

题目信息:

拿到apk  载入jeb

双击MainActivity    然后tab键可以反汇编成java代码

大体可以看出 通过Random()每次生成一个随机数v9

通过这个v9再构造一个字符串数组 v1[]

下面对数组元素进行赋值

所以n对应的就是CPU的取值    m就是我们的选择

为方便查看下面我截了关键部分  run()方法就是关键   

可以看到只有两种情况才可以win!   cnt++

那么cnt很显然就是记录我们win的次数

而再看最后一个if语句   可以知道当cnt = 1000时  我们就可以拿到flag

取值就是SECCON{(cnt + calc) * 107}

那么cnt当然就是1000  那么就差calc的值了

将rps.apk解压   找到libcalc.so

IDA载入

如果看不明白  就F5   

那就很清楚咯   calc就是7

那么flag就是SECCON{(1000+7)* 107}   -->SECCON{107749}

提交正确   

猜你喜欢

转载自blog.csdn.net/xiangshangbashaonian/article/details/82870253
今日推荐