查壳,32位,无壳
进IDA
一个处理函数,还有一个弹窗,运行一下看看弹窗
然后看看加密函数和加密的字符
加密函数进去就是处理a3(28)次字符
但是点进去402008这个数组发现他的实际长度很长,肯定是远远大于28
结合一下return i,发现主函数就是把text[28]变成0,把字符串给截断了,让弹窗只输出了28个字符
所以把这个28给他改成原本数组长度128试试
另外,这个函数的if判断在字符为0时会主动跳出,所以a3的值大一些也无所谓
用OD运行一下,28是函数最后一个参数,调用约定还是stdcall,所以这个参数是第一个入栈的
所以我们单步执行,在1c入栈后把栈中数据改一下
修改之后直接运行,得到完整弹窗
得到flag{[email protected]}
标签:字符,Overlong,函数,28,FlareOn6,加密,弹窗,入栈 From: https://www.cnblogs.com/yee-l/p/18312422