在网上找一些Android的CTF题练手,这道题是其他人传到网上的,具体比赛信息不详.
原链接
题目到手之后是一个apk包,使用zip工具打开或者安装到手机上提示打开失败,拖到虚拟机里边用zip命令的参数解决:`zip -FF test1.apk’
之后使用JEB分析逻辑,对输入字符串进行DES加密,又加了base64,利用python的pyDes模块模仿此逻辑:
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
import base64
from pyDes import *
value = [102, 67, 119, 112, 103, 86, 72, 55, 124, 88, 93, 74, 85, 56, 37, 107,
95, 114, 127, 124, 65, 124, 102, 78, 76, 106, 106, 105, 40, 36, 93, 115]
s = ""
for i in range(len(value)):
s += chr(value[i] ^ i)
print(s)
dec = base64.decodestring(s)
iv = "\x01\x02\x03\x04\x05\x06\x07\x08"
key = "poi7y6gt"
x = des(key, CBC, iv,pad=None,padmode=PAD_PKCS5)
result = x.decrypt(dec)
print result
运行得到flag,输入程序中,恭喜过关!