android动态调试防止,Android应用防止so注入防止动态调试参考代码
//非Debug 编译,反调试检测
if(!BuildConfig.DEBUG) {
if(isDebuggable()) {
exit(0);
}
Thread t = new Thread(new Runnable() {
@Override
public void run() {
while(true) {
try {
sleep(100);
if(Debug.isDebuggerConnected()) {
exit(0);
}
if(isUnderTraced()) {
exit(0);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}, "SafeGuardThread");
t.start();
}
if(isUnderTraced()) {
System.exit(0);
}
CrashReport.initCrashReport(getApplicationContext(), "4abcbaaf23", BuildConfig.DEBUG);
}
private boolean isUnderTraced() {
String processStatusFilePath = String.format(Locale.US, "/proc/%d/status", android.os.Process.myPid());
File procInfoFile = new File(processStatusFilePath);
try {
BufferedReader b = new BufferedReader(new FileReader(procInfoFile));
String readLine;
while ((readLine = b.readLine()) != null) {
if(readLine.contains("TracerPid")) {
String[] arrays = readLine.split(":");
if(arrays.length == 2) {
int tracerPid = Integer.parseInt(arrays[1].trim());
if(tracerPid != 0) {
return true;
}
}
}
}
b.close();
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
public boolean isDebuggable() {
return 0 != ( getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE );
}
android动态调试防止,Android应用防止so注入防止动态调试参考代码相关推荐
- 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 注入工具收尾操作 | 关闭注入的动态库 | 恢复寄存器 | 脱离远程调试附着 )
文章目录 一.dlclose 函数简介 二.关闭注入的 libbridge.so 动态库 三.恢复寄存器 四.脱离远程调试附着 一.dlclose 函数简介 dlclose 函数的作用是 卸载一个 指 ...
- Android逆向之旅---Android中分析抖音和火山小视频的数据请求加密协议(IDA动态调试SO)
一.前言 最近萌发了一个做app的念头,大致什么样的app先暂时不说,后面会详细介绍这个app的开发流程和架构,不过先要解决一些技术前提问题,技术问题就是需要分析解密当前短视频四小龙:抖音,火山,秒拍 ...
- 【Android 逆向】Android 进程代码注入原理 ( 注入本质 | 静态注入和动态注入 | 静态注入两种方式 | 修改动态库重打包 | 修改 /data/app/xx/libs 动态库 )
文章目录 一.注入本质 二.静态注入和动态注入 三.静态注入两种方式 ( 修改动态库重打包 | 修改 /data/app/packageName/libs/ 下的动态库 ) 一.注入本质 进程注入本质 ...
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )
文章目录 一.Android 命令行中获取要调试的应用进程的 PID 二.进程注入调试进程内存的 so 库 一.Android 命令行中获取要调试的应用进程的 PID 前置博客 [Android 逆向 ...
- 【Android FFMPEG 开发】Android Studio 工程配置 FFMPEG ( 动态库打包 | 头文件与函数库拷贝 | CMake 脚本配置 )
文章目录 I . FFMPEG 交叉编译后的函数库及头文件 II . FFMPEG 静态库打包动态库 ( 仅做参考 ) III . 创建 Android Studio 工程 IV . FFMPEG 头 ...
- android 动态录音权限,Android如何判断手机是否有录音权限的工具类
作用 判断手机是否有录音权限的工具类,兼容6.0以上以及以下android系统 测试环境 这篇文章是评论中的网友提出质疑后,经过重写修改与重写测试后编写的,我的调试环境是小米note3,Android ...
- vs2015 linux jni,使用Visual C++ 跨平台移动技术调试JNI Android 应用程序
使用Visual C++ 跨平台移动技术调试JNI Android 应用程序 02/05/2015 6 分钟可看完 本文内容 [原文发表时间] 2014/12/12 4:22PM 之前我们已经介绍了 ...
- Android开发周报:Android Studio2.0发布、Activity动态创建
新闻 <Android Studio 2.0发布 增加代码热更新功能>:在近日的Android开发者大会中,Google高调发布了Android Studio 2.0.然而就在不到一周之前 ...
- android的反调试方法,Android平台融合多特征的APP反调试方法与流程
本发明涉及Android平台融合多特征的APP反调试方法,属于计算机与信息科学技术领域. 背景技术: 应用程序本身并不具备反调试的功能,但是动态调试是动态分析应用逻辑.动态脱壳等攻击方式所采取的必要手 ...
- android+反调试+方案,Android反调试笔记
1)代码执行时间检测 通过取系统时间,检测关键代码执行耗时,检测单步调试,类似函数有:time,gettimeofday,clock_gettime. 也可以直接使用汇编指令RDTSC读取,但测试AR ...
最新文章
- java跳转语句包含goto_Java 语句标签实现goto跳转
- 我在OSC的第一篇博文
- CentOs7中安装sonarQube服务系列------3.安装SonarQube服务器
- 蚌埠粮食经济技师学院计算机,安徽粮食经济技师学院2020年有哪些专业
- python笔试常见题
- 前端学习(130):HTML和CSS发展历史
- 第十章触发器的创建与管理
- xshell与xftp如何实现相互连接
- EncryptionHelper.cs(20170223)
- excite-punastranvirtual.lab振动噪声仿真
- 【测试】禅道搭建在服务器上的操作步骤
- 剑指offer面试题[17]-合并两个排序的链表
- SpringBoot启动流程原理+自动装配原理
- java libtorrent_基于libtorrent最简单的BT下载程序 | 学步园
- 10000个怎么用js写 创建li_JavaScript给每一个li节点绑定点击事件的实现方法
- Autovue 21.0.2.4 发布
- 将查询好的快递单号以及物流导出EXCEL表格
- 同步、异步 阻塞、非阻塞
- 马上加薪!测试,你的职业发展...
- 俩人同样写代码,我拿七千他咋五万八...(文末送书)
热门文章
- CROC-MBTU 2012, Elimination Round (ACM-ICPC) E. Mishap in Club
- Android SDK Manager无法显示可供下载的未安装SDK解决方案
- 【干货】2021年技术趋势:全球企业加速数字化转型-德勤.pdf(附下载链接)
- 原生xgboost与sklearn里的xgboost
- 数据挖掘之CTR预估(FM算法)
- 搜索推荐广告中的Position Bias:美团DPIN
- 一个模型搞定多个CTR业务!阿里STAR网络介绍(附代码实现)
- android+程序崩溃,Android平台程序崩溃的类型及原因列举
- 面试pythone_叮!你需要的Python面试指南以送到!
- matlab求递归问题,matlab利用递归求解差分方程