考察知识点
- smali代码修改
赛题链接
https://github.com/eternalsakura/ctf_pwn/blob/master/android逆向/Timer.apk
分析
jadx反编译之后,找逻辑。
总结就是:循环200000次,每循环一次停顿1秒左右,然后循环的时候进行is2()判断,根据判断的结果进行不同的操作。
写代码计算
1 | def is2(n): |
计算得到,k=1616384
思路分析
得到要传入的数之后,接下来都是调用一个native方法,将这个数传进去得到结果。
可以修改smali文件重打包,也可以直接新建一个android工程,调用这个so文件。
直接调用so文件
Android Studio 默认的so文件路径是app/src/main/jniLibs/armeabi,新建一个jniLibs/armeabi文件夹,把so文件放进去。
且为了保证native层和java层的方法对应上,我们使用和原来apk一样的包名。
1 | package net.bluelotus.tomorrow.easyandroid; |
得到flag,Y0vAr3TimerMa3te7
修改smali文件重打包
todo