汇编 修改本身内存 5
在A进程中,注入了Bdll,在B中,某函数if(IsBadReadPtr(address,2)){virtualprotectex(address,2,读|写|执行);}...
在A进程中,注入了B dll,
在B中,某函数
if(IsBadReadPtr(address,2))
{
virtualprotectex(address,2,读| 写| 执行 );
}
asm
{
//能读出 A进程的内存
mov eax,0x00400000
mov bh,cs:[eax]
invoke MessageBox(NULL,bh,NULL,MB_OK);
// 写内存
mov byte ptr cs:[eax],0x00
} 展开
在B中,某函数
if(IsBadReadPtr(address,2))
{
virtualprotectex(address,2,读| 写| 执行 );
}
asm
{
//能读出 A进程的内存
mov eax,0x00400000
mov bh,cs:[eax]
invoke MessageBox(NULL,bh,NULL,MB_OK);
// 写内存
mov byte ptr cs:[eax],0x00
} 展开
2个回答
展开全部
CPU 要执行的命令不是谁给它的,是它自己到内存中去取来的,机器一加电,CS:IP 就指向了 FFFF:0000,这里存放着电脑要执行的第一条指令,以后 CS:IP 会跑到哪里去,全由它正在执行的指令的内容来决定了。
进入 debug 后,用 r 命令可以查看各寄存器的状态,譬如用 rip 可以看到 ip 所指地址,但实际此时真实的 ip 寄存器并非指向你看到的那个地址,奥妙就在这里。debug 本身也是一个程序,CPU 也在执行它的代码,当你用 R 命令查看 IP 时,此时真实 IP 所指的是 R 命令的当前代码,它显示给你的那个 IP 是 R 命令从它维护的堆栈里找给你的。可以说,debug 接管了 CPU,CPU 实际上是被 debug 控制了 ,你用它的命令查看时,它把以前保护下来的现场翻出来给你,你看到的东西是经 debug 虚拟层过滤后的结果。这就是为什么你用 R 查看 CS:IP 时不导致计算机错乱崩溃的原因。
debug 是 DOS 下的 16 位程序,它采用段:偏移量方式操作内存,所以最大只能操作 1M 内存。在实模式下,内存没有写保护,你用 debug 可以随意查看或修改内存任何重要数据(ROM 不可写除外),但在保护模式下,windows 采用分页机制管理内存,并对内存进行了写保护措施。这个时候你开个 DOS 窗口启动 debug 去看内存,实际上看到的并不是真实的内存,都是 windows 虚拟出来的垃圾信息。windows 不想让用户直接操作内存、硬盘、CPU等硬件,对这些东西都加了保护,如果用户要直接操作硬件,它要不就给出错误或拒绝或返回垃圾信息以欺骗用户。
所以,你要是想了解机器底层的秘密,最好在实模式了进行。在 windows 下去窥探底层,看到的信息往往是虚假的,可恶的 bill gates,他就是不想让用户去动影响操作系统稳定性的底层的东西。
进入 debug 后,用 r 命令可以查看各寄存器的状态,譬如用 rip 可以看到 ip 所指地址,但实际此时真实的 ip 寄存器并非指向你看到的那个地址,奥妙就在这里。debug 本身也是一个程序,CPU 也在执行它的代码,当你用 R 命令查看 IP 时,此时真实 IP 所指的是 R 命令的当前代码,它显示给你的那个 IP 是 R 命令从它维护的堆栈里找给你的。可以说,debug 接管了 CPU,CPU 实际上是被 debug 控制了 ,你用它的命令查看时,它把以前保护下来的现场翻出来给你,你看到的东西是经 debug 虚拟层过滤后的结果。这就是为什么你用 R 查看 CS:IP 时不导致计算机错乱崩溃的原因。
debug 是 DOS 下的 16 位程序,它采用段:偏移量方式操作内存,所以最大只能操作 1M 内存。在实模式下,内存没有写保护,你用 debug 可以随意查看或修改内存任何重要数据(ROM 不可写除外),但在保护模式下,windows 采用分页机制管理内存,并对内存进行了写保护措施。这个时候你开个 DOS 窗口启动 debug 去看内存,实际上看到的并不是真实的内存,都是 windows 虚拟出来的垃圾信息。windows 不想让用户直接操作内存、硬盘、CPU等硬件,对这些东西都加了保护,如果用户要直接操作硬件,它要不就给出错误或拒绝或返回垃圾信息以欺骗用户。
所以,你要是想了解机器底层的秘密,最好在实模式了进行。在 windows 下去窥探底层,看到的信息往往是虚假的,可恶的 bill gates,他就是不想让用户去动影响操作系统稳定性的底层的东西。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询