今天去CTF瞄了一眼发现有mobile的题,就拿来学习下,CTF的入门题目对新手很有帮助的~
下载的附件是一个apk文件,开启模拟器,把apk拖进去安装。咱有两个模拟器,配置不一样,第一个安装的时候报错了,然后尝试第二个,安装成功(虽然菜鸟本人也不知道为啥,反正多尝试总没错~)
看上去是要输入正确的key才能通关,把之前学过的手段全都安排一遍哈哈哈(其实一共也没会几种 >_<!!!)
先解压看下,貌似没有加密或者混淆之类的,直接反编译
反编译拿到源码,首先得找到versionname和versioncode,然后在对versionname进行一下运算,运算方式:str.charAt(i) ^ j(表问我这个咋算,咱口算不了。。。)
继续翻,在config文件中找到versionname和versioncode:
X<cP[?PHNB<P?aj
15
转换code:
str = "X<cP[?PHNB<P?aj" for i in str: sum = ord(i)^15 print(chr(sum),end='')
总结:就是反编译技巧 + 读代码 + 异或代码运算,多么友爱的新手题啊O(∩_∩)O哈哈~