【网鼎杯】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}