获取和检测android的父进程(代码片段)

小道安全 小道安全     2022-12-17     446

关键词:

简介

每个App的用于程序都是通过父进程zygote进行fork出来的子进程,所以zygote也是所有app的父进程。
那么对于zygote进程可以用于检测判断app应该是否处于被调试状态。

检测父进程原理

有的时候不使用apk附加调试的方法进行逆向,而是写一个.out可执行文件直接加载so进行
调试,这样程序的父进程名和正常启动apk的父进程名是不一样的。

实验测试

1、正常启动的apk程序:父进程是zygote
2、调试启动的apk程序:在AS中用LLDB调试发现父进程还是zygote
3、附加调试的apk程序:父进程是zygote
4、vs远程调试 用可执行文件加载so:父进程名为gdbserver
实验结论:父进程名非zygote的,判定为调试状态

代码实现



int CheckApkParents()
  

// 设置buf 
 char strPpidCmdline[0x100]=0;
 snprintf(strPpidCmdline, sizeof(strPpidCmdline), "/proc/%d/cmdl ine", getppid()); 
 // 调用系统的open函数进行打开文件 
 int file=open(strPpidCmdline,O_RDONLY); if(file<0) 
  
     //打开失败,
     LOGA("CheckApkParents open错误!\\n");
     return -1;
 
 
 // 文件内容读入内存
 memset(strPpidCmdline,0,sizeof(strPpidCmdline)); 
 //调用系统read函数进行读内存操作
 ssize_t ret=read(file,strPpidCmdline,sizeof(strPpidCmdline));
 if(-1==ret) 
  
 //读取内存数据失败
     LOGA("CheckApkParents read错误!\\n");
     return -1; 
 
 // 没找到返回0
 char sRet=strstr(strPpidCmdline,"zygote"); 
 if(NULL==sRet)
  
 
 // 执行到这里,判定为调试状态 
     LOGA("父进程cmdline没有zygote子串!\\n");
     return 0; 
 

 return 1;
 
 

html获取嵌入式地图的父.widget-html的宽度和高度(代码片段)

查看详情

函数wait和waitpid(代码片段)

...止的信号是哪个,这个进程的父进程可以调用wait或waitpid获取这些信息,然后彻底清除这个进程,我们知道一个进程的退出状态可以在shell用特殊变量$?查看,因为shell是它的父进程,当它终止时shell调用wait或waitpid得到它的退出状... 查看详情

windows检测进程pid(代码片段)

...形式显示地址和端口号o显示关联的进程ID查看关联的进程检测有2018pid相关的程序tasklist|findstr2018进程过滤tasklist/fi"pideq2018"windows杀进程taskkill/imwininit.exe/ff强制示例:pi 查看详情

android检测获取mac权限--基于xposed的方法检测(代码片段)

Android获取敏感信息整改—基于Xposed的方法检测一、前言前段时间315针对获取敏感的隐私信息(MAC地址)第一次要求整改时,我们参考了网上的方案:使用Hook&反射去拦截可能存在的其他第三方调用。提交后审核... 查看详情

sh获取当前分支的父级(代码片段)

查看详情

android逆向修改运行中的android进程的内存数据(android命令行中获取要调试的应用进程的pid|进程注入调试进程内存的so库)(代码片段)

文章目录一、Android命令行中获取要调试的应用进程的PID二、进程注入调试进程内存的so库一、Android命令行中获取要调试的应用进程的PID前置博客【Android逆向】修改运行中的Android进程的内存数据(运行环境搭建Android模拟器安装|拷... 查看详情

行人检测和人脸检测和人脸关键点检测(c++/android源码)(代码片段)

...检测)和人脸检测和人脸关键点检测(C++/Android)目录又快又好,行人检测(人体检测)和人脸检测和人脸关键点检测(C++/Android)1.前言2.项目说明(1)数据集 查看详情

android启动流程浅谈(代码片段)

一、开机启动流程:Android系统启动是由BootLoader引导开机,然后依次进入kernel、Native、Framework、App。二、冷起进程创建流程:进程的创建,主要涉及到两个进程的通信system_server进程和Zygote进程:system_server进程&... 查看详情

android实现佩戴安全帽检测和识别(含训练代码+android源码+数据集)(代码片段)

 Android实现佩戴安全帽检测和识别(含训练代码+Android源码+数据集)目录 Android实现佩戴安全帽检测和识别(含训练代码+Android源码+数据集)1.前言2.佩戴安全帽检测和识别的方法(1)基于目标检测的佩戴安全帽识... 查看详情

android实现佩戴安全帽检测和识别(含训练代码+android源码+数据集)(代码片段)

 Android实现佩戴安全帽检测和识别(含训练代码+Android源码+数据集)目录 Android实现佩戴安全帽检测和识别(含训练代码+Android源码+数据集)1.前言2.佩戴安全帽检测和识别的方法(1)基于目标检测的佩戴安全帽识... 查看详情

android里的多进程和跨进程通讯方式(代码片段)

...次运行活动。它是操作系统动态执行的基本单元。IPC不是Android中所独有的,任何一个操作系统都需要有相应的IPC机制。在Android系统中一个进程会对应一个虚拟机实例,不同的虚拟机在内存分配上有不同的地址空间,... 查看详情

android签名验证与反调试机制的对抗技术(代码片段)

...2.6时间差异检测2.7内置函数检测2.8调试断点检测总结前言Android的APK文件为了防止被篡改和重打包,经常会做签名校验来保证自身完整性,当程序被篡改后将提示用户或者直接退出运行。同时有些 查看详情

又快又好,行人检测和人脸检测和人脸关键点检测(c++/android源码)(代码片段)

...检测)和人脸检测和人脸关键点检测(C++/Android)目录又快又好,行人检测(人体检测)和人脸检测和人脸关键点检测(C++/Android)1.前言2.项目说明(1)数据集 查看详情

android逆向android进程注入工具开发(so进程注入环境及root权限获取|进程注入时序分析)(代码片段)

...root权限后,才能调用ptrace相关函数;SO注入环境有两种情况,Android模拟器或真实手机;这里特别推荐使用雷电模拟器进行逆向操作,在真机上会出现各种问题;使用Android模拟器,如雷电模拟器,使用ld工具查看日志,查看日志命令为:ld.exel 查看详情

android手部检测和手势识别(含训练代码+android源码+手势识别数据集)(代码片段)

Android手部检测和手势识别(含训练代码+Android源码+手势识别数据集)目录Android实时手势动作识别(含训练代码++手势识别数据集)1.前言2.手势识别的方法(1)基于多目标检测的手势识别方法&#... 查看详情

android手部检测和手势识别(含训练代码+android源码+手势识别数据集)(代码片段)

Android手部检测和手势识别(含训练代码+Android源码+手势识别数据集)目录Android实时手势动作识别(含训练代码++手势识别数据集)1.前言2.手势识别的方法(1)基于多目标检测的手势识别方法&#... 查看详情

linux进程控制(精讲)(代码片段)

...区别与联系进程异常退出三、进程等待进程等待的必要性获取子进程status进程等待的方法wait方法waitpid方法多进程创建以及等待的代码模型基于非阻塞接口的轮询检测方案 查看详情

android实现手部检测和手势识别(含训练代码+android源码+手势识别数据集)(代码片段)

Android实现手部检测和手势识别(含训练代码+Android源码+手势识别数据集)目录Android实时手势动作识别(含训练代码++手势识别数据集)1.前言2.手势识别的方法(1)基于多目标检测的手势识别... 查看详情