我是Hex-ray的新手。在深入研究每个功能的同时,我引起了一个无法通过谷歌搜索或搜索找到答案的问题。在ida中生成的函数Pseudocode模式(F5)中的注释, 它像这样说:
char __userpurge function@<al>(int a1, ... )
{
HANDLE v2; // eax@1
DWORD v3; // eax@4
void *4; // eax@6
LARGE_INTEGER FileSize; // [esp+4h] [ebp-8h]@2
}
有人能告诉我关于eax@1
,eax@4
这些东西的含义吗?
除此之外,我也想知道[esp+4h] [ebp-8h]@2
意味着什么。
答案 0 :(得分:0)
这个问题已在{3}}的Stack Exchange逆向工程中得到解答:
数字表示微码中的基本块编号 变量最初使用。微码基本块不一定 匹配反汇编中的基础块,因为在优化期间 步骤可以拆分,合并,添加微代码基本块或 除去。
你可以在Ilfak的Igor Skochinsky's answer中看到一些微码样本 或者在一些旧的博客文章中: whitepaper on the decompiler 1(块号是第一个号码 这条线。)
建议在2社区中提出有关逆向工程的问题。