吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4559|回复: 31
收起左侧

[调试逆向] Windows父进程怎么判断是否是TOP进程

[复制链接]
DQQQQQ 发表于 2022-5-18 17:09

今天写一个东西时候,出现了三个进程,循环的构成父进程。就导致自己代码无限循环了。但是ProcessExplorer就可以判断TOP进程。
1233.png

那么他的判断机制是什么呢,百度谷歌都没有找到这个资料,没办法。逆向下ProcessExplorer,TOP 进程有个Not-existentprocess标志。

1233.png


X64dbg找到这个字符串标志下,断点。这里一堆的比较,没有搞懂他的作用,看起来像是从一个list里面,比较是否是相等的PID


1233.png
既然x64dbg看不出相应的信息。那就上IDA来分析

引用这个字符串的地方还挺多的
1233.png

都去F5查看函数构成。可以看到他在遍历一个全局的变量,来判断是否要添加Not-existent process标志
1233.png

去找SystemInformation变量的写入
1233.png

可以看出他根本没有利用什么特别的API遍历进程,也没有做特别的判断。为啥就可以判断TOP进程,注意上面有个GetSystemTimeAsFileTime,为什么要获取时间呢。难道是利用进程时间+父进程PID来判断TOP进程??我直接吧系统时间改小,然后建立一个进程.可以直接就变成了TOP进程了
1233.png
也许有其他办法,但是目前我就分析出了这一种方法。

免费评分

参与人数 15吾爱币 +19 热心值 +12 收起 理由
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
lookerJ + 1 + 1 谢谢@Thanks!
8382107 + 1 + 1 热心回复!
1MajorTom1 + 1 我很赞同!
wildbloom + 1 + 1 热心回复!
西瓜小刚 + 1 + 1 热心回复!
loo1221ool + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
唐小样儿 + 1 + 1 我很赞同!
努力加载中 + 1 + 1 热心回复!
lgc81034 + 1 谢谢@Thanks!
开心熊猫741 + 1 + 1 热心回复!
haolaogong + 1 我很赞同!
coder9527 + 1 + 1 热心回复!
mis落为 + 1 用心讨论,共获提升!
XXFFKK + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

tfrist 发表于 2022-5-20 03:08
ProcessExplorer,TOP 进程有个Not-existentprocess标志, 不是top进程吧。而是父进程已经关了 找不到了才有的提示。
IBinary 发表于 2022-5-18 19:06
ProcessHack代码是开源的,跟ProcessExplorer差不多。 而且如何判断父进程 使用进程快照,进程快照遍历出进程之后你可以看到它结构体里面有个字段,这个字段就是记录的父进程PID。 剩下的就是自己堆逻辑了。比如把遍历到的进程的父进程PID都存起来。再把遍历到的进程PID存起来。他俩就是一个映射关系。 可以用vectoy 或者list存起来。最后自己遍历list来看映射关系。
aonima 发表于 2022-5-18 19:31
yp17792351859 发表于 2022-5-18 20:26
top 进程 理论上没有父进程,需要进一步研究
haolaogong 发表于 2022-5-18 21:59
看了两趟还是看不明白!我比较笨吧!辛苦楼主了!
灵魂守卫 发表于 2022-5-18 22:46
不明觉厉,只会任务管理器
 楼主| DQQQQQ 发表于 2022-5-19 08:43
aonima 发表于 2022-5-18 19:31
直接查看父进程id就行了

看ID不行,你注意看上面,我写了。三个进程循环构成了父进程。a-->b  b--->c c-->a就变成了无限无限循环了。
 楼主| DQQQQQ 发表于 2022-5-19 08:44
IBinary 发表于 2022-5-18 19:06
ProcessHack代码是开源的,跟ProcessExplorer差不多。 而且如何判断父进程 使用进程快照,进程快照遍历出进 ...

你要形成进程树时候,就要判断TOP进程了。 a--->b  b--->c c--->a 就构成了循环了。会无法判断哪个是TOP层
 楼主| DQQQQQ 发表于 2022-5-19 08:45
haolaogong 发表于 2022-5-18 21:59
看了两趟还是看不明白!我比较笨吧!辛苦楼主了!

简单说,就是形成进程树时候。怎么判断哪个可以做根节点。
IBinary 发表于 2022-5-19 09:38
DQQQQQ 发表于 2022-5-19 08:44
你要形成进程树时候,就要判断TOP进程了。 a--->b  b--->c c--->a 就构成了循环了。会无法判断哪个是TOP ...

嗷嗷沈错题了。哈哈抱歉。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-23 15:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表