ADB入门之如何查看运行日志

[复制链接]
查看382 | 回复0 | 2026-6-25 15:38:53 | 显示全部楼层 |阅读模式

立即注册,突破游客限制,与技术大牛交流切磋,畅享海量资源,让你的技术之路不再孤单!

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 璇瑛 于 2026-6-25 15:43 编辑


首先下载Android SKD并且配置好环境变量
adb connect 127.0.0.1:16384
连接到手机/模拟器
一、确认adb连接
shell中输入:
adb devices
确认已adb已连接模拟器/手机

查看ADB连接

查看ADB连接


二、打印滚动日志
adb logcat -c && adb logcat *:E
清空日志缓存并打印滚动日志
日志等级
V 详细冗余 | D 调试 | I 普通信息 | W 警告 | E 错误 | F 致命崩溃 | S 屏蔽
*:E
  • *:匹配所有程序、所有系统进程的日志标签;
  • E:只展示级别 ≥ Error 的日志;
  • 会过滤V/D/I/W 这些等级的日志
  • 使用过滤固然方便,不过可能同时会漏掉一些环境检测信息等
adb logcat -d > crash.log
-d = dump,一次性导出当前所有日志,放在当前路径

三、分析日志3.1日志结构
这是一个日志示例:
06-25 14:12:07.923  1383  1678 E ActivityTaskManager: at com.android.server.wm...
  • 06-25 14:12:07.923:日志打印时间戳
  • 1383:PID 进程 ID,这里是安卓系统核心进程 system_server
  • 1678:TID 线程 ID,该进程下打印日志的子线程
  • E:日志等级 = Error 错误
  • ActivityTaskManager:Tag 日志标签,代表是哪个模块打印的这条日志
    • 只要 Tag 是 ActivityTaskManager、WindowManager、SurfaceFlinger、nemuinit、system_server 可以忽略,都是系统 / 模拟器底层日志;
    • 着重看AndroidRuntime 标签,这是应用日志(或可直接adb logcat AndroidRuntime:E *:S过滤查看);
  • 冒号后:日志正文 / 异常堆栈


日志信息

日志信息

(分析软件闪退,可以容易看到,日志的报错信息,是软件架构不兼容x86_64)
3.2 日志信息日志的作用:

  • 分析闪退根因
    UnsatisfiedLinkError :是架构不兼容,架构不同,so库中的方法也不同,native方法调用某个函数找不到本地实现,就会报错闪退,比如要逆向的软件没有 做x86_64架构适配,只有ARM64架构,(其实很多软件都不会专门做适配的),打开lib文件夹就知道嘞,只有arm64-v8a,armeabi-v7a这些,没有 x86_64/x86 文件夹,大概率是架构不兼容
    magisk、zygisk、su、xposed、emulator、x86、virtual :自动退出: System.exit() 、activity.finish() ,不打印崩溃信息,一般是有环境检测,出现环境检测,可以做环境隐藏或者直接尝试frida绕过。
  • 查看加密明文信息,有时候这是很有用的:
    • 请求 URL、请求参数、返回报文;
    • 明文设备指纹、加密盐值、签名 key、Token;
    • Retrofit/OkHttp 网络请求链路
    • 便利的找出我们想要的类名、方法名,之后方便使用jadx分析。
  • 分析加固壳隐藏
    • 某些加固的壳主动拦截崩溃堆栈,会导致AndroidRuntime无任何输出,日志空白。


这个人还没有签名
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文推荐
大神求
大神求
6 天前
热门排行