首页 > 代码库 > X64下 FF 25 + 00 00 00 00 + 导出表函数地址小测试
X64下 FF 25 + 00 00 00 00 + 导出表函数地址小测试
在X64的情况下,JMP反汇编出来的 FF 25 后面加的是 00 00 00 00 和导出表函数地址
测试代码如下:
void JmpFunctionAddressOfExportTableInX64Using00() { DWORD OldProtect; ULONG_PTR v1 = (ULONG_PTR)GetProcAddress(LoadLibrary(L"user32.dll"), "MessageBoxA"); ULONG_PTR v2 = 0; printf("%p\r\n", v1); printf("%p\r\n", v2 = Sub_1()); VirtualProtect((PVOID)v2, 0x1000, PAGE_EXECUTE_READWRITE, &OldProtect); memcpy((PVOID)((ULONG_PTR)v2 + 48), (PVOID)&v1, sizeof(ULONG_PTR)); VirtualProtect((PVOID)v2, 0x1000, OldProtect, NULL); Sub_8InX64(); }
Sub_1和 Sub_8InX64同样是汇编
Sub_1 PROC lea rax, Sub_8InX64; inc rax mov ebx, [rax] lea rax, Sub_8InX64 add rax, rbx add rax, 5 ret Sub_1 ENDP Sub_8InX64 PROC sub rsp,28H mov r9, 0 mov r8, 0 mov rdx, 0 mov rcx, 0 call Flag1 add rsp,28H ret Flag0 : db 0FFH db 25H db 00H db 00H db 00H db 00H db 00H db 00H db 00H db 00H db 00H db 00H db 00H db 00H Flag1: jmp Flag0 Sub_8InX64 ENDP
注:在这之前要调用下MessageBoxA函数。
X64下 FF 25 + 00 00 00 00 + 导出表函数地址小测试
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。