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位版本的很少,这个是从古歌搜索到的。这里是源码。哪位大牛研究研究源码看看能否写出来更好的工具。
多谢共享这么好的代码 看看!!!多谢分享!!!
页:
[1]