文章总结: 本文介绍一款专为Android逆向设计的Xposed模块日志查看器,支持UDP实时接收、WebSocket推送、多级过滤和敏感数据检测。项目采用Python开发,提供完整部署指南和Xposed模块集成代码,具备SQLite数据存储和响应式Web界面。文档包含详细的功能演示、环境配置和实用技巧,适用于安全研究人员进行移动应用逆向分析。 综合评分: 85 文章分类: 移动安全,安全工具,逆向分析,WEB安全,安全开发
Android逆向 | Xposed日志查看器
原创
辰星安全实验室 辰星安全实验室
安全老辰sec
2025年6月16日 08:01 江苏
在小说阅读器读本章
去阅读
| | | — | | 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。 工具来自网络,安全性自测,如有侵权请联系删除。本次测试仅供学习交流使用,如若非法他用,与平台和本文作者无关,需自行负责! |
建议大家把辰星安全“设为星标”,因为公众号现在只对常读和星标的公众号才能展示大图推送,否则可能就看不到了啦!
0x01 项目介绍
一个现代化的Xposed模块日志实时查看器,采用大厂设计风格,支持UDP日志接收、WebSocket实时推送、多级过滤和搜索功能。专为Android逆向工程师和安全研究人员设计。
0x02 主要功能
✨ 功能特性
🚀 核心功能
-
📡 实时日志监控
-
UDP服务器接收Xposed模块日志,支持多客户端同时连接
-
⚡ WebSocket推送
-
浏览器实时显示新日志,无需刷新页面
-
🎯 智能分级
-
自动识别INFO/WARN/ERROR/DEBUG级别,支持自定义标签
-
🔍 多维过滤
-
按级别、关键词、时间范围、来源IP过滤
-
🔒 敏感数据检测
-
自动识别手机号、Token、OpenID等敏感信息并高亮
-
💾 数据持久化
-
SQLite数据库存储,支持历史查询和数据导出
🎨 界面设计
-
🏢 大厂设计风格
-
参考蚂蚁金服/阿里云设计语言,简洁专业
-
📱 响应式布局
-
完美适配桌面和移动端设备
-
📊 实时统计
-
日志数量、连接状态、缓冲区监控一目了然
-
🌙 护眼体验
-
优化的代码查看界面,长时间使用不疲劳
🔧 技术特性
⚡ 高性能
-
⚡ 高性能
-
异步处理架构,轻松处理大量日志数据
-
🔗 多客户端
-
支持多个Xposed模块同时连接,互不干扰
-
🛡️ 容错处理
-
网络异常自动重连,数据不丢失
-
🧠 内存优化
-
智能缓冲区管理,避免内存溢出
0x03 功能演示
🖥️ 主控制台
📋 环境要求
Python 3.7+ (推荐3.8+)操作系统: Windows/Linux/macOS内存: 建议512MB以上可用内存网络: UDP端口9999和HTTP端口5000浏览器: Chrome/Firefox/Safari/Edge
⚡ 一键启动
- 下载项目
git clone https://github.com/cncsnet1/xposed_log_viewer.gitcd xposed_log_viewer
- 安装依赖
pip install -r requirements.txt
- 启动服务
python app.pypython udp_server.py
- 访问控制台
Web控制台: http://localhost:5000UDP日志端口: 9999
🎯 Windows用户快速启动
# 进入项目目录cd xposed_log_viewer
# 启动服务python start.py
启动成功后会看到:
🚀 启动Xposed日志查看器...📡 UDP服务器启动: 端口 9999🌐 Web服务器启动: http://localhost:5000✅ 所有服务已启动,按Ctrl+C停止
Xposed模块集成
只需要在你的Xposed模块中添加以下代码,即可将日志发送到查看器:
Java版本 (推荐)
import java.net.DatagramSocket;import java.net.DatagramPacket;import java.net.InetAddress;
public class LogSender { private static final String LOG_SERVER_IP = "192.168.1.100"; // 修改为你的电脑IP private static final int LOG_SERVER_PORT = 9999;
/** * 发送日志到查看器 * @param tag 日志标签 (如: "IM应用Hook", "支付应用Hook") * @param message 日志内容 */ public static void sendLog(String tag, String message) { try { String logContent = tag + ": " + message; DatagramSocket socket = new DatagramSocket();
byte[] data = logContent.getBytes("UTF-8"); DatagramPacket packet = new DatagramPacket( data, data.length, InetAddress.getByName(LOG_SERVER_IP), LOG_SERVER_PORT );
socket.send(packet); socket.close();
} catch (Exception e) { XposedBridge.log("发送日志失败: " + e.getMessage()); } }
// 使用示例 public void hookExample() { findAndHookMethod("com.example.app.ui.LauncherUI", "onCreate", new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { sendLog("IM应用Hook", "LauncherUI创建成功"); } }); }}
Kotlin版本
object LogSender { private const val LOG_SERVER_IP = "192.168.1.100" // 修改为你的电脑IP private const val LOG_SERVER_PORT = 9999
fun sendLog(tag: String, message: String) { try { val socket = DatagramSocket() val data = "$tag: $message".toByteArray(Charsets.UTF_8) val packet = DatagramPacket( data, data.size, InetAddress.getByName(LOG_SERVER_IP), LOG_SERVER_PORT ) socket.send(packet) socket.close() } catch (e: Exception) { XposedBridge.log("发送日志失败: ${e.message}") } }}
💡 使用技巧
1.项目下载
Windows: 运行 ipconfig 查看IPv4地址确保手机和电脑在同一WiFi网络下
2.日志分析建议
sendLog("IM应用Hook", "info: 用户登录成功"); // 普通信息sendLog("IM应用Hook", "warning: 检测到风控"); // 警告信息 sendLog("IM应用Hook", "error: Hook失败"); // 错误信息sendLog("IM应用Hook", "debug: 参数值=" + param); // 调试信息
3.铭感数据处理
// 系统会自动检测并高亮显示敏感数据sendLog("支付应用", "获取到手机号: 138****8888");sendLog("登录模块", "Token: eyJhbGciOiJIUzI1NiIs...");
⚙️ 配置说明
🔧 服务器配置
如需修改端口或其他设置,编辑 config.py 文件:
# 服务器配置WEB_HOST = '0.0.0.0' # Web服务器地址 (0.0.0.0表示允许外部访问)WEB_PORT = 5000 # Web服务器端口UDP_HOST = '0.0.0.0' # UDP服务器地址 UDP_PORT = 9999 # UDP服务器端口 (Xposed模块发送日志的端口)
# 数据库配置DATABASE_PATH = 'logs.db' # SQLite数据库文件路径MAX_LOGS = 10000 # 最大日志存储数量 (超出会自动清理旧日志)
# 缓冲区配置BUFFER_SIZE = 1000 # 内存缓冲区大小
📝 支持的日志格式
系统智能识别多种日志格式,推荐使用纯文本格式:
1.纯文本格式(推荐)
IM应用Hook: 用户登录成功支付应用Hook: error: 获取支付密码失败短视频应用Hook: warning: 检测到反调试
2.带级别的文本格式
INFO: IM应用启动完成ERROR: Hook注入失败WARNING: 发现敏感API调用DEBUG: 参数值 userId=12345
3.JSON格式(高级用法)
{ "level": "INFO", "tag": "IM应用Hook", "message": "用户登录成功", "timestamp": "2024-01-01T12:00:00"}
💡 智能识别: 系统会自动从日志内容中识别级别关键词 (info/error/warning/debug) 并进行分类标记
🛠️ 项目结构
xposed_log_viewer/├── 📄 app.py # Flask主应用 (Web服务器)├── 📡 udp_server.py # UDP服务器 (接收日志)├── 🚀 start.py # 一键启动脚本├── ⚙️ config.py # 配置文件├── 📋 requirements.txt # Python依赖包├── 🎨 templates/│ └── index.html # 主界面模板├── 💾 logs.db # SQLite数据库 (自动创建)├── 📜 README.md # 项目说明文档└── 📄 LICENSE # MIT开源协议
🎯 专为Android逆向工程师打造的专业日志查看工具
如果这个项目对你的逆向分析工作有帮助,欢迎⭐️Star支持!
项目地址:
https://github.com/cncsnet1/xposed_log_viewer/blob/main/
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:安全老辰sec 辰星安全实验室 辰星安全实验室《Android逆向 | Xposed日志查看器》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论