【网鼎杯】jocker--部分代码加壳逆向处理

 

 

 

Main函数,用户输入flag,长度为24位

Wrong函数进行了简单的异或操作

Omg函数进行异或操作,根据提示来看应该是假check

Encrypt无法生成伪代码

发现有加壳以及自修改,下断点动调

输入与hahaha_do_you_find_me?进行了18次异或与密文进行比对,通过动调修改edx寄存器的值,看eax的值提取出密文

得出密文

a = [14,13,9,6,19,5,88,86,62,6,12,60,31,87,20,107,87,89,13]

写python脚本

a = [14,13,9,6,19,5,88,86,62,6,12,60,31,87,20,107,87,89,13]
s = "hahahaha_do_you_find_me?"
flag = ""
for i in range(19):
    flag += chr(ord(s[i]) ^ a[i])
print(flag)

#flag{d07abccf8a410c

得出的flag少五位

重新输入flag进行动调走到最后一部分

用了随机数,没有密文,直接开猜。与用户输入相异或的是”%tp&:”,由于最后一位flag一定是},’:’^’}’=71所以勇敢牛牛,不畏艰难,建议直接开整。

得出最后五位是b37a}

Getflag

flag{d07abccf8a410cb37a}

 

posted @ 2022-03-22 10:46  maao233  阅读(60)  评论(0编辑  收藏  举报