首页
学习
活动
专区
圈层
工具
发布

关于父进程和子进程的关系(UAC 绕过思路)

假设是a进程创建了b进程,那么a进程就是b进程的父进程。...这对于一部分低端的木马具有提醒作用(注意这里说的是能够提示一般的 灰鸽子等变种,高端的木马会绕过这里,具体思路见后面),好了这里再回头说进程关系,这里先说一句关键的话:进程在创建进程时。...,假设我们利用一下该API,我们就能够将自己的进程的的父进程设置为随意进程(要提权绕过UAC的鸽子注意了),假设把木马进程的父进程设置为 杀软 的ID或者csrss.exe ,notepad.exe 等可信进程...的參数被设置为EXTENDED_STARTUPINFO_PRESENT, 这就是有扩展启动信息的结构体, 这里的IpStartupInfo參数须要填好STARTUPEX 结构,这个结构由STARTUOINFO结构和PROC_THREAD_ATTRIBUTE_LIST...所以说进程的父进程不一定是进程的创建者,所以那一群依据父进程来看进程是否可信的杀软就呵呵了。 可是这里说下 360 这个绕只是,原因是啥哪? 记得我开篇时说过道高一尺,魔高一丈吗?

2.5K30

探索父进程和子进程

: 通过getpid()得到的PID和ps指令获取的进程PID是一致的,都是5258 一个进程属性中,除了有自己的进程PID还有父进程PID,ps指令中查询到的PPID是当前进程的父进程的PID,可以是用函数...也就是说明,这里有两个程序在同时运行,即myprocess.exe进程和myprocess.exe进程创建的子进程,从而实现了fork函数创建子进程后,会从原来的一个执行流变成两个执行流。...**为什么说子进程和父进程的代码和数据是共享的?**刚刚谈到,子进程创建了属于自己的PCB对象,但是没有代码和数据,因此它只能使用父进程的代码和数据,也就是说父子进程的代码和数据是共享的。...因此fork函数之后程序执行了两次,本质上是父子进程各执行了一次。 创建子进程是为了执行和父进程不同的任务,但是父子进程共享一套代码,因此我们需要给父子进程加一区分,以便于让他们执行不同的任务。...父进程和子进程也是两个进程,也具有独立性,父子进程不能访问同一份数据,数据在代码执行过程中可能会被修改。所以子进程要把父进程的数据单独拷贝一份,这个过程是由操作系统来完成的。

2.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    关于进程的实验(子进程和父进程相关的)

    1.第一个问题 编写一段程序,利用系统调用fork( )创建两个进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。...让每一个进程在屏幕上显示一个字符:父进程显示字符“a”;子进程分别显示字符“b”和字符“c”。...下面的是源代码: 下面的是执行的结果:可以发现也是会出现不同的这个结果的,一次是bac也就是子进程1,父进程,子进程2的顺序,还有一个就是父进程,子进程1,子进程2的顺序; 3.第三个问题 如果在程序中使用系统调用...由于lockf函数的存在,每个子进程内部的输出是有序的,但两个子进程和父进程之间的输出顺序是不确定的,取决于操作系统的进程调度。...例如,可能先输出父进程的内容,然后是第一个子进程的内容,最后是第二个子进程的内容;也可能是其他顺序 。但每个子进程自身的 5 次循环输出是连续且有序的。

    85510

    操作系统关于进程的实验报告(父进程和子进程)

    1.第一个问题编写一段程序,利用系统调用fork( )创建两个进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。...让每一个进程在屏幕上显示一个字符:父进程显示字符“a”;子进程分别显示字符“b”和字符“c”。...下面的是源代码:下面的是执行的结果:可以发现也是会出现不同的这个结果的,一次是bac也就是子进程1,父进程,子进程2的顺序,还有一个就是父进程,子进程1,子进程2的顺序;3.第三个问题如果在程序中使用系统调用...操作系统-ckf函数的存在,每个子进程内部的输出是有序的,但两个子进程和父进程之间的输出顺序是不确定的,取决于操作系统的进程调度。...例如,可能先输出父进程的内容,然后是第一个子进程的内容,最后是第二个子进程的内容;也可能是其他顺序 。但每个子进程自身的 5 次循环输出是连续且有序的。-操作系统--

    78300

    Linux:进程概念(二.查看进程、父进程与子进程、进程状态详解)

    2.父进程与子进程 2.1介绍 在操作系统中,当一个进程(称为父进程)创建另一个新进程(称为子进程)时,父子进程之间建立了一种特殊的关系。...这种关系具有以下特点和行为: 父子关系: 子进程的父进程是创建它的进程,即父进程。 每个进程都有唯一的父进程。...PID关系: 子进程的PID(进程标识符)是由父进程调用fork()或类似系统调用创建的。 子进程的PPID(父进程标识符)与创建它的父进程的PID相同。...2.2getpid() \getppid() 父进程和子进程之间的关系是一个重要的概念,它们之间的关系可以通过系统调用来获取。...为了区分父进程和子进程,fork 在子进程中返回 0,表示这是子进程执行的代码路径。

    6.3K10

    父进程退出时如何确保子进程退出?

    前言 子进程退出的时候,父进程能够收到子进程退出的信号,便于管理,但是有时候又需要在父进程退出的时候,子进程也退出,该怎么办呢? 父进程退出时,子进程会如何?...一般情况下,父进程退出后,是不会通知子进程的,这个时候子进程会成为孤儿进程,最终被init进程收养。我们先来看一下这种情况。...另外还可以观察到,该进程也是其他系统进程的父进程。 如何确保父进程退出的同时,子进程也退出? 既然如此,如何确保父进程退出的同时,子进程也退出呢?...或许我们可以在子进程和父进程之间建立通信管道,一旦通信异常,则认为父进程退出,子进程自己也回收资源退出。但是这样做总觉得不是很正经。有没有已有的函数帮我们做这件事呢?prctl函数可以帮助我们。...总结 有些情况下,我们常常需要父子进程共存亡,子进程退出时,父进程可以通过wait捕捉子进程的退出状态,但是父进程退出时,子进程却难以得知。

    14.4K21

    如何在父进程中读取子(外部)进程的标准输出和标准错误输出结果

    它是我们启动子进程时,控制子进程启动方式的参数。...HANDLE hStdOutput; HANDLE hStdError; } STARTUPINFO, *LPSTARTUPINFO;        粗看该结构体,我们可以知道:我们可以通过它控制子窗口出现的位置和大小还有显示方式...我们之后将hWrite交给我们创建的子进程,让它去将信息写入管道。而我们父进程,则使用hRead去读取子进程写入管道的内容。...设置标准输出和标准错误输出句柄 si.hStdError = hWrite; // 把创建进程的标准错误输出重定向到管道输入 si.hStdOutput = hWrite...delete [] pBuffer; wprintf(L"%s", cstrBuffer); } return 0; }         这样,我们就可以拿到子进程输出结果并加以分析

    7.4K10

    Windows内核之进程的终止和子进程

    ,进程也会终止了,可是它不会告诉进程内相关联的DLL这个进程将要被终止。...进程的终止状态由STILL_ACTIVE变为了进程的返回代码 这个函数是异步的,它告诉操作系统,你要终止某个进程,可是当函数返回的时候,你无法保证进程是否已经被杀死,假设想要确切知道进程是否被杀死...2 进程终止时的情况 进程中全部剩余线程将被终止 进程中指定的用户对象,GDI对象被释放,内核对象被关闭 内核对象的状态编程收到通知的状态 进程的退出代码由STILL_ACTIVE...3 子进程 程序中要实现一段功能一共同拥有3种方法: 调用函数 开辟新线程 开辟新进程 3.1 调用函数 调用函数时很常见的,可是它的缺点是由于在同一个线程中...3.3 开辟子进程 这样有点是既能够保护数据,能够同步运行,也能够等待新进程运行完成再去运行其它进程的代码。缺点是开辟新进程,会造成地址空间的浪费。

    2.7K20

    父进程欺骗实践

    文章前言 监控父进程和子进程之间的关系是威胁检测团队检测恶意活动的常用技术,例如,如果powershell是子进程,而Microsoft Word是父进程,这是一种折中的行为,各种EDR可以很容易地检测到这种异常活动...,这时红队可以考虑使用父进程PID欺骗作为逃避方法,Windows API调用"CreateProcess"允许用户传入一个用于分配父PID的参数,它可以用于指定当前进程的父进程。...项目介绍 https://github.com/Al1ex/SelectMyParent image.png 进程欺骗 Step 1:选择父进程并确定其PID image.png Step 2:之后执行以下命令进行父进程欺骗...SelectMyParent.exe notepad 928 image.png Step 3:使用process Explor查看进程树,可以看到成功欺骗 image.png 参考链接 https

    2K20

    线程和进程的关系

    线程和进程的关系 在计算机世界中,线程和进程是构成程序运行基础的两个重要概念。想象一下,计算机系统是一家繁忙的餐厅,而进程和线程则分别是餐厅的厨房和厨师。...进程:餐厅的厨房 在这家餐厅里,每一个独立的厨房都可以看作是一个“进程”。每个厨房(进程)都有自己的设备和工具,比如烤箱、冰箱、炉灶等,这些对应于计算机中的进程拥有的独立内存空间和系统资源。...每个厨房都是独立运作的,它们之间互不干扰,即使一间厨房发生了火灾,其他厨房也可以继续烹饪,这就像一个进程崩溃了,不会影响到其他进程继续运行。...所有的厨师共享厨房里的设备和工具,他们协作完成各种菜肴的准备和烹饪工作。在计算机中,一个进程可以有多个线程,它们共享进程的内存空间和资源,但是每个线程执行自己的任务代码。...当一个进程结束时,它的所有线程也会随之终止。

    57610

    Nodejs子进程

    默认情况下, stdin、 stdout 和 stderr 的管道会在父 Node.js 进程和衍生的子进程之间建立,这些管道的容量是有限的。...child_process.fork(): 衍生新的 Node.js 进程,并调用指定的模块,该模块已建立了 IPC 通信通道,可以在父进程与子进程之间发送消息。...cluster cluster模块是基于child_process.fork方法创建的,它可以使用IPC和父进程进行通信。...process.pid} is running`) for( let i = 0; i < numsCPUS.length; i++) { cluster.fork() // fork出来的子进程拥有和父进程一致的...master进程创建一个socket,并绑定监听到该目标端口,通过与子进程之间建立IPC通道,调用子进程的send方法,将socket(链接句柄)传递给子进程,大致实现如下。

    2.1K20

    2.5.5 作业和进程的关系

    (1)批处理系统中作业与进程的关系(进程组织) 批处理系统中的可以通过磁记录设备或卡片机向系统提交批作业,由于系统的spooling输入进程将作业放在磁盘的输入井中,作为后备作业。...父进程在运行过程中可以动态地创建一个或多个子进程,执行说明书中的语句。例如,对一条编译的语句,该进程可以创建一个子进程执行编译程序对用户源程序进行编译。...类似地,子进程也可以继续创建子进程去完成指定的功能。因此,一个作业就动态地转化成了一组运行实体---进程族。...(2)分时系统中作业与进程的关系 在分时系统中,作业的提交方法,组织形式均与批处理作业有很大差异。分时系统的用户通过命令语言逐条与系统应答式地输入命令,提交作业步。...若当前的终端命令是一条后台命令,则可以和下一条终端命令并行处理。各子进程在运行过程中完全可以根据需要创建子孙进程。终端程序所对应的进程结束后,命令的功能也相应处理完毕。

    1.5K10

    进程和线程关系及区别

    一、定义 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。...线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。...二、关系 一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行。...但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。...四、优缺点 线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源的管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。

    2.5K70

    进程ID及进程间的关系

    根据进程的创建过程会有亲属关系,进程间的父子关系组织成一个进程树;根据用户登录活动会有会话和进程组关系。...亲属关系 进程通过 fork() 创建出一个子进程,就形成来父子关系,如果创建出多个子进程,那么这些子进程间属于兄弟关系。可以用 pstree 命令查看当前系统的进程树。...进程描述符 task_struct 的 parent 指向父进程,children指向子进程链表的头部,sibling 把当前进程插入到兄弟链表中。...当一个进程创建了子进程后,它应该通过系统调用 wait() 或者 waitpid() 等待子进程结束,回收子进程的资源。而子进程在结束时,会向它的父进程发送 SIGCHLD 信号。...在子进程退出且父进程完成回收前,子进程变成僵尸进程。僵尸进程持续的时间通常比较短,在父进程回收它的资源后就会消亡。如果父进程没有处理子进程的终止,那么子进程就会一直处于僵尸状态。

    2.4K23
    领券