前期资料
源码下载与编译使用
TaintDroid1-为参数添加污染标签
TaintDroid2-修改虚拟机栈
TaintDroid3-虚拟机解释器的修改
TaintDroid4-组件间污点传播
Taint.java提供的方法
getTaintString(String str) //get tag from a String
getTaintObjectArray(Object[] array) //get tag from an object array
getTaintBooleanArray(Boolean[] array) //get tag from a boolean array
getTaintCharArray(char[] array) //get tag from a char array
getTaintByteArray(byte[] array) //get tag from a byte array
getTaintDirectByteBuffer(ByteBuffer dByteBuffer) //get tag from a direct ByteBuffer
...
总结
TaintDroid是通过在函数执行时添加一个if语句来完成sink点的设置,添加有if语句的都可以认为是sink点。
验证
-
修改了android源码点OutputStream.write方法。如下所示。
-
重新编译android源码。
-
编写一个apk,调用OutputStream的write方法。
-
打开TaintDroidNotify。
-
adb logcat抓取日志查看结果