如何在IDA中自动着色线?

时间:2015-10-03 10:07:19

标签: ida

我希望IDA在图形和文本视图中自动为重要指令着色,例如,只要有callxor指令将每个引用的背景颜色更改为a某种颜色。

以下是我要实现的目标:

enter image description here

图1图表视图

enter image description here

图2文字视图

我注意到您可以从主菜单转到Edit > Other > color instruction...,这样您就可以更改所选指令的背景颜色,但这并不会改变所有指令,而且似乎只影响当前数据库。

我如何让IDA自动为某些说明添加颜色,例如callxor,如示例图片所示?

我希望它能自动适用于我打开的任何数据库。

1 个答案:

答案 0 :(得分:3)

您需要使用IDAPythonpython IDA)或IDCIDA脚本语言编写IDA插件,该语言与{非常相似{1}}),以下代码位于C

IDC

您还可以参考操作码的操作数:

#include <idc.idc>
static main(void)
{
    auto currentEA;
    auto currentMnem;
    auto prevMnem;
    auto currentOp;
    prevMnem = "";
    currentOp;

    currentEA = FirstSeg();
    currentEA = NextHead(currentEA, 0xFFFFFFFF);
    while (currentEA != BADADDR)
    {
        currentMnem = GetMnem(currentEA);

       //Highlight call functions
       if (currentMnem == "call")
       {
           SetColor(currentEA, CIC_ITEM, 0xc7c7ff);
       }
    }
}

以下是使用//Non-zeroing XORs are often signs of data encoding if (currentMnem == "xor") { if (GetOpnd(currentEA, 0) != GetOpnd(currentEA, 1)) { SetColor(currentEA, CIC_ITEM, 0xFFFF00); } } 插件的a guide from Hex Blog

这里是a sample for similar script in IDA Python而不是IDC