我正在阅读一篇关于x86挂钩的文章x86 API挂钩,我遇到了这段代码:
if(*function_A == 0xe9) {
printf("Hook detected in function A.\n");
}
Run Code Online (Sandbox Code Playgroud)
似乎这段代码测试函数的操作码是否是跳转.我的问题是关于语法*function_A.这是什么语法?它是否返回C中函数的操作码?我做了很多研究但是没有找到关于这个功能的任何文档
编辑
我以为我添加了文章的链接,但我注意到我忘了添加它.链接添加,以防它有帮助.
不,您不能取消引用函数指针来获取底层代码.
这可能是通过引入一个不同的指针,并依靠特定平台"做正确的事情"来完成的,其中"正确"意味着"我想做什么".
就像是:
const unsigned char *function_A = (unsigned char *) printf; /* Any function. */
Run Code Online (Sandbox Code Playgroud)
这是不可移植的,并且会生成编译器警告,因为函数和数据指针不兼容.在例如x86上,它可能会"起作用".
| 归档时间: |
|
| 查看次数: |
1380 次 |
| 最近记录: |