这个题是不需要逆向加密函数就可以得到flag的,可以直接动态调试得到flag比较快一点
这个冒号后面有东西没有输出
查看主函数的汇编
push 1Ch
push offset unk_402008
是调用下面这个函数前的参数传递
call sub_401160
观察这个函数,push 1Ch
传递的是输出的位数
unk_402008是要打印的字符串
计算一下这段数据的长度
begin=0x402008
end=0x04020B7
num=end-begin
print('%#x'%num)
#0xaf
说明传入的长度应该是0xaf
我们使用OD动态调试将其改长一点
我们需要用IDA中找到的位置来在OD里面寻找要修改的位置
使用CFF查看,开启了基址随机化
导致OD和IDA中每次打开,指令的位置不一样
将随机化去除就可以
修改机器码
然后运行得到了flag,修改机器码
flag{I_a_M_t_h_e_e_n_C_o_D_i_n_g@flare-on.com}