C++ 函数指针 实现 Shellcode Loader

C++ 函数指针 实现 Shellcode Loader - 侠者安全社区
C++ 函数指针 实现 Shellcode Loader
此内容为付费阅读,请付费后查看
会员专属资源
您暂无购买权限,请先开通会员
开通会员
付费阅读

0x0 基础知识

在 C++ 中,函数也是有地址的。编译之后的函数,其实是一组指令的集合,这样一组指令在程序运行时存在于内存中,其起始地址就是该函数的地址,也称做函数的入口地址。
编写 C++ 程序时,可以用函数名来表示函数的地址,也可以在函数名之前加上取地址符号“&”表示函数的地址。
举个简单的例子:

int add(int a, int b) {
    return a + b;
}

函数指针也是一个变量,可以指向不同的函数。同时通过函数指针可以调用其指向的函数,从而使得函数调用更加灵活。
函数指针在 C++ 编程中有广泛的应用,比如回调函数、策略模式和表驱动方法。

定义一个函数指针,遵循以下格式:

返回值类型 (*函数指针名)(参数列表);

例如,定义一个指向返回值类型为 int、参数列表为 (int, int) 的函数指针:

int (<em>functionPtr)(int, int); </em>

其中,functionPtr 就是函数指针的名称。注意,函数指针名两侧的括号不能省略,否则就变成了一个返回 int 类型的函数声明。 可以在定义函数指针的同时为它赋初值,也可以在定义后再另行赋值。例如,令 functionPtr 指向上面的 add() 函数:

functionPtr = &add

或者更简洁地写成下面这种方式:

functionPtr = add
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情

    暂无评论内容