硬件调试:如何对抗硬件断点的一 --- 调试寄存器

1.前言  在我跨入ollydbg门时候就对ollydbg里面各种断点充满了疑问以前我总是不明白普通断点内存断点硬件断点有什么区别他们为什么有些时候不能混用他们原理是什么在学习了前辈们文章以后终于明白了些东西希望这篇文章能让你对硬件断点原理和使用有些帮助  2.正文  --------------------------------------------------  i.硬件断点原理  在寄存... [阅读全文]

寄存器的作用:读寄存器内容的源代码

我环境是WINXP+MASM5.0通过编译生成可执行文  件双击提示写入文件成功按任意键推出  在同目录下TEMP.TXT中已经写入了:  ABCD  4645  4F5B  FFFF   4行用来测试而显示送入寄存器值  以下是完整代码MovToVar Macro m_Reg,Asc_AX  mov bx,m_Reg  call ConvertToAsclea si,CAsciilea di,A... [阅读全文]

汇编寄存器:汇编~寄存器C...

个典型CPU是由:运算器控制器寄存器等器件构成这些器件靠内部总线相连 运行器进行信息处理控制器控制各器件进行工作寄存器存储信息内部总线连接各个器件在它们之间进行数据传送 通用寄存器:(虽然现在CPU已经到了64位普遍用32位16已经是古董但教程是16位还是学16位我想知道原理了多少位也没有太大关系了) 8086CPU所有寄存器都是16位可以存放两个字节AXBXCXDX四个寄存器通常用来存放... [阅读全文]

全局描述符表:装载和存储局部描述符表寄存器指令

=indent (1)装载局部描述符表寄存器指令参考:[http://www.crazycoder.cn/]装载局部描述符表寄存器指令格式如下: =instructLLDT SRC参考:[http://www.crazycoder.cn/] 其中操作数SRC可以是16位通用寄存器或存储单元该指令功能是把SRC中内容作为指示局部描述符表LDT选择子装入到LDTR寄存器该指令不影响标志 ... [阅读全文]

寄存器:控制寄存器

从上表可见80386有 4个32位控制寄存器分别命名位CR0、CR1、CR2和CR3但CR1被保留供今后开发处理器使用在80386中不能使用CR1否则会引起无效指令操作异常CR0包括指示处理器工作方式控制位包含启用和禁止分页管理机制控制位包含控制浮点协处理器操作控制位CR2及CR3由分页管理机制使用CR0中位5—位30及CR3中位0至位11是保留位这些位... [阅读全文]

堆栈寄存器:装载数据段和堆栈段寄存器时的特权检测

面简单地介绍说明了把选择子装入代码段寄存器CS时为实现保护而进行检测下面也简单地介绍说明在把选择子装入数据段寄存器和堆栈段寄存器时要进行检测 在把选择子装入数据段寄存器DS、ES、FS或GS时要进行如下检测: (1)选择子不能为空; (2)选择子指定描述符必须是数据段描述符、可读可执行代码段或致可读可执行代码段描述符; (3)对于数据段和... [阅读全文]

寄存器:装载LDTR寄存器

在使用LDT的前还要装载局部描述符表寄存器LDTR本例子中如下两条指令用于装载LDTR: mov ax,LDT_SEL lldt ax LLDT指令是专门用于装载LDTR指令该指令操作数是对应LDT段描述符选择子根据该选择子处理器从GDT中取出相应LDT段描述符在进行合法性等检查后LDT段描述符基地址和界限等信息被装入... [阅读全文]

寄存器:状态寄存器

状态寄存器是用来标识协处理器中指令执行情况它相当于CPU中标志位寄存器80x87协处理器状态寄存器如图11.5所示 15131211870 BC3TOPC2C1C0ESSFPEUEOEZEDEIE 状态寄存器各标志位(或组合位)含义如下: ◆B(Busy忙) 忙标志位用来表明协处理器是否正在执行协处理器指令它可用FWAIT指令来测试在80287及其以后协处理器中协处理器和CPU能自动实现同步所以现... [阅读全文]

状态寄存器:存取状态寄存器

对于协处理器中状态寄存器内容员可用指令FSTSW把其值送到内存单元中如果当前使用是80287及其以后协处理器那么可用指令“FSTSWAX”把该状态寄存器值传送给通用寄存器AX旦状态寄存器值复制到内存或AX中那么就可对其各位进行分析并可检测出当前协处理器工作状态 对于80287协处理器它还可通过I/O地址00FAH~00FFH来实现其与CPU之间数据交换而80387~Pentium系列芯片则是通过I... [阅读全文]

锁存器与寄存器:寄存器的保护与恢复

由于计算机硬件资源只有套当子修改了寄存器内容后返回到它时这些寄存器内容也就不会是子前内容这样子修改寄存器内容就可能变成了它副作用这种副作用常常会导致出错为此在编写子时除了能对作为入口和出口参数寄存器进行修改外对其它寄存器修改对来说都要是透明也就是说在子指令前后除了作为入口和出口参数寄存器内容可以区别外其它寄存器内容要保持不变有时也要求作为入口参数寄存器内容保持不... [阅读全文]

寄存器:寄存器的保护和恢复

保护寄存器介绍说明子句介绍说明格式: USES 寄存器列表 该介绍说明子句要求汇编为其生成保护和恢复寄存器指令序列即:在进入子执行指令的前把寄存器列表中寄存器压进堆栈在结束子执行时把先前压进堆栈寄存器弹出以达到保护寄存器目 寄存器列表:列举出在子中需要保护寄存器名即:在子开始时需要把内容进栈寄存器名若有多个寄存器名则在寄存器名的间要用“空格”来分开 例如: D... [阅读全文]

移位指令:逻辑移位指令

此组指令有:逻辑左移SHL(Sht Logical Left)和逻辑右移SHR(Sht Logical Right)它们指令格式如下: SHL/SHR Reg/Mem, CL/Imm 受影响标志位:CF、OF、PF、SF和ZF(AF无定义) 逻辑左移/右移指令只有它们移位方向区别移位后空出位都补0它们具体功能 (a)、SHL(b)、SHR 例5.11 已知(AH... [阅读全文]

通用寄存器:通用寄存器的作用

通用寄存器可用于传送和暂存数据也可参和算术逻辑运算并保存运算结果除此的外它们还各自具有些特殊功能汇编语言员必须熟悉每个寄存器般用途和特殊用途只有这样才能在中做到正确、合理地使用它们 表2.1 通用寄存器主要用途 寄存器分类寄存器主 要 用 途 通 用 寄 存 器数据   寄存器AX乘、除运算字输入输出中间结果缓存Cache AL字节乘、除运算字节输入输出... [阅读全文]

专用寄存器:专用寄存器的作用

16位CPU内部有个16位标志寄存器它包含9个标志位这些标志位主要用来反映处理器状态和运算结果某些特征各标志位在标志寄存器内分布如图2.2所示 1514131211109876543210 OFDFIFTFSFZF  AF  PF  CF 31…17161514131211109876543210 ……VMRF NTIOPLOFDFIFTFSFZ... [阅读全文]

段寄存器:段寄存器的引用

段寄存器是对内存分段管理而设置16位CPU有 4个段寄存器所以其可同时访问 4个区别含义段段寄存器及其偏移量引用关系如图2.7所示 段寄存器CS指向存放内存段IP是用来存放下条待执行指令在该段偏移量把它们合在起可在该内存段内取到下次要执行指令 段寄存器SS指向用于堆栈内存段SP是用来指向该堆栈栈顶把它们合在起可访问栈顶单元另外当偏移量用到了指针寄存器BP则其缺省... [阅读全文]
1 共1条 分1页