linux调试基础

movl $0x123,%eax(立即寻址,$表示立即数,%表示寄存器)
movl 0x123,%eax(直接寻址,这是0x123表示的是一个地址)
movl (%ebx),%eax(间接寻址,这时(%ebx)中的值表示内存中的一个地址,可以认为相当于%ebx是指针p,而(%ebx)是*p,这句就是 %eax=*p)
movl 4(%ebx),%edx(变址寻址,在间接寻址的基础上再加4个单位,就是%edx=*(p+4))
ret指令就是pop %eip

Little-Endian:低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
Big-Endian:高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
如0xffffd3c0,小端的情况下,内存排列为c0d3 ffff,大端的情况则为ffff d3c0

gdb x命令用法——https://blog.csdn.net/baidu_24256693/article/details/47298513

/i为指令格式

objdump

objdump命令是Linux下的反汇编目标文件或者可执行文件的命令,它还有其他作用,下面以ELF格式可执行文件test为例详细介绍:

objdump -f test  显示test的文件头信息

objdump -d test  反汇编test中的需要执行指令的那些section

objdump -D test  与-d类似,但反汇编test中的所有section

objdump -l test 用文件名和行号标注相应的目标代码,仅仅和-d、-D一起使用。使用-ld和使用-d的区别不是很大,在源码级调试的时候有用,要求编译时使用了-g之类的调试编译选项。

objdump -h test  显示test的Section Header信息

objdump -t obj:输出目标文件的符号表

objdump -x test  显示test的全部Header信息

objdump -s test  除了显示test的全部Header信息,还显示他们对应的十六进制文件代码

objdump -s -j .text ——-j 选项指定要处理的节,必须要结合其他选项

readelf

-a :--all 显示全部信息,等价于 -h -l -S -s -r -d -V -A -I

-h :--file-header 显示elf文件开始的文件头信息.

-l :--program-headers  ;--segments 显示程序头(段头)信息(如果有的话)。

-S :--section-headers  ;--sections 显示节头信息(如果有的话)。

-g :--section-groups 显示节组信息(如果有的话)。

-t :--section-details 显示节的详细信息(-S的)。

-s :--syms  ;--symbols 显示符号表段中的项(如果有的话)。

-e :--headers 显示全部头信息,等价于: -h -l -S

-n :--notes 显示note段(内核注释)的信息。

-r :--relocs 显示可重定位段的信息。

-u :--unwind 显示unwind段信息。当前只支持IA64 ELF的unwind段信息。

-d :--dynamic 显示动态段的信息。

-V :--version-info 显示版本段的信息。

-A :--arch-specific 显示CPU构架信息。

-D :--use-dynamic 使用动态段中的符号表显示符号,而不是使用符号段。

-x <number or name> :--hex-dump=<number or name> 以16进制方式显示指定段内内容。number指定段表中段的索引,或字符串指定文件中的段名。

-w[liaprmfFsoR]或者

-debugdump[=line,=info,=abbrev,=pubnames,=aranges,
=macro,=frames,=frames-interp,=str,=loc,=Ranges] 显示调试段中指定的内容。

-I :--histogram 显示符号的时候,显示bucket list长度的柱状图。

-v :--version 显示readelf的版本信息。

-H :--help 显示readelf所支持的命令行选项。

-W :--wide 宽行输出。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值