2016-11-17 60 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没有检查代码的语法)