安卓逆向_20 --- 模拟器检测、反调试检测、ELF动态调试、__libc_init 下断
From( 模拟器检测实战分析 ):https://www.bilibili.com/video/BV1UE411A7rW?p=65
怎样过 app 的模拟器检测:https://bbs.pediy.com/thread-249759.htm
Android 模拟器如何不被检测思路:https://bbs.pediy.com/thread-227050.htm
Android 模拟器检测常用方法:https://blog.csdn.net/sinat_33150417/article/details/51320228
如何判断 Android 设备是真机还是模拟器?:https://www.zhihu.com/question/21355176/answer/272069337
检测 Android 模拟器的方法和代码实现:https://blog.csdn.net/earbao/article/details/82746605
一行代码帮你检测Android模拟器(更新至1.1.0):https://www.jianshu.com/p/434b3075b5dd
过 apk 模拟器检测,关于特定模拟器检测蓝叠模拟器:https://www.52pojie.cn/thread-1039699-1-1.html
android-模拟器检测方法:https://www.jianshu.com/p/ec99371f00ed
模拟器检测
使用 AndroidStudio 动态调试 smali 代码 查找 检测模拟器 代码
在 入口点、入口页面 看下 ,分析有没有模拟器检测。。。
使用 AndroidStudio 动态调试 smali 代码 查找 检测模拟器 代码:https://www.bilibili.com/video/BV1UE411A7rW?p=65
反调试检测手段
( 其实有好多种检测,这里只列举了:关键文件检测、端口检测、进程名检测 来进行简单说明。。。)
IDA Pro 动态调试,分析检测( 这里分析的是 " 可执行文件 ",不是 so 库 )
1. 关键文件检测( 例如:android_server 文件检测 ):https://www.bilibili.com/video/BV1UE411A7rW?p=66
libc_init
相关端口检测,例如 23946
进程名称检测
2. 动态轮询检测( 使用 ptrace ):https://www.bilibili.com/video/BV1UE411A7rW?p=67
libc_init 下断点
源码:
trackpid ( cat /proc/进程id/status 、cat /proc/进程id/cmdline )
动态调试 进程名称 检测( 调试 可执行程序 【不是 apk】 )
Android反调试方法总结以及源码实现之检测篇(一):https://blog.csdn.net/feibabeibei_beibei/article/details/60956307
安卓常见的反调试与对抗方案:https://www.52pojie.cn/thread-709669-1-1.html
视频地址( 动态调试 ELF ):https://www.bilibili.com/video/BV1UE411A7rW?p=68
安卓 反调试
可执行文件源码( 编译成可执行文件之后,adb push 传到 手机上执行,然后 动态调试进程 ):
上传可执行文件到手机,并运行程序:
运行 android_servers
端口转发( 在打开一个 cmd 窗口,运行 端口转发命令 ):
执行转发命令
使用 IDA Pro 调试
注意:
- 调试 可执行程序 是 Debugger ---> run
- 调试 so 是 Debugger ---> attach
调试可执行程序:
填写可执行文件路径、IP、和 端口号
点击 OK 之后,会挂起程序,然后勾选 三项
因为是从 libc.so 加载的,所以直接点击是跳转不过来的,如图所示:
点击运行加载 libc.so
点击进入 libc.so ,然后再 libc.so 里面搜索 libc,找到 libc_init,点进去,下断点
然后再点击 "运行",让程序运行到断点处。。。
可执行文件 的 导出函数 只有一个 main,点击去,可以找到 __libc_init ,这个函数有 4 个参数,这4个是固定的
但是怎么找一个可执行文件一开始执行的地方,其实就是 __libc_init 的第 3 个参数,
即 R2 ,指向 main 函数,即就是程序的入口点。。。
分析 main 函数即可看到 检测逻辑代码
libc_init 下断点
libc_init 下断点:https://www.bilibili.com/video/BV1UE411A7rW?p=65
安卓逆向_20 --- 模拟器检测、反调试检测、ELF动态调试、__libc_init 下断相关推荐
- 安卓逆向之模拟器检测
很久没更新,给大家来一个过模拟器方面的讲解 有问题可+v:13140310004 最近疫情又严重了,大家注意防范 简单介绍模拟检测的原理 模拟器检测,顾名思义,软件.手游等不能运行在模拟器上面. 灰黑 ...
- 安卓逆向_21 --- Java层和so层的反调试( IDA 动态调试 JNI_OnLoad、init_array下断)
1. 安卓程序动态调试条件 安卓程序动态调试条件 ( 2个满足1个即可 ): 1. 在 AndroidMainfest.xml ---> application 标签下,设置或者添加属性 and ...
- 安卓逆向环境检测--模拟器
一.通过 android/os/Build 类检测虚拟机 UNEXPORT bool AntiEmulator::check_Build(JNIEnv *env) {char* sig = " ...
- 安卓逆向——雷电模拟器安卓安装Xposed问题
环境: 模拟器:雷电 4.0.43版本 安卓版本:7.1.2 x86 Xposed :4.0 以上 直接安装 Xposed 会,提示这类错误(这里测试版本有误,安卓5 重启会卡死) ...
- android 动态调试app,Android动态调试
0x00 起因 最近想了解下移动端app是如何与服务端进行交互的,就顺手下了一个某app抓下http包.谁知抓下来的http居然都长这个模样: POST /ca?qrt=***Login HTTP/1 ...
- js逆向、安卓逆向教程
JS基础 提示信息 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn 安卓逆向 1.模拟器环境搭建 Magisk 是一套用于定制 Android 的开源软件,支 ...
- 一道Android题目逆向动态调试
题目来源于海淀区网络与信息安全管理员大赛,题目中将加密验证算法打包进.so,在程序中动态调用check. 本题目通过System.loadLibrary("native-lib") ...
- 从0-1 - 一道Android题目逆向动态调试
题目来源于海淀区网络与信息安全管理员大赛,题目中将加密验证算法打包进.so,在程序中动态调用check. 本题目通过System.loadLibrary("native-lib") ...
- Android逆向之旅---破解某应用加密算法(动态调试so和frida hook so代码)
一.样本静态分析 最近有位同学发了一个样本给我,主要是有一个解密方法,把字符串加密了,加解密方法都放在so中,所以之前也没怎么去给大家介绍arm指令和解密算法等知识,正好借助这个样本给大家介绍一些so ...
最新文章
- C#进阶系列——动态Lamada
- 每秒递减的方波扫频信号怎么生成_逆变器是怎么工作的?
- linux 软件包的安装
- Java easycms 版本2.0发布
- boost::owner_equal_to相关的测试程序
- php 登录重定向,PHP登录后重定向
- 目标检测算法之Fast R-CNN算法详解
- 转:智能音箱市场深度报告:怎么大家都在抢这个两亿小蛋糕?
- CSS精粹之布局技巧
- C++中公有继承、保护继承、私有继承
- SQL实战之查找所有员工入职时候的薪水情况
- Java调用db2cmd命令导出数据
- nginx之反向代理配置
- Windows2003 Server下尝试360安全卫士6.0
- /proc/sysrq-trigger的使用
- office2007过期后没有输入序列号对话框的激活方法
- Barcode模块管理条码扫描识别
- 有对象的程序猿都是怎么写代码的
- matlab如何调整顺时针逆时针,关于算法:确定线段的方向是顺时针还是逆时针
- flacs 安装教程_002.Nginx安装及启动
热门文章
- 最全MySQL面试60题和答案
- 一篇文章了解架构设计的本质
- 论文浅尝 | 从知识图谱流中学习时序规则
- 专家:人工智能开始对现实世界产生重大影响​​
- 推荐几个练习听力不错的国外网站
- JAVA面试——计算机网络
- 计蒜客 28437.Big brother said the calculation-线段树+二分-当前第k个位置的数 ( ACM训练联盟周赛 M)...
- [模板]洛谷T3379 最近公共祖先(LCA) 倍增+邻接表
- 3.1. _3. 覆盖与交换
- linux的基础知识——TCP异常断开