Gray Hat --Learning Python Chapter 2

调试器(Debugger)

调试器可以帮助我们动态得跟踪程序运行状态,查看到达某一步时寄存器内容、变量内容等。调试分为白盒调试黑盒调试,我们写程序之后运行调试属于白盒调试,而在反向工程中使用的调试就是黑盒调试。

区别黑盒调试的两个分支 用户模式内核模式

  • 用户模式:用户程序使用最基本的权限运行的模式
  • 内核模式:最高权限模式,是操作系统运行核心功能时状态,比如驱动模块等。当使用Wireshark抓包时,就是在跟运行在内核状态的网卡驱动进行交互。

x86通用寄存器

8个通用寄存器:EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP

  • EAX–(accumulator register)是我们熟知的运算器,用于加、减、比较等运算,也用来存储函数调用的返回值。
  • EDX–(data register)是EAX的扩展,在乘除运算中存储数据,也可用来作为一般的数据寄存器
  • ECX–(count register)用于循环操作中计数,为递减的
  • ESI和EDI S代表source,D代表Destination。一般ESI作为源地址,EDI作为目的地址。简单来说,可以用ESI对应地址作为输入,EDI对应地址作为输出
  • ESP和EBP ESP(stack pointer)指向栈顶端,EBP(base pointer)指向栈基址。用他们来管理栈操作和函数调用
  • EIP 是CPU中的IP寄存器,指向下一条指令地址

程序断点

程序断点分为3种:
1. 软程序断点(soft breakpoint)
2. 硬程序断点(hardware breakpoint)
3. 内存程序断点(memory breakpoint)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值