Assemble 修改自身内存 5,Assembles 修改自身内存

发布于 科技 2024-02-21
1个回答
  1. 匿名用户2024-01-25

    CPU 想要执行的命令不是给它的,而是自己从内存中取出的,只要机器上电,cs:ip 指向 ffff:0000,它存储了计算机基础营销银行要执行的第一条指令,然后是 cs:

    IP将运行到**,这完全取决于它正在执行的指令的内容。

    进入debug后,可以使用r命令查看每个寄存器的状态,例如,可以看到IP所指的地址,但实际上,真正的IP寄存器并不指向你看到的地址,这就是秘密。 Debug 本身也是一个程序,CPU 也在执行它的 **,当你使用 R 命令查看 IP 时,真正的 IP 指的是 R 命令的当前 **,它向你展示的 IP 是它维护的堆栈中的 R 命令。 可以说 debug 接管了 CPU,而 CPU 其实是由 debug 控制的,当你用它的命令去查看时,它为你翻出了之前被保护的站点,你看到的是被调试虚层过滤的结果。

    这就是为什么您可以使用 R 查看 CS:IP 而不会导致计算机崩溃的原因。

    Debug 是 DOS 下的一个 16 位程序,它以 segment:offset 模式操作内存,因此它最多只能操作 1M 内存。 在实模式下,内存中没有写保护,可以使用调试随意查看或修改内存中的任何重要数据(不可写的ROM除外),但在保护模式下,Windows使用分页机制来管理内存,并且内存是写保护的。

    这时,你打开一个DOS窗口开始调试,查看内存,但你看到的并不是真正的内存,它都是来自Windows虚拟化的垃圾信息。 Windows 不希望用户操纵内存、硬盘、CPU 等硬件,并保护所有这些东西,如果用户想直接操纵硬件,它要么给出错误,要么拒绝或返回垃圾邮件来欺骗用户。

    所以,如果你想知道底层机器的秘密,最好在实模式下进行。 当你偷看Windows的底部时,你看到的信息往往是虚假的,可恨的比尔盖茨只是不希望用户触及影响操作系统稳定性的底层事物。

相关回答