Hex-Rays IDA Pro中"0010 ^0.16 ___u8_ iv;"含义及参数存储疑问
IDA函数参数中
^0.16标记的含义 ^0.16是IDA用来标识栈上参数的标记,拆解来看:^符号直接说明这个参数不存储在任何通用寄存器中,而是通过栈传递- 后面的
0.16表示该参数在栈帧里的偏移:0代表偏移的基准(通常是栈基指针rbp),16是偏移的字节数,也就是说这个参数位于rbp+16的栈内存位置(具体偏移基准可能因函数栈帧设置略有不同,但核心是栈上位置)
对比你熟悉的寄存器参数(比如
rsi对应的self),带^的参数意味着调用方是把参数值压入栈后再调用函数,而非通过寄存器传递。以你给出的例子
0010 ^0.16 ___u8_ iv;来说,就是iv这个字节型参数,存储在栈上偏移16字节的位置,属于栈传递参数。
内容的提问来源于stack exchange,提问作者Tsy Senyon
相关产品推荐
相关产品推荐

