small-q 发表于 2014-9-23 09:14:05

X64 HOOK之汇编部分--Obj[转自飘云BLOG]

最新修正:http://www.dllhook.com/post/12.html

<pre class="prettyprint lang-bsh">format MS64 COFF
;===================================================
;" X64 HOOK PiaoYun/P.Y.G "
;" www.chinapyg.com "
;" www.dllhook.com "
;" Fixed: 2016-10-08 "
;===================================================

public GetRcx
public JmpAddr
public PatchBYTE
public PatchWORD
public PatchDWORD
public PatchQWORD
public AddFun

; Fixed 增加一个获取Rcx函数
GetRcx:
    mov    rax, rcx
    retn

JmpAddr:
    xchg   rax, rcx
    jmp    rax

PatchBYTE:
    mov    rax, rcx
    mov    , dl
    retn         

PatchWORD:
    mov    rax, rcx   
    mov    , dx   
    retn

PatchDWORD:
    mov    rax, rcx   
    mov    , edx
    retn            

PatchQWORD:
    mov    rax, rcx
    mov    , rdx
    retn         

AddFun:
    mov    rax, rcx
    add    rax, rdx
    retn</pre>      


用FASM编译成obj,添加到VS2012即可~~~

测试代码:

#include <windows.h>
#include <stdio.h>

// 宏定义
#define EXTERNC extern "C"
#define VOIDSTD EXTERNC void __stdcall
#define INT64STD EXTERNC INT64 __stdcall

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 汇编函数声明
VOIDSTDGetRcx();
VOIDSTD JmpAddr(INT64 addr);
VOIDSTD PatchBYTE(INT64 addr, byte data);
VOIDSTD PatchWORD(INT64 addr, WORD data);
VOIDSTD PatchDWORD(INT64 addr, DWORD data);
VOIDSTD PatchQWORD(INT64 addr, INT64 data);
INT64STD AddFun(INT64 a, INT64 b);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

VOID JmpFun()
{
      MessageBox(NULL, TEXT("111"), TEXT("11111"), MB_OK);
}

VOID main()
{
      printf("%I64X\n", AddFun(0x111111111, 0x222222222));
      GetRcx(); // Fixed 2016-10-08
      JmpAddr((INT64)&JmpFun);
      system("pause");
}


crackvip 发表于 2014-9-25 10:23:00

沙发,沙发,没人支持下X64 是不行滴。。

gujin162 发表于 2016-5-10 17:22:45


感谢分享,收藏

飘云 发表于 2016-10-8 20:20:24

此代码已修正:
http://www.dllhook.com/post/12.html

slzslz 发表于 2020-12-8 22:53:15

看了很多遍了,经典
页: [1]
查看完整版本: X64 HOOK之汇编部分--Obj[转自飘云BLOG]