9-纯C++构建CALL代码
纯C++构建CALL代码
思路:
原有汇编的本质是一个成员函数的调用,如果能够完全使用C++模仿这个成员函数的调用,则无需使用汇编指令来写
方法1:假设一个类,并且创建一个这种类的指针,将其地址设为thiscall的this地址,将其call的函数的实际内容设为目标程序里的函数地址,最后使用thiscall模仿,得到自动编译好的汇编代码并自动植入
方法2:修改类的虚函数表,将虚函数指向改为目标程序里的函数地址,再修改当前类对象指针的指向为目标函数里的类地址,最后使用thiscall编译出同样的汇编代码。
1.创建一个类
class Role |
2.创建一个指向这个类的成员函数指针
typedef void (Role::* BeActer)(int damage,int num); |
3.定义一个函数指针变量,并将实际执行的函数地址赋给它
注意:以下代码都被放在函数内部,等待被编译后根据函数指针将编译后的指令传入目标进程
BeActer bA = NULL; //定义并初始化为NULL |
发布于