bbaa987 发表于 2017-4-2 20:03:58

AheadLib64

本帖最后由 bbaa987 于 2017-4-3 10:31 编辑

仿照Aheadlib做的64位的版本。 由于默认vs编译器不支持x64的内联汇编。所以使用了obj文件。
obj文件源码是obj.asm文件。
写个例子 说下 转发的原理:
1.原始是call ;
2.进入劫持函数 void MyFunc() { AsmFunc1(); AsmFunc2((INT64)RealFuncAddr); }
//这里只是保存一下第一个参数到rax AsmFunc1: mov rax,rcx retn
//让rax指向真正的 eip(rcx是第一个参数) 还原第一个参数,跳到原始函数执行 AsmFunc2: xchg rax,rcx jmp rax
返回的时候是先返回到 AsmFunc2 下面 再返回到 原始调用处的下面
实际情况自己找个DLL劫持下走一遍就清晰了。
64位版本的很少,这个是从古歌搜索到的。这里是源码。哪位大牛研究研究源码看看能否写出来更好的工具。

sjhchinapyg 发表于 2017-4-7 06:56:18

多谢共享这么好的代码

zbc200414096 发表于 2023-5-18 11:48:22

看看!!!多谢分享!!!
页: [1]
查看完整版本: AheadLib64