如何使用soot修改字节码文件,以便我可以打印一些东西?

时间:2014-09-26 04:30:45

标签: java soot

我有一个target.java:

static void main(){
    int a = 0;

    a++;
    a++;
    return 0;
}

我想使用soot插入命令,以便target.java可以输出以下句子" a is = 2" (我不需要与后面相同的代码格式):

static void main(){
    int a = 0;

    a++;
    a++;
    System.out.println("a is = " + a + "\n");
    return 0;
}

任何人都知道怎么做? 我知道关于soot的一些事情是我应该首先创建一个表达式然后我应该找到main方法的最后一个位置然后我将表达式转换为语句最后我应该将该语句添加到字节代码中。

InvokeExpr reportExpr = Jimple.v().newStaticInvokeExpr(//something here);
Stmt reportStmt = Jimple.v().newInvokeStmt(reportExpr);
units.insertBefore(reportStmt, stmt);

我应该在newStaticInvokeExpr()中添加什么内容?

0 个答案:

没有答案