TaintDroid

前期资料

源码下载与编译使用
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点。

验证
  1. 修改了android源码点OutputStream.write方法。如下所示。


    TaintDroid_第1张图片
    修改OutputStream.write方法
  2. 重新编译android源码。


    TaintDroid_第2张图片
    编译android源码
  3. 编写一个apk,调用OutputStream的write方法。


    TaintDroid_第3张图片
    MainActivity
  4. 打开TaintDroidNotify。


    TaintDroid_第4张图片
    TaintDroidNotify
  5. adb logcat抓取日志查看结果


    TaintDroid_第5张图片
    日志纪录

你可能感兴趣的:(TaintDroid)