如何在Call图表中使用SOOT进行构建?或者有更好的计划吗?我被发送到同样的五页寻找答案,我无法找到我要找的东西。 Eclipse的插件版本也存在问题。它安装正确,但我想在运行代码时无法选择它。
答案 0 :(得分:1)
对上一个答案的小修改
private static void visit(CallGraph cg, SootMethod method) {
String identifier = method.getSignature();
visited.put(method.getSignature(), true);
dot.drawNode(identifier);
// iterate over unvisited parents
Iterator<MethodOrMethodContext> ptargets = new Sources(cg.edgesInto(method));
if (ptargets != null) {
while (ptargets.hasNext()) {
SootMethod parent = (SootMethod) ptargets.next();
if (!visited.containsKey(parent.getSignature())) visit(cg, parent);
}
}
答案 1 :(得分:0)
以下是一些示例,包括Java的调用图。 http://www.brics.dk/SootGuide/
为apk调用图表。 https://github.com/secure-software-engineering/soot-infoflow/issues/38
如果你想获得点文件,你可以迭代调用图并以点格式写出内容。
$from_date = strtotime($fDay.date('F',mktime(0,0,0,$fMonth,15,2006)).$fYear);
$to_date = strtotime($tDay.date('F',mktime(0,0,0,$tMonth,15,2006)).$tYear);
$from_datetime = date_create(date("Y-m-d", $from_date));
$to_datetime = date_create(date("Y-m-d", $to_date));
//Statistikvariabler
$all_orders = $DBcon->query("SELECT * FROM `order_structure` WHERE `date`>={$from_date} && `date`<={$to_date}");
//Räkna ut totalsumma från och med nyår
$all_orders_sum = $DBcon->query("SELECT * FROM `order_structure` WHERE `date`>={$from_date} && `date`<={$to_date}");
$all_sum = 0;
//Använd ovanstående för att räkna ut snittorder
while($sum = $all_orders->fetch_assoc() ){
$all_sum += $sum['sum'];
}
//Räkna ut debiterade timmar
$all_orders_debs = $DBcon->query("SELECT * FROM `order_data` WHERE (`status`=3 || `status`=4) && `date`>={$from_date} && `date`<={$to_date}");
$all_time = 0;
$all_prods = 0;
while( $debs = $all_orders_debs->fetch_assoc() ){
$all_time += $debs['minutes'];
$all_prods += $debs['sek'];
}