作为一个初学者,我正在尝试使用IDA Pro 6.8分解文件。我为耗时的工作编写了一些IDC脚本。

现在,我想获取脚本的执行时间,但是找不到合适的IDC函数。有没有人告诉我如何编写脚本来获得执行时间?

预先感谢。

评论

如果您允许我提出建议,我强烈建议您使用idapython而不是idc。据我所知,使用/提供所有python运行时似乎也更容易。

@Abigail:可能有理由在Python上使用IDC;我们应该尝试按要求回答该问题,除非明显地被误导了。

很公平。 @ user6903,您可以尝试在IDC中使用call_system以某种方式获取系统时间,并将功能包装在调用中以获取系统时间。

@阿比盖尔我在IDA Pro 6.8的IDC功能列表中找不到call_system。您是说其他版本的IDA Pro吗?

在6.8中可能称为Exec。我不知道-因为我没有IDA Pro。由于您是客户,因此如果没有其他人可以提供帮助,我会尝试他们的支持。

#1 楼

解决Ida中缺少时间支持的变通办法是:IDC有一个“ Exec”命令(如注释中所述),允许您对操作系统进行任意调用。这可能会有所帮助。在“ Exec”括号中,您输入的命令与在命令行中键入命令的方式几乎相同。将带有一些注释的日期和时间写入文件
C:\ tmp \ mytime.tim。

读取此文件并将其内容分配给Ida的输出
窗口。

static main()
{
    writeTime();
}

static writeTime()
{
    Exec ("echo Date of script run #1234 was %date% >> c:\tmp\mytime.tim");
    Exec ("echo Time of script run #1234 %time% >> c:\tmp\mytime.tim");
    print("Time written into C:\tmp\mytime.tim");

    auto h = fopen("c:\tmp\mytime.tim", "r");
    auto date = readstr(h);
    auto time = readstr(h);
    if (date != -1 && time != -1)
    {   
        Message("%s", date);
        Message("%s", time);
    }
    else
        Message("error\n");
    fclose(h);
}


Ida的输出窗口显示以下内容: