分析hello.c文件
可以理解为安卓的SMC
_0_ 函数,将读取的每一位与 “syclover”循环 异或
_ 函数 将读取进行 _0_ 函数操作,并且写入一个新文件
读取 getAssets下的文件。
对 data 文件进行上述操作,并命名为apk 文件,加入线程中
我们来分析对data进行操作,脚本:
s = "syclover"
count = 0
with open('data', 'rb') as f:
while (1):
data = f.read(1)
if not data: break
data2 = ord(data) ^ ord(s[count % len(s)])
with open('dates', 'ab') as g:
c = data2.to_bytes(1, byteorder='little', signed=False)
g.write(c)
count += 1
f.close
跑的有点久,网上还有dump出dex文件的方式,有待尝试。
把跑出来的 dates文件 改为apk类型,jeb打开分析。
其中SCTF函数
其中sctf函数为base64加密,将前12个字符串加密,与已知字符比较,解密得
sctf{W3lc0me
第二部分:
先将syclover MD5加密 8bfc8af07bca146c937f283b8ec768d4,
再与我们要求的key 一起 encode加密,与相应的字符串匹配。
encode函数,将 arg5 插入到v2的偶数位子。第二个append,也即是syclover的md5字符,但是根据v3/v1猜测都是为第一个数 8。
我们将~8t808_8A8n848r808i8d8-8w808r8l8d8}8之中的8去除
得到剩下的部分:~t0_An4r0id-w0rld}
最终flag
sctf{W3lc0me~t0_An4r0id-w0rld}