xctf-writeup-Ph0en1x-100

Ph0en1x-100 解题报告

打开apk,发现是要求输入flag

JEB打开

1587039238537

使用encrypt(NE6)所对应的hash算法,得到hash

然后转16进制

1587039659098

如果getSecret(getFlag())getSecret(encrypt(sInput))相等则为true

即只需要判断getFlag和encrypt(sInput)即可

对应位置ascii减一

getFlag()没有输入,动态调试获取对应值:

1587043746453

JEB 中 v1值改为string得到输出

1
string@4584:"ek`fz@q2^x/t^fn0mF^6/^rb`qanqntfg^E`hq|"

然后对应ascii+1

writeup如下:

1
2
3
4
5
6
7
8
9
10
s = "ek`fz@q2^x/t^fn0mF^6/^rb`qanqntfg^E`hq|"

s_list = list(s)

result = []
for c in s_list:
result.append(chr(ord(c)+1))

res = "".join([x for x in result])
print(res)

todo

  • 静态分析getFlag方法
  • 使用hook获取getflag返回值