Skip to content

Log.getStackTraceString ​

📚 Android 抓 Java 调用栈的标准方法。

用法 ​

javascript
var stack = Java.use("android.util.Log")
  .getStackTraceString(Java.use("java.lang.Throwable").$new());
  • new Throwable():创建异常对象(捕获当前栈)
  • Log.getStackTraceString(throwable):把栈转成字符串

r0capture 的使用 ​

hook 点用途
客户端证书导出记录谁在取私钥
Pinning 定位记录谁在校验证书
裸 TCP send/recv记录谁在发包/收包
Conscrypt SSL 流抓栈供 Native SSL hook 用
javascript
message["stack"] = Java.use("android.util.Log")
  .getStackTraceString(Java.use("java.lang.Throwable").$new()).toString();

栈字符串示例 ​

at com.android.org.conscrypt.ConscryptFileDescriptorSocket$SSLOutputStream.write(...)
at com.android.okhttp.internal.http.Http1ExchangeCodec.writeRequestHeaders(...)
at com.app.api.ApiService.post(ApiService.java:42)
at com.app.ui.MainActivity.onClick(MainActivity.java:120)

教学价值 ​

栈是定位收发包函数的关键——SSLstackwrite/SSLstackread 把栈暂存,Native SSL_write/SSL_read hook 再带进 message 回传 Python。详见 收发包函数定位。

相关文档 ​

基于 VitePress 构建 · 教学用途