常见C/C++在OD/IDA中的表现形式
常量
c++代码
#define SIZE 100
const int g_nCount = 1000;
enum eData
{
enum_TYPE_1 = 1,
enum_TYPE_2 = 2,
enum_TYPE_3 = 3,
};
struct sData
{
int n;
float fNum;
char ch;
};
int main()
{
const bool bRet = true; //布尔常量
const int nCount = SIZE; //宏常量
const char * sz = "Hello World"; //字符串常量
const eData data = enum_TYPE_1; //枚举常量
const float fNum = 1.5; //浮点常量
const sData stc = {
1,2.0,'1'}; //结构体常量
}
在IDA中查看
总结:
- 一般/宏/enum常量嵌入到opcode中
- 字符串常量使用地址
- 浮点常量保存在rdata段,并一定使用xmm0寄存器操作
字符串
c++代码
int main()
{
char szStr[100] = {
"Str[100]"};
char szStr2[] = "szStr2[] ";
wchar_t szWchar[