Python自定义Windows调试器(一)

目前绝大多数的IDE都包含断点调试的功能,缺少这个,用print来调试代码,简直就是个灾难,下面我们来实现一个简陋版的“断点调试”;

环境:WIN7 x86_64  Python2.7

///了解///

调试类别:白盒调试:源码在手          黑盒调试:软件包

黑盒调试 -> 用户态(ring3);内核态(ring0)

ring3 -> WinDbg;OllyDbg;     GNU(gdb):Linux ...

八个通用寄存器(习惯了32位,64位请自己查询):EAX,EDX.ECX.ESI.EDI.EBP.ESP.EBX

EAX:累加器,常用的运算操作和传递函数调用的返回值

EDX:数据寄存器,可理解为EAX的延伸

ECX:计数器

counter = 0

while counter<5#ECX = 5 每执行一次ECX -= 1 : SUB ECX 1H

print counter

counter+=1

ESI:源变址寄存器,可简单理解为存储输入数据流位置的信息,用于“读”

EDI:用于“写”

ESP:栈指针 指向栈顶(低位)

EBP:栈基指 指向栈底(高位)

EIP*:始终指向cpu当前执行的指令,缓冲区溢出原理就是利用EIP被覆盖,来执行自己构建的代码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值