Android2.0

题目来源: SWPUCTF

题目描述:暂无

 

 

程序将输入传入JNI.getResult里判断正确性

因此查看JNI

发现getResult在Native库里

查看libNative.so的getResult

发现逻辑是先检查是否输入为15位,然后像发扑克牌将这个分成三组,每组5位,然后进行异或处理

解密脚本如下:

a1 = ""
a2 = ""
a3 = ""

key1 = "LN^dl"
for i in range(4):
    a1 += chr((ord(key1[i]) ^ 0x80) // 2)
a1 += key1[4]

key2 = " 5-\x16a"
for i in range(4):
    a2 += chr(ord(key2[i]) ^ ord(key1[i]))
a2 += key2[4]

key3 = "AFBo}"
for i in range(4):
    a3 += chr(ord(key3[i]) ^ ord(key2[i]))
a3 += key3[4]

flag = ""
for i in range(5):
    flag = flag + a1[i] + a2[i] + a3[i]

print(flag)

 

得到flag

flag{sosorryla}

posted @ 2021-08-24 23:41  hktk1643  阅读(122)  评论(0编辑  收藏  举报