5.3.2 完善的DOS窗口程序

“大家先看看刚才decode里面的0x00是怎样出现的。”老师提醒道。

大家都盯着图5-6仔细的看。

“哦!”古风叫了起来,“是 mov ecx, 0x200 那句指令出现的!0x200就是0x0200,那儿有个零。”

“对!我们 mov ecx, 0x200 ,就是把ecx赋成0x200,用来指明enShellCode长度是0x200。”老师说。

“哦!我们把它变为0x201就行了!”这下大家都明白了。

“是啊!我们把0x200改成0x201,不就没有0x00了吗?重新把decode和ShellCode合起来,得到decodeAndenShellCode2。”

大家嚷了起来:“快试一下效果啊!”

“OK!编译、执行,弹出我们的DOS对话框了!如图5-9。”

古风懊恼的说:“我怎么这么笨啊!”

“不,这只是一个分析是否彻底的问题。在学习上,大家一定要脚踏实地,把问题真正研究透。对于缓冲区溢出编程来说,更是态度决定一切!清楚了吗?”

“清楚了!”同学们响亮地答道。

“好,大家先休息一下,下节课我们继续深入探讨。”