页面属性更改失败
本帖最后由 longlonglong 于 2023-10-22 13:58 编辑程序加VMProtect v3.00 - 3.5.0 [ option : packed ] - 2003-2021
1935E350 | 55 | push ebp |
1935E351 | 8BEC | mov ebp,esp |
1935E353 | 51 | push ecx |
1935E354 | C645 FF 00 | mov byte ptr ss:,0 |
1935E358 | 0FB645 FF | movzx eax,byte ptr ss: |
1935E35C | 85C0 | test eax,eax |
1935E35E | 75 54 | jne nice801tdx.1935E3B4 |
1935E360 | 0FB64D 14 | movzx ecx,byte ptr ss: |
1935E364 | 85C9 | test ecx,ecx |
1935E366 | 74 1A | je nice801tdx.1935E382 |
1935E368 | 6A 01 | push 1 |
1935E36A | 8B55 10 | mov edx,dword ptr ss: |
1935E36D | 52 | push edx |
1935E36E | 8B45 0C | mov eax,dword ptr ss: |
1935E371 | 50 | push eax |
1935E372 | E8 B5950D00 | call nice801tdx.1943792C |
1935E377 | C3 | ret |
1935E378 | 83C4 0C | add esp,C |
1935E37B | 8B4D 08 | mov ecx,dword ptr ss: |
1935E37E | 8901 | mov dword ptr ds:,eax |
1935E380 | EB 18 | jmp nice801tdx.1935E39A |
1935E382 | 8B55 10 | mov edx,dword ptr ss: |
1935E385 | 52 | push edx |
1935E386 | 8B45 0C | mov eax,dword ptr ss: |
1935E389 | 50 | push eax |
1935E38A | 6A 00 | push 0 |
1935E38C | E8 DF5D2A00 | call nice801tdx.19604170 |
1935E391 | C3 | ret
地址1935E350指令改为1935E350 | C3 | retn
内存中注入代码:
//="nice801tdx.dll"
mov edi,esi
add edi,0x3CC
push edi
call <kernel32.GetModuleHandleA>
cmp eax,0x0
je @L00000003
mov edi,esi
add edi,0x3BC
push edi
push 0x40
push 0x4
add eax,0xE350
mov edi,eax
push eax
call <kernel32.VirtualProtect>//地址1935E350属性改为PAGE_EXECUTE_READWRITE
mov byte ptr ds:,0xC3
call <kernel32.VirtualProtect>指令通过call GetLastError返回值00000005。
操作失败。通过大白却可以操作成功。
问题一:
请指出上面方法为什么失败
问题二:
是否有更好的方法 ZwProtectVirtualMemory被VMProtect下钩子了,解决办法当然就是从系统中获取正确入口并恢复
论坛有教程:
https://www.52pojie.cn/thread-1159161-1-1.html
lies2014 发表于 2023-10-22 14:38
ZwProtectVirtualMemory被VMProtect下钩子了,解决办法当然就是从系统中获取正确入口并恢复
论坛有教程:
...
谢谢,ZwProtectVirtualMemory函数都没问题 lies2014 发表于 2023-10-22 14:38
ZwProtectVirtualMemory被VMProtect下钩子了,解决办法当然就是从系统中获取正确入口并恢复
论坛有教程:
...
现在在研究大白为什么能成功。
页:
[1]