re学习笔记(91)攻防世界 - mobile进阶区 - Android2.0

Posted Forgo7ten

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了re学习笔记(91)攻防世界 - mobile进阶区 - Android2.0相关的知识,希望对你有一定的参考价值。

jeb打开查看MainActivity方法,发现通过JNI.getResult方法来判断成功与否


而getResult是native方法

IDA载入so文件
找到相应函数


Init函数类似每组字数为3的栅栏加密,只不过是没连在一起。

将得到的3组,第一组前4个字符 每个字符乘以2再异或0x80再进行比较

剩下的则是,每组的前四位;第二组异或第一组,第三组异或第二组。再进行比较

写Python脚本得到

r1 = [ord(i) for i in list("LN^dl")]
r2 = [0x20, 0x35, 0x2D, 0x16, 0x61]
r3 = [ord(i) for i in list("AFBo}")]
flag = ""
for i in range(5):
    if(i < 4):
        r3[i] ^= r2[i]
        r2[i] ^= r1[i]
        r1[i] = (r1[i] ^ 0x80)//2
    flag += chr(r1[i])
    flag += chr(r2[i])
    flag += chr(r3[i])

print(flag)

得到flag为flag{sosorryla}

以上是关于re学习笔记(91)攻防世界 - mobile进阶区 - Android2.0的主要内容,如果未能解决你的问题,请参考以下文章

攻防世界-进阶-re-for-50-plz-50

攻防世界 reverse 进阶 10 Reverse Box

攻防世界 reverse 进阶5-7

攻防世界 reverse 进阶 16-zorropub

2019.8.31-9.3 攻防世界RE练习

《攻防世界》学习笔记——web篇