题目说明

最近正好在攻防世界冲榜,看到之前的赛题总是倍感亲切。

解题过程

下载附件,一个apk文件。

拖到Android killer发现是爱加密加固

在assets目录下,有个FLAG文件,内容如下:

1
pLFw0Gh8EQFJJU9fxmoK1sCRJexwxuNy+9qv5j8Ldl4=

但是肯定不是Flag,我们尝试Base64试试。

解密失败,盲猜是AES

上IDA动态调试,

发现ckasses.dex的内容竟然是ELF的开头,我们dump出来。

应该是ART编译的可执行程序,我们可以使用https://github.com/ManyFace/ExtractDexFromOat来对其进行转换,转换为dex

这里很明显,是AES ECB PKCS7Padding的算法过程,而密钥就是aeskey的内容。

写成Python脚本如下:

1
2
3
4
5
6
7
8
9
from base64 import b64decode
from Crypto.Cipher import AES

aeskey = bytes([119, 111, 119, 44, 105, 116, 39, 115, 115, 111, 98, 114, 117, 116, 97, 108])
base64 = "pLFw0Gh8EQFJJU9fxmoK1jRE0yxmkpakGxEWdydK/Yg="

cipher = AES.new(aeskey, AES.MODE_ECB)
decrypted = cipher.decrypt(b64decode(base64)).strip()
print(decrypted) # b'CISCN{You.Got.It.187d34}\x08\x08\x08\x08\x08\x08\x08\x08'

flag为:CISCN{You.Got.It.187d34}