XCTF_app1
先安装看看
点击芝麻开门之后会弹出“年轻人不要耍小聪明噢”
这大概就能看懂是点击之后进行判断,那就直接去看JEB,看看判断条件是什么
V1是输入的字符串,V2获取包信息(百度的),V3获取版本名(百度的),V4获取版本号(还是百度的)。剩下的就简单明了了,先判断输入的长度跟版本名长度是否相同,若不相同跳出,若相同继续判断。再循环判断输入的字符串V1的每一个字符是否都等于版本名(V3)与版本号(V4)的异或值相等。
所以我们逆向要的就是输入的flag==版本名与版本号的异或
百度看看获取版本名与版本号的方法,发现aapt工具,这个工具其实也挺常用的(指我第一次听说,但是用everything搜到了),在APK改之理(APKIDE)中就有集成
cmd cd到aapt所在路径,使用aapt dump badging 【apk路径】命令就可以获取相关信息了
versionCode就是版本号,versionName就是版本名,很简单就能获得这个的异或值
1 str = "X<cP[?PHNB<P?aj‘" 2 for i in str: 3 sum = ord(i) ^ 15 4 print(chr(sum), end=‘‘)
完