BUU[SCTF2019]Strange apk
分析hello.c文件
可以理解為安卓的SMC
_0_ 函數(shù),將讀取的每一位與 “syclover”循環(huán) 異或
_ 函數(shù) 將讀取進(jìn)行 _0_ 函數(shù)操作,并且寫(xiě)入一個(gè)新文件
讀取 getAssets下的文件。
對(duì) data 文件進(jìn)行上述操作,并命名為apk 文件,加入線(xiàn)程中
?我們來(lái)分析對(duì)data進(jìn)行操作,腳本:
s = "syclover" count = 0 with open('data', 'rb') as f:while (1):data = f.read(1)if not data: breakdata2 = 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?跑的有點(diǎn)久,網(wǎng)上還有dump出dex文件的方式,有待嘗試。
把跑出來(lái)的 dates文件 改為apk類(lèi)型,jeb打開(kāi)分析。
其中SCTF函數(shù)
?
其中sctf函數(shù)為base64加密,將前12個(gè)字符串加密,與已知字符比較,解密得
sctf{W3lc0me第二部分:?
?先將syclover MD5加密?8bfc8af07bca146c937f283b8ec768d4,
再與我們要求的key 一起 encode加密,與相應(yīng)的字符串匹配。
encode函數(shù),將 arg5 插入到v2的偶數(shù)位子。第二個(gè)append,也即是syclover的md5字符,但是根據(jù)v3/v1猜測(cè)都是為第一個(gè)數(shù) 8。
我們將~8t808_8A8n848r808i8d8-8w808r8l8d8}8之中的8去除
得到剩下的部分:~t0_An4r0id-w0rld}?
最終flag
sctf{W3lc0me~t0_An4r0id-w0rld}?
總結(jié)
以上是生活随笔為你收集整理的BUU[SCTF2019]Strange apk的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 查看安卓模拟器 CPU版本
- 下一篇: BUU[SCTF2019]Who is