3
我不確定這是否是正確的地方要問,任何幫助將不勝感激。我想爲Java構建一個靜態污點分析工具。我的理解是,該工具將從主入口點開始掃描所有的java文件。對於每一行源代碼,它都會解碼並執行所需的操作。Java程序的靜態污點分析
例如,
1- Boolean x=false;
2- String s = x.toString();
線路1宣稱一個布爾變量和線路2將其轉換成字符串。第一行將會注意到布爾變量'x'已被聲明,並且它被轉換成第二行的字符串。而且,如果我對toString()函數進行檢查並執行所需的操作,我的工具只會理解它。
我的問題是,我是否需要編寫檢查Java中爲布爾類型定義的所有函數?其他數據類型和其他庫函數如何?
例如,可用於布爾類型的其他一些函數是;
toString(boolean value)
compareTo(Boolean that)
etc.
如果我使用StringUtils的或番石榴字符串什麼?還是小數格式化程序?你有大量的軌道來覆蓋和加載更多的時間花在這個話題上。沒有提及類型到對象的轉換和轉換....也許最好是分析字節碼,或做動態分析? – fatfredyy
同意。這就是爲什麼我想知道其他靜態污點分析工具如何做到這一點?並且所有其他工具只能在字節碼級別上工作嗎? – Junaid