# errjava **Repository Path**: chifanxiaofendui/errjava ## Basic Information - **Project Name**: errjava - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-30 - **Last Updated**: 2025-06-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BugBye BCA (Byte Code Analyzer) ## 介绍 BugBye BCA 是一款基于字节码分析的 Java 代码缺陷检测工具,专注于发现安全漏洞、代码质量问题及 Android 开发规范问题。通过静态分析技术,帮助开发者在编译期识别潜在风险,提升代码健壮性。 --- ## 主要功能 ### 安全检测 - **注入攻击**:SQL 注入、LDAP 注入、XPATH 注入、OGNL 注入等 - **反序列化漏洞**:检测不安全的反序列化操作 - **敏感信息泄露**:日志伪造、响应截断等 - **权限控制**:ContentProvider 权限校验缺失 ### 代码质量 - **空指针异常**:Null Dereference、Return Null Invocation - **资源管理**:未关闭的 Closeable 对象、大资源泄漏 - **并发问题**:ConcurrentModification、线程安全单例 - **异常处理**:未使用的异常捕获、异常吞没 ### Android 特定 - **组件注册**:Activity/Fragment 生命周期规范 - **视图注入**:View ID 重复使用、ListView 头部添加规范 - **存储安全**:SDCard 挂载权限检测 - **性能优化**:过度绘制、布局层级过深 --- ## 安装教程 ### 基本要求 - Java 1.8+ - Maven 3.0+ 或 Gradle 6.0+ - Android SDK(针对 Android 项目) ### 安装方式 1. **Maven 依赖** ```xml com.baidu.bugbye bca-core 1.0.0 ``` 2. **Gradle 集成** ```groovy implementation 'com.baidu.bugbye:bca-core:1.0.0' ``` 3. **IDE 插件**(可选) 通过 [IntelliJ IDEA 插件市场](https://plugins.jetbrains.com/) 安装 BugBye BCA 插件 --- ## 使用说明 ### 基本使用 ```bash # 分析指定 class 文件 java -jar bugbye-bca.jar -target /path/to/classes -rule sql_injection # 生成 HTML 报告 java -jar bugbye-bca.jar -target app-release.apk -format html -output report/ ``` ### 自定义规则 1. 继承 `BaseRule` 实现自定义检测逻辑 ```java public class MyCustomRule extends BaseRule { @Override public void visit(MethodInsnNode minsn) { // 实现字节码匹配逻辑 } } ``` 2. 配置规则启用文件 `rules.config`: ``` +com.example.MyCustomRule -com.baidu.bugbye.rule.SqlInjection ``` ### 集成到构建工具 #### Maven 集成 ```xml com.baidu.bugbye bca-maven-plugin analyze ``` #### Gradle 集成 ```groovy apply plugin: 'com.baidu.bugbye.bca' bca { enable = true failOnError = true ruleSets = ['security', 'android'] } ``` --- ## 参与贡献 1. Fork 仓库并创建功能分支 2. 提交符合 Checkstyle 规范的代码 3. 编写单元测试(参考 `test/` 目录) 4. 提交 PR 并描述变更内容 --- ## 许可证 本项目采用 Apache-2.0 许可证,详情见 [LICENSE](LICENSE) 文件。 --- ## 示例代码 ```java // 示例:检测 SQL 注入漏洞 public class SqlDemo { public void badQuery(String input) { Statement stmt = connection.createStatement(); stmt.executeQuery("SELECT * FROM users WHERE name = '" + input + "'"); // BugBye 会标记此行为危险模式 } } ``` --- ## 支持 - **Issue 跟踪**: [GitHub Issues](https://github.com/baidu/bugbye/issues) - **社区讨论**: [Gitter 聊天室](https://gitter.im/bugbye/community) - **商业支持**: contact@bugbye.com