Android使用Charles sniffers network traffic

  1. 背景
    HTTPS通讯是加密的, 因此需要Man In The Middle attack. 也就是需要在通讯中加上Charles作为代理. 这样需要客户端授权Charles SSL证书.
    在Android 7.0+(API 24)的设备上, APP不再信任user or admin-added CAs, 详见此网页, 因此需要将证书安装到system CA中.
  2. 安装并破解Charles
    Charles官网
    破解工具
    或者直接使用serial keys:
    Name:TEAM MESMERiZE
    Serial:FC91D362FB19D6E6CF
    
    Name:CRACKSurl
    Serial:1959D66D1AAC0C6EA2
    
    Name:Charles
    Serial:EBD457553EFAF1BBAC
    
    Name:cracksurl.com
    Serial:3FE40E97FCA9E9697A
    
  3. 设置代理
    1. server
      Charles->Proxy->Proxy Settings
      代理
      不检测Windows的流量情况.
      Windows不用代理
    2. client
      Charles打开代理后(Proxy->Windows Proxy被选中), 在手机WiFi界面设置代理. 如果不知道的话看Help->SSL Proxying->Install Charles Certificate on a Mobile Device弹出的提示.
      Charles提示
      手机设置代理
  4. 安装证书
    1. server(据说可以省略)
      Help->SSL Proxying->Install Charles Certificate一路下一步.
    2. client安装根目录证书(参考1, 2)
      1. 先通过Help->SSL Proxying->Save Charles Root Certificate…下载cert.pem文件.
      2. 再用命令(需要bash.exe)
        CERT_ID="$(openssl x509 -inform PEM -subject_hash_old -in cert.pem | head -1).0"
        echo CERT_ID=$CERT_ID
        cat cert.pem > $CERT_ID
        openssl x509 -inform PEM -text -in cert.pem -out /dev/null >> $CERT_ID
        
        我好像第三条命令没有运行貌似也能work. 然后再把文件拷到相应目录并修改权限.
        adb root
        adb remount
        adb push $CERT_ID /system/etc/security/cacerts/
        chmod 644 /system/etc/security/cacerts/$CERT_ID
        
      3. 或者Help->SSL Proxing->Install Charles Root Certificate on a Mobile Device or Remote Browser, 下载downloadfile.crt后在手机的设置→安全→更多安全设置→加密与凭据→安装证书→CA证书中安装证书
  5. Charles设置SSL捕获
    在Proxy -> SSL Proxying Settings…添加*.*
    SSL capture
  6. 大功告成., 开始capture
  7. Possible Problems
    1. 启动软件时提示Failed to bind proxy port 8888: Address already in use: JVM_Bind.
      按照建议, 在CMD输入命令netstat -aon | findstr "8888", 最后一列为进程ID(23956), tasklist | findstr "23956"即可得到占有端口的进程.
    2. 手机无法联网
      在Windows上, 高级安全Windows Defender防火墙(cmd→wf.msc)中添加入站规则: Charles Web Debugging Proxy, 公用, 允许连接, UDP和TCP.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
逆向工程是指通过分析已有的软件或系统,了解其内部结构、工作原理和设计思路的过程。对于使用 node.js 开发的应用程序,逆向工程的方法与其他编程语言的应用程序类似。 下面是一些常见的逆向工程技术和工具,可用于分析和理解 node.js 应用程序的内部结构: 1. 反编译器(Decompiler):反编译器可以将已编译的二进制代码转换回源代码。对于 node.js 应用程序,可以使用适用于特定平台和二进制格式的反编译器来获取源代码。 2. 调试器(Debugger):调试器可以帮助开发人员在运行时跟踪和调试代码。在 node.js 中,可以使用内置的调试器或第三方调试器工具来分析应用程序的执行过程,观察变量值和函数调用等信息。 3. 反汇编器(Disassembler):反汇编器可以将机器码转换为汇编代码。对于 node.js 应用程序,可以使用适用于特定平台和二进制格式的反汇编器来分析应用程序的执行流程和指令序列。 4. 静态分析工具:静态分析工具可以通过分析源代码或二进制代码,提供关于应用程序结构、依赖关系和代码逻辑的信息。对于 node.js 应用程序,可以使用静态分析工具来识别函数调用、代码路径和数据流等。 5. 抓包工具(Packet Sniffers):抓包工具可以捕获应用程序与其他系统之间的网络通信数据。通过分析抓包数据,可以了解应用程序与外部系统之间的交互方式和数据格式。 请注意,逆向工程必须遵守法律和道德规范。在进行逆向工程之前,请确保您有合法的权限,并且遵守适用的法律和条例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值