TaintDroid實現數據流的污點追蹤

TaintDroid實現數據流的污點追蹤


taintdroid不同層次的污點標籤追蹤:
1:變量級別的追蹤:java代碼-->dalvik虛擬機的解釋器的執行字節碼-->對內存中的變量地址的下地址開闢一個32位的空間存儲一個污點標籤 圖1

2:java方法中的污點標籤傳遞開闢雙倍空間的棧,以參數1的地址,參數1的污點標籤,參數2的地址,參數2的污點標籤……的方式開闢方法的棧空間 圖2

3:native方法中(native方法本身不包含污點標籤,因爲C/C++代碼的編譯器無法改變?):當帶有污點標籤的數據作爲參數傳入native方法時,傳入參數就成了:參數數據地址與數據的污點標籤值以及一個return tag,當native方法返回時,返回的數據,以及參數都帶有return tag這個污點標籤 圖3

4:IPC中的污點追蹤就通過message級別的追蹤,message中的污點標籤就是所有message中的變量的污點標籤的總和
5:二次存儲的污點追蹤:例如數據存入文件後,數據就從內存中消失了,因此,我們在文件的擴展屬性中添加一個所有進入這個文件的數據的污點標籤,當從文件中取出數據時,把這個數據重新打上文件擴展屬性中的污點標籤。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章