[BUUCTF]findit
是个apk
, 拿AndroidKiller
反编译,
找到一个Unicode
字符串

解码一看, 哈哈高兴的太早了
1 | string = "\u7b54\u6848\u9519\u4e86\u80bf\u4e48\u529e\u3002\u3002\u3002\ |
在MainActivity.smali
里面找到了几个数组,
很可能和flag有关

smali
格式阅读起来很不方便,
需要将它还原成Java
代码,
但是AndroidKiller
不支持这种功能,
所以改用jadx
.
jadx: Github
用jadx-gui
直接打开apk
, 源码就出来了,
到MainActivity
一看, 果然和flag有关

1 | package com.example.findit; |
好在Java
的语法和C/C++
类似,
可以大概看出来是个啥意思:
先对a
数组进行处理, 放到x
数组中,
对比用户的输入和x
数组是否相同,
若相同则对b
数组进行处理放到y
数组中并显示出来,
想必y
数组中的就是flag.
解密代码如下:
1 |
|