[FlareOn6]Overlong

查壳,32位,无壳

image-20240719210707091

进IDA

image-20240719210726663

一个处理函数,还有一个弹窗,运行一下看看弹窗

image-20240719210937139

然后看看加密函数和加密的字符

加密函数进去就是处理a3(28)次字符

image-20240719211700188

但是点进去402008这个数组发现他的实际长度很长,肯定是远远大于28

结合一下return i,发现主函数就是把text[28]变成0,把字符串给截断了,让弹窗只输出了28个字符

所以把这个28给他改成原本数组长度128试试

另外,这个函数的if判断在字符为0时会主动跳出,所以a3的值大一些也无所谓

用OD运行一下,28是函数最后一个参数,调用约定还是stdcall,所以这个参数是第一个入栈的

image-20240719212834581

所以我们单步执行,在1c入栈后把栈中数据改一下

image-20240719213118067

修改之后直接运行,得到完整弹窗

image-20240719213149516

得到flag{I_a_M_t_h_e_e_n_C_o_D_i_n_g@flare-on.com}

posted @ 2024-07-19 21:35  yee-l  阅读(13)  评论(0)    收藏  举报