注:学习笔记来自安全牛课堂。感谢倪群主,感谢苑老师!
这里我有个疑问,就是,既然都可以准备2700个唯一字符了,那么能否准备3500或者更多的唯一字符呢?
这里没有测试,只是进行了一个猜测。
上面少了一个截图,还应该截一张调试工具的图。这样就可以清晰的看到溢出到了哪里,有没有溢出满。
这里有点难度,因为精心编写的shellcode还不能有坏字符。下面只能去向ESP寄存器里面的输送所有字符,看调试工具里面的反应,来判断坏字符。
右键点击Follow in Dump,就可以看他指向的地址里面的数据了。
像这样就能怀疑0A是坏字符了,于是,将上面的脚本,0A改成09,继续发送,去测试,一方面看0A是否真的是坏字符,另一方面,找下一个可能是坏字符的字符。
而且,由于是16个字符,很有规律,所以上面看到的11,21,31等等,以1为一行结束的,就说明那一行都没丢字符。