我使用 IDA Pro 并从生成的 C 文件中得到以下表达式:
v25 = (*(int (**)(void))(v22 + 464))();
我试图通过以下链接找出上述表达式的含义:
http://www.unixwiz.net/techtips/reading-cdecl.html
http://www.codeproject.com/Articles/7042/How-to-interpret-complex-CC-declarations
我开始,(v22 + 464)然后走出括号,向左转到以下*(int (**)(void))。
但是,还是看不懂。任何提示?
编辑:我猜这个表达式不是声明而是函数调用。
(v22+464) 然后被转换为一个指针,该指针指向一个函数的指针,该函数将 void 作为参数并返回一个 int。然后该指针被取消引用并应用 () 运算符 - 调用该函数。