摘要: R/W 0 和LEN 0对应断点0线性地址; DR则是调试寄存器 硬件断点: 基于CPU的调试寄存器 可以对代码、数据访问和IO访问设置断点 断点被触发时,CPU产生的是1号异常 受调试寄存器的数量限制 WinDbg 的ba命令设置的便是硬件断点 在多处理器系统中,硬件断点是与CPU相关的,也就是说 阅读全文
posted @ 2019-07-11 21:46 瀚瀚大人 阅读(488) 评论(0) 推荐(0) 编辑
摘要: 1.段寄存器结构 段寄存器一共96位,但是可见部分只有16位 其中红色部分就是段选择子(就是做段权限检测的)Selector比如:2B拆分如下 0010 1011 -》0010 1 0 11 00101查找GDT表里面的位置索引5 2.段寄存器的读写: 读段寄存器: 比如:MOV AX,ES 只能读 阅读全文
posted @ 2019-07-10 14:17 瀚瀚大人 阅读(1392) 评论(0) 推荐(0) 编辑
摘要: 1.什么是保护模式? x86 cpu 的3个模式:实模式、保护模式、和虚拟8086模式。 实模式基本运行在16位 保护模式基本运行在32位和64位下 虚拟8086基本上是为了兼容两者的一种机制 电脑开机实际上是先进入实模式而后再进入保护模式的,并非一开机则进入保护模式! 2.保护模式有什么特点? 段 阅读全文
posted @ 2019-07-10 11:57 瀚瀚大人 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 如果查表得出这样的格式[--][--]+disp8, 那么说明光靠Table 2-2确定不了,还要往后跟一个字节,SIB 阅读全文
posted @ 2019-07-10 11:00 瀚瀚大人 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 如果3-5字段不是描述Reg 而是描述Opcode 举例说明: 80 65 08 FF 猹表步骤: 1.第一个字节为80 查 Table-2表,得到对应结构:Eb,ib 2.第二个字节为ModR/M字段,拆分为65为: 01 100 101 Mod 与R/M字段 查Table2-2 得到对应结构:[ 阅读全文
posted @ 2019-07-10 10:24 瀚瀚大人 阅读(271) 评论(0) 推荐(0) 编辑
摘要: Mod (6.7)位和R/M(0.1.2)位组合查询看下表2-2 经典变长指令_ModR/M 0x88 MOV Eb,Gb G:通用寄存器 0x89 MOV Ev,Gv E:寄存器/内存 0x8A MOV Gb,Eb B:字节 0x8B MOV Gv,Ev v:Word,doubleword or 阅读全文
posted @ 2019-07-09 22:37 瀚瀚大人 阅读(1093) 评论(0) 推荐(0) 编辑
摘要: ee 阅读全文
posted @ 2019-07-09 18:25 瀚瀚大人 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 1.PUSH / POP 0x50 push eax 0x51 push ecx 0x52 push edx 0x53 push ebx 0x54 push esp 0x55 push ebp 0x56 push esi 0x57 push edi - - - - - - - - - - - - - 阅读全文
posted @ 2019-07-09 16:55 瀚瀚大人 阅读(452) 评论(0) 推荐(0) 编辑
摘要: Opcode 最多3字节,最少1字节,最重要的组成部分 1.如歌区分指令定长还是变长? 1.最关键的表格 Intel白皮书(“英特尔® 64 和 IA-32 架构开发人员手册”) A.2.4.1 2.Zz表示法 其中 Eb ,lb或者Eb,Gb 相搭的则为变长指令,反之则为定长指令! E A Mod 阅读全文
posted @ 2019-07-09 16:16 瀚瀚大人 阅读(1629) 评论(0) 推荐(0) 编辑
摘要: 冒号前则为前缀指令 2.前缀指令是分组的: 1.LOCK 和REPEAT前缀指令: LOCK F0 //多核同步 [锁地址总线] REPNE/REPNZ F2 //重复执行后面的指令 REP/REPZ F3 LOCK F0 //多核同步 [锁地址总线] REPNE/REPNZ F2 //重复执行后面 阅读全文
posted @ 2019-07-09 13:42 瀚瀚大人 阅读(479) 评论(0) 推荐(0) 编辑