当前位置: 首页 > 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.dtcms.com/a/339354.html

相关文章:

  • bypass webshell--Trait
  • canopen 初体验
  • 【qml-4】qml与c++交互(类型多例)
  • 配置nginx以支持http3
  • rabbitmq发送的延迟消息时间过长就立即消费了
  • Maven的三种项目打包方式——pom,jar,war的区别
  • 微算法科技(NASDAQ: MLGO)研究利用PBFT中的动态视图变换机制,实现区块链系统高效运转
  • 股指本周想法
  • 区块链 + 域名Web3时代域名投资的新风口(下)
  • 使用 Docker 安装长安链管理平台 + 部署长安链
  • DL00291-联邦学习以去中心化锂离子电池健康预测模型完整实现
  • Transformer实战(13)——微调Transformer语言模型用于文本分类
  • 操作系统:多线程、进程管理、内存分配、任务调度等
  • Gemini CLI 详细操作手册
  • ECC升级S4,AVL自定义GUI 状态无法显示全选和取消全选按钮
  • Matplotlib数据可视化实战:Matplotlib基础与实践-快速上手数据可视化
  • 学习嵌入式的第二十一天——数据结构——链表
  • 08.19总结
  • 豆包1.5轻量版 vs Gemini 2.5闪存版:生成5000字深度文章,哪个模型更合适?
  • 玳瑁的嵌入式日记D20-08019(数据结构)
  • audio接口的技术发展
  • Java技术总监的成长之路(技术干货分享)
  • 昆仑万维SkyWork AI技术发布周:多模态模型的全面突破
  • 记一次 .NET 某自动化智能制造软件 卡死分析
  • 一条 SQL 语句在 MySQL中的执行过程。
  • Python网络爬虫全栈教程 – 从基础到实战
  • 【INOUT端口】
  • HarmonyOS 中的 setInterval的基本使用
  • openssl生成自签名证书的方法
  • 飞算JavaAI颠覆传统:SpringBoot项目开发效率革命实录