摘要: 为了安全起见,Windows XP及其以后的系统将一些重要的内存页设置为只读属性,这样就算有权力访问该表也不能随意对其修改,例如SSDT、IDT等。但这种方法很容易被绕过,我们只要将这些部分修改为可写属性就可以了,不过当我们的事情做完后记得把它们恢复为只读属性,不然会造成一些很难预料到的后果。 cr0是系统内的控制寄存器之一。控制寄存器是一些特殊的寄存器,它们可以控制CPU的一些重要特性。 控制寄存器最初出现于低级的286处理器中,以前称之为机器状态字(machine status word),在386以后它们被重命名为控制寄存器(control register)。 cr0寄存器直... 阅读全文
posted @ 2013-06-18 13:59 曾是土木人 阅读(5324) 评论(1) 推荐(1) 编辑
摘要: 以上有个问题:为什么同样的汇编指令JMP 12345678却对应不同的机器码呢?首先,机器码E9表明这是一个近跳转(Near Jmp)这里需要补充下相关知识:JMP分3种:①短跳转(Short Jmp,只能跳转到256字节的范围内),对应机器码:EB②近跳转(Near Jmp,可跳至同一段范围内的地址),对应机器码:E9③远跳转(Far Jmp,可跳至任意地址),对应机器码: EA短跳转和近跳转指令中包含的操作数都是相对于(E)IP的偏移。远跳转指令中包含的是目标的绝对地址。所以短/近跳转会出现跳至同一目标的指令机器码不同,不仅会不同,而且应该不同。而远跳转中包含的是绝对地址,因此转移到同一地 阅读全文
posted @ 2013-06-18 10:15 曾是土木人 阅读(4452) 评论(2) 推荐(1) 编辑