还是关于屏幕取词东西.我用修改函数入口七个字节的方法.
问题在于,我如果A进程修改了一个函数,如textoutA入口七个字节,改程JMP XXXX,让它跳转到A进程我的替换函数当中来.那么对修改函数的A进程来说,它可以顺利跳转进来,因为我指定的替换函数的地址XXXX对A进程来说是存在并且正确的.因为DLL的代码页面是所有进程共享的,比如textouta所在的GDI32.dll,所有的进程都加载了它并且共享它的代码页面.那么如果其他进程调用textoutA,遇到的第一条指令就是JMP XXXX,XXXX指令对其他进程来说极有可能是一个未保留的地址,照理说遇到这种情况,其他进程应该立即崩溃,但是我实际测试表明,对其他进程没有影响. 问题在于,我如果A进程修改
问题在于,我如果A进程修改了一个函数,如textoutA入口七个字节,改程JMP XXXX,让它跳转到A进程我的替换函数当中来.那么对修改函数的A进程来说,它可以顺利跳转进来,因为我指定的替换函数的地址XXXX对A进程来说是存在并且正确的.因为DLL的代码页面是所有进程共享的,比如textouta所在的GDI32.dll,所有的进程都加载了它并且共享它的代码页面.那么如果其他进程调用textoutA,遇到的第一条指令就是JMP XXXX,XXXX指令对其他进程来说极有可能是一个未保留的地址,照理说遇到这种情况,其他进程应该立即崩溃,但是我实际测试表明,对其他进程没有影响. 问题在于,我如果A进程修改