2017-07-18 78 views
0

構建Android的控制流程圖有沒有解析smali代碼直接構建CFG的工具?我知道Androguard做了類似的事情,但是它似乎在apk文件上使用了反編譯功能,如果apk使用混淆技術,它可能會變得不可靠。從smali代碼

+0

可能重複 - https://gackoverflow.com/questions/13739815/how-to-generate-call-graph-from-android-apk –

回答

0

看一看https://androguard.blogspot.co.il/2011/02/android-apps-visualization.html

關於你對Androguard的關注。

似乎對apk文件

你的意思是 「拆卸」 使用反編譯?那麼,一個工具需要了解字節碼才能構建調用圖。如果你的意思是「反編譯爲Java」,我敢肯定這不會發生。

的情況下,不可靠的,如果APK使用混淆技術

有各種混淆技術。大多數與通話圖無關。例如。名稱修改將類名稱org.apache.http.client.HttpClient替換爲a.b.c之類的無意義內容。你仍然可以在CFG中看到這個類和它的功能。

+0

我發現這個文件https://github.com/vivainio/androguard第6672行的/blob/master/androguard/core/bytecodes/dvm.py負責將字節碼轉換爲有用的信息。我是否正確地說這是反彙編而不是反編譯? –

+0

這整個模塊負責將二進制dex格式解析爲實際的操作碼及其部分 - 就像smali。對於機器字節碼來說,它更像是反彙編程序。無論如何,這部分對於查看哪些方法互相調用確實非常重要,但是(大部分)與混淆無關。 –