codegate qualifier 2018 android writeup

《welcome to droid》,傻逼题目。。。

文件链接:https://github.com/LeadroyaL/attachment_repo/tree/master/codegate_qualifier

这就是个傻逼题目。。。。 java 层有4个 activity,每个都有 check,但我们可以直接用 root 来开启各个 activity。

第一个 Activity,输入任意用户名,传到第二个 Activity。

第二个 Activity,输入密码,需要和用户名通过校验,传到第三个 Activity。

第三个 Activity,输入字符串,与随机字符串比较,相等的话就开第四个 Activity。 wtf?这是在逗么?傻逼作者

第四个 Activity,加载 native-library,打印stringFromJNI。 wtf?这在搞毛线?

我手机是arm64和 arm 的,都无法运行,开第四个 Activity时候就崩了,说 not found。 所以在那 check 呢???? 于是就开始阴谋论了起来,是不是在 support-v4的包里面做了文章,需要触发什么隐藏剧情的,于是把support的那一系列 AppCompatActivity 读了一遍,没发现有什么东西。 各个地方都找过了,最后还是锁定到了 native library 里,看了一下 arm 和 arm64,里面确实没有定义JNI。万念俱灰的时候,grep 查一下字符串,发现 armv7里似乎有这个 method。

➜ armeabi-v7a strings libnative-lib.so grep Java
Java_com_example_puing_a2018codegate_MainActivity_stringFromJNI
Java_com_example_puing_a2018codegate_Main4Activity_stringFromJNI

这是什么睿智操作?两个都是返回 const-string 的,估计调用一下就是 flag 吧,太长了懒得看,也看不懂。 自己造个 apk,强制使用armv7a的 native library,不要使用其他几个傻逼的 library,运行就给 flag。

The full text is: Wol!! awesome!! FLAG{W3_w3r3_Back_70_$3v3n7een!!!} hahahah!!