如下代码,A程序创建一个名为SHINE的文件映射对象,B程序是vs内嵌asm代码,调用Openfilemapping函数打开文件映射对象,但是总是失败,用汇编
获取了DOS错误码总是0x6(句柄无效),同时获取到NT错误码是0xC0000024STATUS_OBJECT_TYPE_MISMATCH(对象类型不匹配)。
A程序:
char v2[] = "SHINE";HANDLE MappingHandle = NULL;
ULONG_PTR VirtualAddress = NULL;
HANDLE v1 = INVALID_HANDLE_VALUE;v1 = CreateFileMappingA(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, 0x1000, v2);
B程序:
VS内嵌的ASM文件,
OpenFileMappingA函数地址每次启动都是一样的所以写死了.DATAINP DB 'SHINE\0'.CODESub_1 PROC ;获取命令行参数保存到[rbp+8h]中
mov rax,qword ptr gs:[60h]
mov rax,qword ptr [rax+20h]
mov rax,qword ptr [rax+78h]
mov qword ptr [rbp+8h],rax
;打开名为"SHINE"的文件映射对象,并获得内存首地址 lea r8,INP
xor rdx,rdx
mov rcx,6
mov rax,00007ffb4ed0f5d0h ;openfilemappingA首地址,我的电脑上固定的所以写死了
call rax
mov rax,qword ptr gs:[30h];获得TEB地址
xor rbx,rbx
mov ebx,dword ptr [rax+68h];偏移0x68处获得LastErrorValue
mov ecx,dword ptr [rax+1250h];偏移0x1250处获得LastStatusValue
ret
Sub_1 ENDPEND
小弟用win2k源码查了下这个函数的调用过程,发现它会调用ObReferenceObjectByHandle函数,这里面好像有设置NTstatus为STATUS_OBJECT_TYPE_MISMATCH的过程,也不知道是不是这里出的错,一头雾水,还望各位前辈帮忙解决下!小弟非常感激!!!!
获取了DOS错误码总是0x6(句柄无效),同时获取到NT错误码是0xC0000024STATUS_OBJECT_TYPE_MISMATCH(对象类型不匹配)。
A程序:
char v2[] = "SHINE";HANDLE MappingHandle = NULL;
ULONG_PTR VirtualAddress = NULL;
HANDLE v1 = INVALID_HANDLE_VALUE;v1 = CreateFileMappingA(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, 0x1000, v2);
B程序:
VS内嵌的ASM文件,
OpenFileMappingA函数地址每次启动都是一样的所以写死了.DATAINP DB 'SHINE\0'.CODESub_1 PROC ;获取命令行参数保存到[rbp+8h]中
mov rax,qword ptr gs:[60h]
mov rax,qword ptr [rax+20h]
mov rax,qword ptr [rax+78h]
mov qword ptr [rbp+8h],rax
;打开名为"SHINE"的文件映射对象,并获得内存首地址 lea r8,INP
xor rdx,rdx
mov rcx,6
mov rax,00007ffb4ed0f5d0h ;openfilemappingA首地址,我的电脑上固定的所以写死了
call rax
mov rax,qword ptr gs:[30h];获得TEB地址
xor rbx,rbx
mov ebx,dword ptr [rax+68h];偏移0x68处获得LastErrorValue
mov ecx,dword ptr [rax+1250h];偏移0x1250处获得LastStatusValue
ret
Sub_1 ENDPEND
小弟用win2k源码查了下这个函数的调用过程,发现它会调用ObReferenceObjectByHandle函数,这里面好像有设置NTstatus为STATUS_OBJECT_TYPE_MISMATCH的过程,也不知道是不是这里出的错,一头雾水,还望各位前辈帮忙解决下!小弟非常感激!!!!
解决方案 »
- mac中虚拟机win7 不能识别移动硬盘
- 寻求组网方案
- window下如何使用TortoiseSVN 进行命令行操作(Linux命令)
- 有用过html help workshop做帮助文档的吗?
- 有关在outlook日历中写入任务的问题
- 大神来看,跪求两台电脑直连Ping不通解决方法!
- 启动任何一个exe程序都会在后台自动安装hao123juzi浏览器,
- 求助,求2016Excel链接清理工具,类win7下的Excel 多链接清除工具
- wsus服务器,利用powershell自定义清理未连接计算机
- 各位大侠们,本人是vm苹果安装小白,目前遇到了一些问题,请大侠们解决一下,谢谢啦
- 各位大侠们,本人是vm苹果安装小白,目前遇到了一些问题,请大侠们解决一下,谢谢啦
- 求助大佬
还是在 call rax 上断点吧,看看 rax 是不是指向了 OpenFileMapping() 入口,其时几个参数是否是预想的;或者,用个单独的 c程序测试下。