[SWPUCTF 2021 新生赛]easyapp
- 我觉得jadx工具看得更通俗易懂
- 附件下载地址:https://wwvc.lanzouj.com/iERpz19z0j3i
下载附件,没有后缀,丢入winhex
pk文件头,是个zip压缩包,直接修改后缀,打开是一个apk文件
使用jadx打开
打开方式
在这里打开终端
cd lib
java -jar jadx-gui-1.4.4.jar
使用jadx打开apk,在com里找到mainactivity,看到一串繁体中文:棿棢棢棲棥棷棊棐棁棚棨棨棵棢棌
这里有个异或,有个key值为123456789
分析程序知道,将flag与key值进行异或,得到这串繁体中文,反异或得flag
这个代码报错,意思是越界了,因为ASCII有效位最大位是127,我们只需要在后面加%128就可以了
str = '棿棢棢棲棥棷棊棐棁棚棨棨棵棢棌'
key = 123456789
flag = ''
for i in str :
flag += chr((ord(i) ^ key)%128)
print(flag)
输出结果不太像flag,试了下确实不是,我们继续找
可以看到下面还有一个mainactivity,这里的key值被改变为987654321
果然得到flag:NSSCTF{apkYYDS}
str = '棿棢棢棲棥棷棊棐棁棚棨棨棵棢棌'
key = 987654321
flag = ''
for i in str :
flag += chr((ord(i) ^ key)%128)
print(flag)