CA證書導入系統目錄


 

 

 

針對安裝證書后無法抓包的情況,將證書添加到系統路徑,使其成為系統信任憑證可解決:
設備要求userdebug獲取超級權限:
adb disable-verity
adb reboot
adb root
adb remount

pc端需要配置openssl
進入openssl的安裝目錄,執行start.bat
輸入命令 openssl x509 -subject_hash_old -in 證書文件路徑
將證書更名為 哈希值.0
將更名后的證書導入系統路徑:
adb push 證書路徑 /system/etc/security/cacerts/
進入系統設置查看:adb shell am start -a android.settings.SECURITY_SETTINGS

 

安裝配置好后,實際使用過程中,還是會遇到一些問題,如:抓取的https請求,接口返回都顯示為unknown,app很多請求不走代理,無論怎么配置都無法抓到請求

為了解決上面的問題,可以使用iptables 進行請求轉發,將請求轉發到代理服務器上

② 查看需要轉發請求的app uuid

ps -ef | grep 包名

③ 將所有應用u0_aXX的請求到端口0-65535的請求,轉發到透明代理 127.0.0.1:16666 上

iptables -t nat -A OUTPUT -p tcp ! -d 127.0.0.1 -m owner --uid-owner u0_aXX --dport 0:65535 -j DNAT --to-destination 127.0.0.1:16666

需要指定端口可以用 -m multiport --dports 80,443 這樣來限定一個或者多個端口

iptables -t nat -A OUTPUT -p tcp ! -d 127.0.0.1 -m owner --uid-owner u0_aXX -m multiport --dports 80,443 -j DNAT --to-destination 127.0.0.1:16666

 ④ 使用redsocks將流量轉發到正向代理(charles)

修改redsocks配置文件

 

修改配置文件redsocks.conf,內容如下:

base {

    log_debug = off;

    log_info = on;

    log = stderr;

    daemon = off;

    redirector = iptables;

}

 

redsocks {

    bind = "127.0.0.1:16666";

    relay = "代理主機地址:8889";

    type = socks5;

    autoproxy = 0;

    timeout = 13;

}

redsoks 里面,bind為透明代理地址及端口;relay為正向代理(charles)地址及端口,注意配置文件的每一對{}后面都應該有一個空行,否則會報錯;

將解壓文件夾里的 redsocks、redsocks.conf上傳到機器里面,並執行redsocks;使用如下命令

adb push redsocks /data/local/tmp/redsocks
adb push redsocks.conf /data/local/tmp/redsocks.conf
adb shell chmod +x /data/local/tmp/redsocks
adb shell chmod +x /data/local/tmp/redsocks.conf
adb shell
su
cd /data/local/tmp
./redsocks

⑤查看chales上的抓包結果,並通過charles的breakepoint 和 maplocal 功能,即可對接口請求,返回進行自定義配置

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM