2016-11-17 73 views
0

我正在做關於惡意軟件特徵提取的工作。我想翻譯彙編指令,丟棄操作數並用一個唯一編號(比如指令ID)編碼每個操作符。如何使用Java Parser翻譯彙編指令?

我想輸出是這樣的: 指令序列:240→33→386→240

+1

聽起來像你需要一個'Map <>', – bradimus

+0

你可以使用Map來查找數字並返回文本 – TungstenX

回答

0

是這樣的::

public static Map<Integer, String> LOOK_UP = new HashMap<>(); 
static { 
    LOOK_UP.put(240, "MOV"); 
    ... 
} 

public static String InstructionToString(Integer i) { 
    if(LOOK_UP.contains(i)) { 
     return LOOK_UP.get(i); 
    } else { 
     //return error of some kinde 
    } 
} 

public static List<String> InstructionsToString(Integer[] arrayOfInst) { 
    List<String> ret = new LinkedList<>(); 
    for(int i : arrayOfInst) { 
     ret.add(InstructionToString(i)); 
    } 
    return ret; 
} 

(I」 MOV→CALL→SUB→MOV 指令的IDS沒有檢查代碼的語法)