BUU[SCTF2019]Strange apk

分析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} 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值