日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android加密通信防抓包,[原创]基于Taintdroid思想的android ssl\tsl保密通信抓包研究(未成功,分享一下思路)...

發布時間:2023/12/2 Android 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android加密通信防抓包,[原创]基于Taintdroid思想的android ssl\tsl保密通信抓包研究(未成功,分享一下思路)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[舊帖]

[原創]基于Taintdroid思想的android ssl\tsl保密通信抓包研究(未成功,分享一下思路)

0.00元

2014-5-12 22:07

1565

[舊帖]

[原創]基于Taintdroid思想的android ssl\tsl保密通信抓包研究(未成功,分享一下思路)

0.00元

2014-5-12 22:07

1565

這篇文章我先在CSDN上發了,看雪上沒有權限發帖,就將就著吧。

最近在研究https加密通信的android端的數據包抓取研究

有兩個思路:

1.通過taintdroid在相應的https請求java調用接口處打印log日志方法;編寫https請求demo apk,驗證日志輸出

2.通過源碼級工具調試,在https請求相應地方下斷點,進行數據追蹤

目前,研究taintdroid基礎上,做了一些嘗試:

1.首先熟悉下載和編譯taintdroid步驟,以下為官方網站:

http://appanalysis.org/download.html

編譯之前的環境配置工作參照android官方網站:http://source.android.com/source/initializing.html

建議:ubuntu12.04 64位,swap空間設置12G以上,硬盤空間50G以上

2.查看源碼,在https調用api處,打印日志,打印出通信內容;

根據taintdroid中的追蹤ssl加密通信代碼,可知通信使用的類如下:

\libcore\luni\src\main\java\org\apache\harmony\xnet\provider\jsse\OpenSSLSocketImpl.java

具體taintdroid代碼如下:

public void write(byte[] buf, int offset, int byteCount) throws IOException {

BlockGuard.getThreadPolicy().onNetwork();

synchronized (writeLock) {

checkOpen();

Arrays.checkOffsetAndCount(buf.length, offset, byteCount);

if (byteCount == 0) {

return;

}

// begin WITH_TAINT_TRACKING

int tag = Taint.getTaintByteArray(buf);

FileDescriptor fd = socket.getFileDescriptor$();

if (tag != Taint.TAINT_CLEAR) {

int disLen = byteCount;

if (byteCount > Taint.dataBytesToLog) {

disLen = Taint.dataBytesToLog;

}

// We only display at most Taint.dataBytesToLog characters in logcat

String dstr = new String(buf, offset, disLen);

// replace non-printable characters

dstr = dstr.replaceAll("\\p{C}", ".");

String addr = (fd.hasName) ? fd.name : "unknown";

String tstr = "0x" + Integer.toHexString(tag);

Taint.log("SSLOutputStream.write(" + addr + ") received data with tag " + tstr + " data=[" + dstr + "]");

}

// end WITH_TAINT_TRACKING

NativeCrypto.SSL_write(sslNativePointer, socket.getFileDescriptor$(),

OpenSSLSocketImpl.this, buf, offset, byteCount);

}

}

代碼中if (tag != Taint.TAINT_CLEAR)判斷是否為污點標記數據,是,則通過Taint.log()來實現logcat日志輸出,這里為了實現所有的輸出打印,刪除判斷條件,打印所有數據:

String dstr = new String(buf, offset, byteCount);

dstr = dstr.replaceAll("\\p{C}", ".");

Taint.log("SSLOutputStream.write(1111) received data with tag 2222 data=[" + dstr + "]");

3.編譯相應ROM,刷機到相應手機,此處使用的nexus4

4.編寫https請求apk demo

參照博客,代碼完全相同,修改url地址即可

http://blog.csdn.net/yzwlord/article/details/9565821

5.在刷好rom的運行APK,打開logcat日志,查看打印輸出

使用如下命令

adb shell logcat -v time *:S TaintLog:*

注:筆者認為此方法應該完全可行,但是實際效果卻是沒有ssloutput日志輸出。此處記錄一下我的實踐過程,供大家參考!

總結

以上是生活随笔為你收集整理的Android加密通信防抓包,[原创]基于Taintdroid思想的android ssl\tsl保密通信抓包研究(未成功,分享一下思路)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。