知识杂项

*:字符串重复
空指令NOP:\x90
cmp:是比较指令,cmp的功能相当于减法指令。它不保存结果,只是影响相应的标志位。
xor:将两个操作数进行异或运算,并将结果存放到操作数1中。
shr:带进位的右移

shellcode的变形

函数代码在栈中保存顺序(直观理解,已省略其他细节):
buffer
前栈帧EBP
返回地址
ESP
溢出原理
正常情况下函数在返回过程中,最后会执行返回地址中保存的内容,通常是跳到下一条指令的地址如果buffer长度过长,长到覆盖了返回地址的值,那么函数在返回时,就会执行被覆盖的内容
如果将shellcode保存到buffer中,覆盖的返回地址为shellcode的起始地址,那么,shellcode将得到执行,完成栈溢出的利用。
pwntools自带的检查脚本checksec可以检查程序
RWX段:同linux的文件属性一样,对于分页管理的现代操作系统的内存页来说,每一页也同样具有可读(R),可写(W),可执行(X)三种属性。只有在某个内存页具有可读可执行属性时,上面的数据才能被当做汇编指令执行,否则将会出错。
syscall:在用户空间和内核空间之间,有一个叫做Syscall(系统调用, system call)的中间层,是连接用户态和内核态的桥梁。这样即提高了内核的安全型,也便于移植,只需实现同一套接口即可。Linux系统,用户空间通过向内核空间发出Syscall,产生软中断,从而让程序陷入内核态,执行相应的操作。对于每个系统调用都会有一个对应的系统调用号,比很多操作系统要少很多。
info:这个应该用来反馈系统的当前状态给最终用户的,所以,在这里输出的信息,应该对最终用户具有实际意义,也就是最终用户要能够看得明白是什么意思才行。

最新文章

  1. js只能输入数字、汉字、字母等正则匹配
  2. html5+css3实现跑动的爱心/动态水滴效果[原创][5+3时代]
  3. [knowledge][basic][hardware] 内存的硬件结构(转)
  4. MySQL绿色版安装(mysql-5.7.12-win32)
  5. 给文件加ip访问限制
  6. 使用nodejs引用socket.io做聊天室
  7. SQL SERVER全面优化
  8. Nodejs in Visual Studio Code 04.Swig模版
  9. Linux系统编程(34)—— socket编程之TCP服务器与客户端的交互
  10. php 垃圾回收机制----写时复制和引用计数
  11. ORA-31626:作业不存在 ORA-31633:无法创建主表"XXX.SYS_IMPORT_FULL_05"
  12. 跨境移动互联网的魅力演绎,hao123无论成就下一个条目?
  13. 关于ASP.NET WebForm与ASP.NET MVC的比较
  14. springMVC(spring)+WebSocket案例(获取请求参数)
  15. Android为TV端助力(转载)
  16. 启动sql2012时出现Cannot find one or more components.Please reinstall the application
  17. POJ - 1321 棋盘问题 简单搜索 dfs 格子
  18. Java 内部类.md
  19. 2017ACM/ICPC Guangxi Invitational Solution
  20. 20155220 2016-2017-2 《java程序设计》第四周总结

热门文章

  1. Thymeleaf模版--子页面单独引入CSS、JS文件
  2. logstash之filter处理中括号包围的内容
  3. zoj 3430 Detect the Virus(AC自己主动机)
  4. 【规范】前端编码规范——jquery 规范
  5. Android gradle 配置
  6. Linux 环境变量_006
  7. 在 windows 上安装免安装版的mysql
  8. Centos 使用Systemctl报Error getting authority: Error initializing authority: Error calling StartServiceByName for org.freedesktop.PolicyKit1: Timeout was reached (g-io-error-quark, 24)
  9. CentOS安装和配置FTP
  10. macOS 10.13 High Sierra odoo11 开发配置--完整版