你需要編寫一個IDA插件使用IDAPython
(python
爲IDA
)或IDC
(IDA
腳本語言,它非常類似於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使用IDC
插件。
而這裏是a sample for similar script in IDA Python
而不是IDC
。
我從您發佈的某個鏈接中找到了此頁[http://practicalmalwareanalysis.com/2012/03/25/decorating-your-disassembly/](http://practicalmalwareanalysis.com/2012/03/25/decorating-your-disassembly /)並將ColorIDA.IDC腳本保存在我的idc文件夾中。如果我這樣做了,我就加載了IDA並進入了'File> Script file..',它很慢,但最終加載並着色了'Call'行。我無法弄清楚如何讓它自動運行,但我無法讓python也能運行。第一次使用腳本,我有點困惑該怎麼辦?謝謝 – Craig
所以我試着按照這個指導讓它自動運行,沒有太多的運氣:[http://fuzzynop.blogspot.co.uk/2013/04/making-ida-pretty-pretty-quickly.html](http ://fuzzynop.blogspot.co.uk/2013/04/making-ida-pretty-pretty-quickly.html)不知道我到底需要做什麼? – Craig
我無法知道如何讓它在打開IDA時自動運行,但無論如何我需要做的就是加載一次腳本,當我下次打開它時保存當前數據庫時,它會立即加載腳本所以這對我來說很好,謝謝。 – Craig