Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ElivenLZY/AndroidSafeCheck
APP过等保要用到的安全检测,支持调试检测/签名校验/Root检测/网络代理检测等,功能高度灵活可定制。
https://github.com/ElivenLZY/AndroidSafeCheck
Last synced: 21 days ago
JSON representation
APP过等保要用到的安全检测,支持调试检测/签名校验/Root检测/网络代理检测等,功能高度灵活可定制。
- Host: GitHub
- URL: https://github.com/ElivenLZY/AndroidSafeCheck
- Owner: ElivenLZY
- Created: 2020-11-10T10:35:55.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2021-06-03T05:57:54.000Z (over 3 years ago)
- Last Synced: 2024-08-05T17:36:20.990Z (4 months ago)
- Language: Java
- Size: 183 KB
- Stars: 72
- Watchers: 2
- Forks: 18
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-hacking-lists - ElivenLZY/AndroidSafeCheck - APP过等保要用到的安全检测,支持调试检测/签名校验/Root检测/网络代理检测等,功能高度灵活可定制。 (Java)
README
## Android SafeCheck
[![](https://jitpack.io/v/elivenlzy/androidsafecheck.svg)](https://jitpack.io/#elivenlzy/androidsafecheck)
这是一个Android的安全环境检测库,项目中接入该库可以提升APP的安全等级,可用于过等保时的安全扫描。
> 功能列表:
1. 防调试检测
2. 网络代理检测
3. Root检测
4. 模拟器检测
5. 正版签名检测
6. 界面劫持检测### 依赖
******1,在你的项目根目录的build.gradle添加仓库:**
```
allprojects {
repositories {
google()
jcenter()
maven { url 'https://jitpack.io' }
}
}
```**2,在mudule的build.gradle中添加依赖:**
```
dependencies {
implementation 'com.github.elivenlzy:androidsafecheck:0.0.2'
}
```### 使用
******一,一键快速集成,在APP启动页加上如下代码即可获得本库提供的默认的全部功能:**
```
TaskQueue taskQueue = new TaskQueue();
taskQueue.addTask(new DebugCheckTask(this));
taskQueue.addTask(new PageHackCheckTask(this));
taskQueue.addTask(new SignCheckTask(this, RIGHT_CER));
taskQueue.addTask(new RootCheckTask(this));
taskQueue.addTask(new SimulatorCheckTask(this));
taskQueue.addTask(new NetProxyCheckTask(this, false));
SafeCheckService.startCheck(taskQueue, new OnTaskListener() {
@Override
public void onStart() {
Log.d(TAG, "安全检查开始");
}@Override
public void onTaskEvent(ISafeCheck iSafeCheck, TaskEvent taskEvent) {
Log.d(TAG, "${taskEvent?.tag} isCheckPass is ${taskEvent?.isCheckPass}");
}@Override
public void onComplete() {
Log.d(TAG, "安全检查完成");
Toast.makeText(MainActivity.this, "安全检查完成", Toast.LENGTH_SHORT).show();
}
});
```**二,功能定制,基于上面的快速集成,最快只需两步:**
1. 新建一个task类,继承 AbstractCheckTask ,重写check方法,实现检测逻辑。
2. 将此task类添加到TaskQueue队列中即可**检测不通过的话,默认会弹出一个检测不通过的警告弹窗,如果需要自定义处理检测不通过的操作,有两种办法:**
1. 重写 AbstractCheckTask 中的 interruptCheck 方法
2. 在启动检查时传入的 OnTaskListener 的 OnTaskEvent 方法中,根据
taskEvent.result 和 taskEvent.tag
来判断处理不通过的task,然后根据处理结果来是否调用 iSafeCheck.check
方法继续执行后面的检查task### 功能介绍
---------**1. 防调试检测**
在应用启动时会启动一个定时任务,每1秒检查一次,持续检查5分钟;定时任务启动成功即认为该任务通过。
判定为被调试的几种触发条件:
* 非调试模式下debug标识为true
* 非调试模式下被外部调试器连接
* 本地的23946默认调试端口被占用
* 本地存在TracerPid的调试文件触发以上任何一种条件应用进程都会被强制杀掉
**2. 网络代理检测**
在应用启动时会检查一次当前网络是否被代理,如果被网络代理则检查失败,会弹窗阻塞后续任务执行。
开发者也可以在每次应用访问网络前都调用一次 Utils.isWifiProxy 方法执行一次检查。
**3. Root检测**
在应用启动时会检查一次当前设备是否被Root过,如果被Root,会弹窗阻塞后续任务执行。
**4. 模拟器检测**
在应用启动时会检查一次当前设备是否在模拟器上运行,如果是,会弹窗阻塞后续任务执行。
**5. 正版签名检测**
在应用启动时会检查一次当前应用的签名是否正版签名一致,如果不一致,会弹窗阻塞后续任务执行。
需要传入正版签名的sha1,可以使用命令:keytool -v -list -keystore
<签名文件路径> 来获取**6. 界面劫持检测**
在应用启动时会注册一个应用前后台状态的监听,如果应用最上层的页面没有在前台显示,会弹窗一个退到后台的提示;监听注册成功成功即认为该任务通过。