# Android GDB调试中的“没有 TracerPid”问题 在进行Android应用的调试时,开发者经常会遇到“没有 TracerPid”的问题。这一问题在使用GDB(GNU Debugger)进行调试时尤为棘手。本文将探讨这一问题的原因、解决方案,并通过代码示例帮助大家更好地理解。 ## 什么是 TracerPid? 在Linux中,每个进程都有一个“TracerPid”,它用于表
原创 7月前
31阅读
id: 2549Pid: 2549PPid: 2527TracerPid: 0Uid: 0 0 0 0Gid: 0 0 ...
原创 2022-07-26 05:46:57
664阅读
一、目标 frida越来越流行,针对他的检测也越来越多了,什么特征串检测,TracerPid检测,
原创 2022-04-19 10:19:15
2105阅读
[root@localhost ~]# cat /proc/self/status Name: cat State: R (running) SleepAVG: 88% Tgid: 5783 Pid: 5783 PPid: 5742 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 256 Groups: 0 1 2 3 4 6
转载 精选 2011-03-15 20:47:44
834阅读
# pwd /proc/68 # cat status Name: nfsiod State: S (sleeping) Tgid: 68 Ngid: 0 Pid: 68 PPid: 2 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 64 Groups
转载 2020-08-18 19:43:00
264阅读
2评论
[root@localhost ~]# cat /proc/self/status Name: cat State: R (running) SleepAVG: 88% Tgid: 5783 Pid: 5783 PPid: 5742 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 256 Groups: 0 1 2 3 4 6 1
转载 精选 2012-07-20 19:02:12
3422阅读
获取指定进程的pidps w | grep "xxx"查看进程id:2357的内存使用情况cat /proc/2357/status查询结果:Name: celery State: S (sleeping) Tgid: 2357 Pid: 2357 PPid: 2353 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 64 Groups: VmPea
转载 2023-11-10 16:54:12
542阅读
/proc/ /status 包含了所有CPU活跃的信息,该文件中的所有值都是从系统启动开始累计到当前时刻。 [root@localhost ~]# cat /proc/self/status Name: cat State: R (running) SleepAVG: 88% Tgid: 5783 Pid: 5783 PPid: 5742 TracerPid: 0 Ui
转载 精选 2011-10-19 20:45:11
615阅读
先查出进程id,然后从下面命令行执行结果查看线程数:cat /proc/{进程id}/status得出结果:···Name: javaState: S (sleeping)Tgid: 9420Pid: 9420PPid: 1TracerPid: 0Uid: 0 0 0 0Gid: 0 0 0 0Utrace: 0FDSize: 256Groups: 0VmPeak: 3466204 kBVmSiz
为了躲避杀软了检测,病毒会使用各种骚气的手段来隐藏自身反调试反虚拟机 android java层常见的Android native反调试方法有以下几种。 1、直接调用ptrace(PTRACE_TRACEME, 0, 0, 0),参考Android Native反调试。 2、根据上面说的/proc/$pid/status中TracerPid行显示调试程序的pid的原理, 可以写一个方法检查下
转载 2023-07-01 19:58:50
133阅读
逆向修改手机内核,绕过反调试Android应用反调试里最常用的一种反调试方法是查看/proc/self/status的信息,如果TracerPid不为0,就判断为正在被调试。如果自己拥有内核源码,就可以自己编译生成zImage去替换内核就能正常运行了,但可惜的是,很多手机的内核都不开源,为此只能自己去逆向修改。一、  提取zImage内核文件在提取zImage前,必须确保自己拥
 第一、自己附加进程,先占坑,ptrace(PTRACE_TRACEME, 0, 0, 0)!通过查看进程状态中的tracerPid可以知道是否被调试了  cat /proc/pid/status第二、签名校验不可或缺的一个选择,本地校验和服务端校验双管齐下!全局搜索 sinature,注释掉第三、借助系统api判断应用调试状态和调试属性,最基础的防护!1.android.os
转载 2024-01-18 18:16:09
0阅读
4.反调试4.1 思路一(一个进程最多只能被一个进程ptrace)本文章主要针对安卓so反调试和最初的加壳方法进行了一下总结在处于调试状态时,Linux会向/proc/pid/status写入一些进程状态信息,比如TracerPid字段会写入调试进程的pid,因此我们可以自己ptrace自己,然后让android_server不能调试 代码如下:#include<sys/ptrace.h&g
转载 7月前
77阅读
反调试1.自己ptrace自己代码非常简单,在so中加上这行代码即可:ptrace(PTRACE_TRACEME, 0, 0, 0); 其中PTRACE_TRACEME代表:本进程被其父进程所跟踪。 一个进程只能被ptrace一次,通常在调试的时候都会attach被调试应用的进程,如果我们先占坑,父进程attach自己,那么其他的附加调试就会失败。2.检测Tracerpid的值在自己的应
反调试1.自己ptrace自己代码非常简单,在so中加上这行代码即可:1ptrace(PTRACE_TRACEME, 0, 0, 0);其中PTRACE_TRACEME代表:本进程被其父进程所跟踪。一个进程只能被ptrace一次,通常在调试的时候都会attach被调试应用的进程,如果我们先占坑,父进程attach自己,那么其他的附加调试就会失败。2.检测Tracerpid的值在自己的应用中的nat
在上文中,我们通过分析定位到sub_130C()这个函数有很大可能性是用来做反调试检测的,并且作者开了一个新的线程,并且用了一个while来不断执行sub_130C()这个函数,所以说我们每次手动的修改TracerPid实在是不现实。既然如此我们何不把sub_130C()这个函数给nop掉呢?为了防止nop出错,我们先在”F5”界面选择所有代码,然后用”Copy to assembly”功能,就可
转载 5月前
99阅读
Android Native反调试-检测TCP端口转: 之前转载了一篇文章介绍了两种反调试方式,分别是ptrace自身和查看TracerPid信息,文章地址:  这一处反调试是在调试某加固时遇到的,原理是查看当前所有的tcp连接,如果有<00000000:5D8A>就退出,也就是本地连接的23946端口(IDA的默认监听端口)。 当然,解决办法可以Path掉该处的反调试或者修