IDA反汇编一段程序,请高手解析一下。该如何处理
IDA反汇编一段程序,请高手解析一下。
dword_43E098 = (int)v6;
*((_DWORD *)v6 + 3) = 0;
*(_DWORD *)(dword_43E098 + 60) = 0;
*(_DWORD *)(dword_43E098 + 68) = 0;
*(_DWORD *)(dword_43E098 + 156) = 0;
*(_DWORD *)(dword_43E098 + 28) = 2;
*(_DWORD *)(dword_43E098 + 140) = 10;
*(_DWORD *)(dword_43E098 + 20) = 0;
*(_DWORD *)(dword_43E098 + 136) = 65280;
*(_DWORD *)(dword_43E098 + 24) = 10;
*(_DWORD *)(dword_43E098 + 64) = 0;
*(_DWORD *)(dword_43E098 + 8) = 0;
*(_DWORD *)(dword_43E098 + 4) = 0;
*(_DWORD *)(dword_43E098 + 32) = -10031;
*(_DWORD *)(dword_43E098 + 76) = 0;
*(_DWORD *)(dword_43E098 + 80) = 0;
*(_DWORD *)(dword_43E098 + 84) = 0;
*(_DWORD *)(dword_43E098 + 148) = 0;
*(_DWORD *)(dword_43E098 + 92) = 0;
*(_BYTE *)(dword_43E098 + 124) = 0;
*(_DWORD *)(dword_43E098 + 144) = 0;
*(_DWORD *)(dword_43E098 + 160) = 0;
*(_DWORD *)(dword_43E098 + 164) = 0;
*(_DWORD *)(dword_43E098 + 256) = 0;
这一段是什么意思,翻译成正常的VC代码应该是怎么样的啊!
------解决方案--------------------
兄弟,这就是VC代码啦,你还想咋样呀?
------解决方案--------------------
对呀,这已经是C的代码了,它是在初始化局部变量
------解决方案--------------------
看偏移量啊,就可以大概推出结构体样子了
------解决方案--------------------
对一段内存缓冲区初始化赋值。
一般为结构赋值,或是类对成员的初始化行为...
后者居多。
一般我们研究这个,就自己生成一个类,用IDA看下,就明白 了。
dword_43E098 = (int)v6;
*((_DWORD *)v6 + 3) = 0;
*(_DWORD *)(dword_43E098 + 60) = 0;
*(_DWORD *)(dword_43E098 + 68) = 0;
*(_DWORD *)(dword_43E098 + 156) = 0;
*(_DWORD *)(dword_43E098 + 28) = 2;
*(_DWORD *)(dword_43E098 + 140) = 10;
*(_DWORD *)(dword_43E098 + 20) = 0;
*(_DWORD *)(dword_43E098 + 136) = 65280;
*(_DWORD *)(dword_43E098 + 24) = 10;
*(_DWORD *)(dword_43E098 + 64) = 0;
*(_DWORD *)(dword_43E098 + 8) = 0;
*(_DWORD *)(dword_43E098 + 4) = 0;
*(_DWORD *)(dword_43E098 + 32) = -10031;
*(_DWORD *)(dword_43E098 + 76) = 0;
*(_DWORD *)(dword_43E098 + 80) = 0;
*(_DWORD *)(dword_43E098 + 84) = 0;
*(_DWORD *)(dword_43E098 + 148) = 0;
*(_DWORD *)(dword_43E098 + 92) = 0;
*(_BYTE *)(dword_43E098 + 124) = 0;
*(_DWORD *)(dword_43E098 + 144) = 0;
*(_DWORD *)(dword_43E098 + 160) = 0;
*(_DWORD *)(dword_43E098 + 164) = 0;
*(_DWORD *)(dword_43E098 + 256) = 0;
这一段是什么意思,翻译成正常的VC代码应该是怎么样的啊!
------解决方案--------------------
兄弟,这就是VC代码啦,你还想咋样呀?
------解决方案--------------------
对呀,这已经是C的代码了,它是在初始化局部变量
------解决方案--------------------
看偏移量啊,就可以大概推出结构体样子了
------解决方案--------------------
对一段内存缓冲区初始化赋值。
一般为结构赋值,或是类对成员的初始化行为...
后者居多。
一般我们研究这个,就自己生成一个类,用IDA看下,就明白 了。