[SCTF2019]Strange apk (2).zip

一个apk 直接用 jeb 看看程序的逻辑

发现 程序会先对 一个 data 文件进行异或操作,解压apk 在 assets 文件夹下找到 data 文件 然后利用 python 脚本将 文件还原。

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/4623c8c9-0de1-49e4-aca3-2e1e3a615e1c/Untitled.png

key = "syclover"
file_data = open("data", "rb").read()
new_file = open("./mydata","wb")
decode = ''
cout=0  
for d in file_data:
    decode += chr(ord(d)^ord(key[cout % 8]))
    cout+=1

with open('./mydata', 'wb') as f:
    f.write(decode)

得到mydata 文件 发现文件问 apk ,改后缀为 apk ,在逆向分析这个 文件。

看到Mainfest 下主要Activity 的活动是 t 和 s

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/c7677ff2-04cb-469f-800a-a683fd7c44ad/Untitled.png

分析 t 和 s 中的代码

S 函数

发现对 v1 进行了 sctf 函数处理后 比较是否等于 “c2N0ZntXM2xjMG1l

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/ac2e83a8-a18c-4aa5-99f8-784569d032c8/Untitled.png

sctf 函数

发现是 base64 加密

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6253e007-61cb-4d7d-a0b7-f6849a037a30/Untitled.png

t 函数

发现 f 经过 encode 函数后等于 “~8t808_8A8n848r808i8d8-8w808r8l8d8}8”

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b1ca4249-13ef-4f20-b024-a7a9d9ec6d86/Untitled.png