Ph0en1x-100 解题报告
打开apk,发现是要求输入flag
JEB打开
使用encrypt(NE6)
所对应的hash算法,得到hash
然后转16进制
如果getSecret(getFlag())
和getSecret(encrypt(sInput))
相等则为true
即只需要判断getFlag和encrypt(sInput)即可
对应位置ascii减一
getFlag()没有输入,动态调试获取对应值:
JEB 中 v1值改为string得到输出
1 | string@4584:"ek`fz@q2^x/t^fn0mF^6/^rb`qanqntfg^E`hq|" |
然后对应ascii+1
writeup如下:
1 | s = "ek`fz@q2^x/t^fn0mF^6/^rb`qanqntfg^E`hq|" |
todo
- 静态分析getFlag方法
- 使用hook获取getflag返回值