为了娱乐起见,我想分解我的c ++代码,并了解了程序如何调用函数,我了解到字节0xE8代表调用指令,后跟4个字节,这些字节导致所需的函数成为第一条指令。通过使用Visual Studio内存查看器,在0xE8指令字节之后的4个字节不会导致该函数的第一条指令,即功能地址。
例如
printf地址是046FC90h->“ h”是什么意思?
我能够提取的4个字节是53 d1 06 00
答案 0 :(得分:1)
您好,您的C代码设置如下
void Func() {
printf("Just a Func");
}
我们有一个调用的函数,它会打印Just a Func
,要获取此函数的地址,我们可以在其前面加上&
,例如&Func
您看到的h代表十六进制(以16为基数),并且您看到的数字可以用3种方式表示,但并不是每个编译器都支持046FC90h
和0x046FC90
,所有这些在十进制中表示{ 1}}
但是最初提出的问题是我们如何获得函数地址,即4652176
运算符。
&