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

汇编语言学习2---GNU Debugger (GDB)

学习记录,在汇编语言 ,我们面对的是机器码(以汇编指令形式展现),所以断点要设置在机器码被加载到内存中的位置。

GEF插件使用

安装插件

 wget -O ~/.gdbinit-gef.py -q https://gef.blah.cat/pyecho source ~/.gdbinit-gef.py >> ~/.gdbinit

GDB支持第三方插件,GEF是一个专为逆向工程和二进制开发而构建的插件。
GEF学习文档
https://hugsy.github.io/gef/
加载ELF程序

gdb -q ./helloWorld

在这里插入图片描述
也可以在编译的过程中使用,下面是一个编译和构建的bash脚本

#!/bin/bashfileName="${1%%.*}"nasm -f elf64 ${fileName}".s"
ld ${fileName}".o" -o ${fileName}
[ "$2" == "-g" ] && gdb -q ${fileName} || ./${fileName}

通过这个脚本,可以快速编译elf可执行文件
在这里插入图片描述

./assembler.sh helloWorld.s -g

在这里插入图片描述

枚举信息

info functions

在这里插入图片描述
得到了_start函数

info variables

在这里插入图片描述
可以看到,程序里定义的 message 变量被列出来了和其他一些默认段变量。

反汇编

disas _start

在这里插入图片描述
包括内存地址(比如 0x401000)和偏移量(比如 <+0>)

http://www.lryc.cn/news/625800.html

相关文章:

  • PiscCode迅速集成YOLO-Pose 实现姿态关键点轨迹跟踪应用
  • 疏老师-python训练营-Day50预训练模型+CBAM注意力
  • PHP如何使用JpGraph生成折线图?
  • NVIDIA 优化框架:Jetson 平台 PyTorch 安装指南
  • vue,H5车牌弹框定制键盘包括新能源车牌
  • 楼宇自控系统的应用,已然成为智能建筑行业发展方向
  • 【网络运维】Playbook部署文件:Files模块库&JINJA2模板
  • 18650锂电池自动化生产线:智能集成提升制造效能
  • Qt猜数字游戏项目开发教程 - 从零开始构建趣味小游戏
  • 厚板数控矫平机的“第三堂课”——把视角拉远,看看它如何重塑整条制造链
  • AUTOSAR进阶图解==>AUTOSAR_SWS_FlashEEPROMEmulation
  • 星链之供应链:SpaceX供应链韧性密码,70%内部制造+模块化设计,传统航天企业如何追赶?
  • 数字孪生 :提高制造生产力的智能方法
  • 写代码的方式部署glm-4-9b-chat模型:gradio和api两种模式
  • python学习DAY46打卡
  • Apache ECharts 6.0.0 版本-探究自定义动态注册机制(二)
  • npm下的scratch(少儿编程篇)
  • 使用segment-anything将目标检测label转换为语义分割label
  • 零售行业新店网络零接触部署场景下,如何选择SDWAN
  • 【Proteus仿真】【51单片机】基于51单片机自动售货机12864屏幕
  • ICCV 2025 | 首个3D动作游戏专用VLA模型,打黑神话只狼超越人类玩家
  • 如何免费给视频加字幕
  • AndroidR车机系统Settings数据库增加非持久化存储键值方案-续
  • 国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—ARM + FPGA通信案例
  • 深入解析Spring MVC运行流程:从请求到响应的完整旅程
  • React学习(六)
  • Spring Cache 整合 Redis 实现高效缓存
  • Android音频学习(十三)——音量配置文件分析
  • proDAD VitaScene:专业视频转场特效滤镜软件
  • spring声明式事务,finally 中return对事务回滚的影响