展开

关键词

进程

NTSTATUS值就可以杀死一个进程,但是这里又有一个问题,如果我们想利用这个函数去kill掉一个软,那么软就直接让我们宰割吗,当然不会。 我们能知道这个内核的函数,那么软肯定也知道,所以在ring0层面下,软将这个内核函数hook掉,如果发现有调用这个函数kill掉自己的企图,还是会拒绝。 [image-20220214190851688.png] 从中挑选如下代码 805d3487 56 push esi 805d3488 64a124010000 , 0x3B, 0x70, 0x44, 0x75, 0x07, 0xB8, 0x0D, 0x00, 0x00, 0xC0, 0xEB, 0x5A, 0x57 }; 那么编写代码 ring3层代码如下 // r3tor0killer.cpp : Defines the entry point for the console application. // #include "stdafx.h

21030

进程初探

NTSTATUS值就可以杀死一个进程,但是这里又有一个问题,如果我们想利用这个函数去kill掉一个软,那么软就直接让我们宰割吗,当然不会。 我们能知道这个内核的函数,那么软肯定也知道,所以在ring0层面下,软将这个内核函数hook掉,如果发现有调用这个函数kill掉自己的企图,还是会拒绝。 从中挑选如下代码 805d3487 56 push esi 805d3488 64a124010000 mov eax,dword ptr fs:[00000124h , 0x3B, 0x70, 0x44, 0x75, 0x07, 0xB8, 0x0D, 0x00, 0x00, 0xC0, 0xEB, 0x5A, 0x57 }; 那么编写代码 ring0的方式结束进程,ring3层代码如下 // r3tor0killer.cpp : Defines the entry point for the console application. //

7120
  • 广告
    关闭

    什么是世界上最好的编程语言?丨云托管征文活动

    代金券、腾讯视频VIP、QQ音乐VIP、QB、公仔等奖励等你来拿!

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

    如何查找僵尸进程并Kill之,不掉的要查看父进程

    用ps和grep命令寻找僵尸进程 #ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]' 命令注解: -A 参数列出所有进程 -o 自定义输出字段 我们设定显示字段为 stat(状态), ppid(进程父id), pid(进程id),cmd(命令)这四个参数 因为状态为 z或者Z的进程为僵尸进程,所以我们使用grep抓取stat状态为zZ进程 运行结果参考如下 -e '^[Zz]'来确认是否已经将僵尸进程杀死 如果kill 子进程的无效,可以尝试kill 其父进程来解决问题,例如上面例子父进程pid是 12334,那么我们就运行 #kill -HUP 12334 来解决问题 一般可以用top命令发现动态进程表 #top ? 其中zombie是僵尸进程 本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持

    26420

    调用NtCreateUserProcess创建进程绕过软hook

    如果发生这种情况,则有可能正在访问的内存只是描述进程的结构的相对偏移量,而不是实际的内存地址,初始化ProcessParameters的代码如下 RtlCreateProcessParametersEx RtlFreeHeap(RtlProcessHeap(), 0, AttributeList); RtlDestroyProcessParameters(ProcessParameters); 完整代码如下 我们在使用CreateProcess创建进程的时候能通过设置特定的参数来达到欺骗的效果,在NtCreateUserProcess里面也同样能够做到 这里我们首先看一下之前我们生成的进程,可以看到父进程为 AttributeList->Attributes[1].Size = sizeof(HANDLE); AttributeList->Attributes[1].ValuePtr = hParent; 首先使用之前的代码打开 mmc,可以看到跟父进程不是explorer 添加代码即可伪造父进程为explorer

    8330

    调用NtCreateUserProcess创建进程绕过软hook

    如果发生这种情况,则有可能正在访问的内存只是描述进程的结构的相对偏移量,而不是实际的内存地址,初始化ProcessParameters的代码如下 RtlCreateProcessParametersEx RtlFreeHeap(RtlProcessHeap(), 0, AttributeList); RtlDestroyProcessParameters(ProcessParameters); 完整代码如下 我们在使用CreateProcess创建进程的时候能通过设置特定的参数来达到欺骗的效果,在NtCreateUserProcess里面也同样能够做到 这里我们首先看一下之前我们生成的进程,可以看到父进程为 AttributeList->Attributes[1].Size = sizeof(HANDLE); AttributeList->Attributes[1].ValuePtr = hParent; 首先使用之前的代码打开 mmc,可以看到跟父进程不是explorer 添加代码即可伪造父进程为explorer

    11120

    kill -9 进程不掉,怎么办?

    -o 自定义输出字段 我们设定显示字段为 stat(状态), ppid(进程父id), pid(进程id),cmd(命令)这四个参数 因为状态为 z或者Z的进程为僵尸进程,所以我们使用grep抓取stat 状态为zZ进程 运行结果参考如下: Z 12334 12339 /path/cmd 这时,我们可以使用 kill -HUP 12339来杀掉这个僵尸进程 运行后,可以再次运行 ps -A -ostat, ppid,pid,cmd | grep -e '^[Zz]' 来确认是否已经将僵尸进程杀死 如果kill 子进程的无效,可以尝试kill 其父进程来解决问题,例如上面例子父进程pid是 12334,那么我们就运行 kill -HUP 12334 来解决问题 一般可以用top命令发现动态进程表 ? 其中zombie是僵尸进程 - End -

    1.2K20

    菜鸟手册10:谁“”了我的进程

    你看,相较于Jetson AGX Xavier 32G memory, NX只有8G memory.

    38120

    技术讨论 | Windows 10进程镂空技术(木马免

    前言 在Win10 x64环境下替换正常的进程,是一个比较高超的技术。使用该技术,可以内存执行病毒、木马。在文件层面实现免。可以把一个木马使用DES加密,放在资源里。 代码实现 一.创建一个挂起的进程notepad.exe ? a.) lpApplicationName 这个参数是可执行文件的路径。 g.) lpEnvironment 指向一个新进程的环境块。如果此参数为空,新进程使用调用 进程的环境。 如果这个参数为NULL,新进程将使用与调用进程相同的驱动器和目录。 i.) lpStartupInfo 指向一个用于决定新进程的主窗体如何显示的STARTUPINFO结 构体。 总结 本文介绍的Win10 x64进程镂空技术,可以在文件层面实现木马免。 *本文作者:河马安全网,转载请注明来自FreeBuf.COM

    58910

    还有kill -9不掉的进程?kill命令详解

    kill -9不掉的怎么办 用ps和grep命令寻找僵尸进 ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]' 命令注解: -A 参数列出所有进程 -o 自定义输出字段 我们设定显示字段为 stat(状态), ppid(进程父id), pid(进程id),cmd(命令)这四个参数 因为状态为 z或者Z的进程为僵尸进程。 所以我们使用grep抓取stat状态为zZ进程,运行结果参考如下: Z 12334 12339 /path/cmd 这时,我们可以使用 kill -HUP 12339来杀掉这个僵尸进程 运行后,可以再次运行 ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]' 来确认是否已经将僵尸进程杀死 如果kill 子进程无效,可以尝试kill 其父进程来解决问题,例如上面例子父进程 pid是 12334,那么我们就运行 kill -HUP 12334 来解决问题 一般可以用top命令发现动态进程表 其中zombie是僵尸进程 附录: linux signals

    2.1K20

    面试官:kill -9 进程不掉,怎么办?

    -o 自定义输出字段 我们设定显示字段为 stat(状态), ppid(进程父id), pid(进程id),cmd(命令)这四个参数 因为状态为 z或者Z的进程为僵尸进程。 所以我们使用grep抓取stat状态为zZ进程,运行结果参考如下: Z 12334 12339 /path/cmd 这时,我们可以使用 kill -HUP 12339来杀掉这个僵尸进程 运行后,可以再次运行 ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]' 来确认是否已经将僵尸进程杀死 如果kill 子进程的无效,可以尝试kill 其父进程来解决问题,例如上面例子父进程 pid是 12334,那么我们就运行 kill -HUP 12334 来解决问题 一般可以用top命令发现动态进程表 ? 其中zombie是僵尸进程 end

    42120

    最强代码生成器平台,疯了~

    因此,在许多情况下,低代码或无代码(几乎没有代码)这个名称是作为可视化开发工具来帮助设计人员进行拖放、组件浏览器和逻辑构建器的。 如今,数十种低代码/无代码平台和服务涌入互联网;因为事实证明,这一概念不仅仅适用于快速项目的原型设计。 外媒 Medevel 整理介绍了供个人和企业使用的最佳开源低代码和无代码平台列表。 该解决方案采用Java和Node.js开发,支持 AWS、私有云、IBM 云和 Digital Ocean。 OpenXava 是一个低代码应用程序构建平台,主要关注生产力、简单性和可用性。作为一个使用 Java 技术构建的跨平台系统,它运行在 Linux 和 Windows 服务器上。 该系统是用 Java 创建的,并提供 Eclipse 安装和集成。

    66720

    java开发系统内核:使用LDT保护进程数据和代码

    当程序被加载时,CPU会从局部描述符表中获得程序的代码段和数据段。由于局部描述符表的访问仅限当前进程,其他进程访问不了,因此其他进程就无法获取到本进程数据段和代码段的相关信息。 ,显然它只含有两个描述符,目前我们的进程只含有数据段和代码段,因此两个描述符足够了。 ,会把用户进程代码段和数据段设置到全局描述符表gdt中,现在我们改变了,我们把它设置到局部描述发表中,局部描述符表对应的正是task->ldt,它只有两个描述符,我们把用户进程代码段放入到第一个描述符 在调用start_app把跳转到用户进程代码时,我们传给该函数的代码段编号为 08, 0就是代码段在局部描述符表中的位置,这里要注意的是我们还“+4”,加4告诉CPU,当前的段在局部描述符表中,要到局部描述符表中去查找 如果crack进程要想成功入侵客户进程,那么必须获得客户进程的局部描述符表,但该表只能被对应的进程所访问,其他进程是没有权限也没有办法访问的,这样客户进程代码和数据就能得到完好的保护,恶意进程也无计可施

    35430

    红队免必会-进程注入--注册表-全局钩

    前言 进程注入 ,简而言之就是将代码注入到另一个进程中,跨进程内存注入,即攻击者将其代码隐藏在合法进程中,长期以来一直被用作逃避检测的手段. 进程的注入方式可以分为DLL注入和shellcode注入,这两种方式本质上没有区别,在操作系统层面上,dll也就是shellcode的汇编代码。 pid 主要实现通过进程名称获取进程Pid,代码很简单如下: DWORD GetPid() { //获取进程快照 HANDLE snapshot = CreateToolhelp32Snapshot 但是当我们用Administrator身份去打开一个进程时,还是会出现拒绝访问的错误: 错误代码为5表示拒绝访问: 这是因为默认情况下,某些进程的访问权限是没有开启的。 如果钩子函数的实现代码在DLL中,则在对应事件发生时,系统会把这个DLL加载到发生事件的进程空间地址中,使它能够调用钩子函数进行处理。

    13020

    Java进程异常退出

    参考链接: Java中的异常 今天,内网测试服务器A总是运行一段时间就服务器进程自行退出了,给出了“Java Result :137”这样的错误码。上网查了一下这个137,感觉没有啥有价值的东西。 拿起手机,随意搜了一下“JAVA进程无端退出”,看到了一篇博客提出一个运维神指令dmesg(ps:有时候这个真是救命的神指令)可以查到一个进程的异常信息,在故障诊断方面非常有用。 ,这下舒了一口气,JVM进程退出的原因算是知道了,被系统杀掉了,难怪看不到log。        想到之前,在通过TOP 观察java进程使用内存,总是徘徊在某个定值附近,大量的内存不被使用,我查了一下docker相关知识,了解到docker通过cgroup机制,实现进程之间诸如CPU,内存,文件系统 至此,我假想这个A是个Docker,并且内存做了一定的限制,并且这个限制低于Xmx的设置,从而在运行时,Java堆内存在分配的时候超过了Docker的限制,就触发了cgroup的资源管理机制,在进程组使用的内存达到限额再申请内存

    1K30

    Java 进程内存分布

    一、引言 为什么 Java 进程的实际物理内存使用量比 -Xmx 指定的 Max Heap size 大? 为什么 Java NMT 显示的 committed 内存值比RSS值小(或者大)? 是否有办法能限制一个 Java 进程的内存使用么? 怎么排查 Java 进程内存问题? .... 进程的虚拟内存使用,包括该进程代码,数据段,共享lib 以及 swap 出磁盘的内存。一般情况下,不用特别关注该指标,VIRT并不意味着物理内存。 三、Java 进程内存分布 Native Memory Tracking 是Java7U40引入的HotSpot新特性,可以用于追踪 Java 进程内存使用,并可以通过jcmd命令来访问。 3.1 Heap Heap 是 Java 进程中使用量最大的一部分内存,是最常遇到内存问题的部分,Java 也提供了很多相关工具来排查堆内存泄露问题,这里不详细展开。

    1.1K10

    红队作业 | 免Meterpreter java

    ,来达到免效果。 1.生成马 msf6 > use java/meterpreter/reverse_tcp msf6 payload(java/meterpreter/reverse_tcp) > msfvenom - 最开始是一些读取文件和数据 接下来是做了一个文件的生成和删除,因为在metasploit.dat中,没有Executable这个属性,所以可以跳过 接下来是进入这个if判断,第一次的时候i==2,详细的在注释里面,因为代码水平较差 ,所以基本上每一步都解释了 这里主要是递归,创建了自己并且执行,然后把创建的都删了(i>0)的时候,就是Spawn参数>0的时候,是为了逃避软分析内存调用 下面一个else if应该是跳过的,看最后一个 else,也就是i<=0的时候 核心:在这里执行字节码 3.尝试实现免 思路: 保留关键步骤,删去不必要的步骤,添加混淆步骤 在局域网进行测试 主要就是socket的建立和bootstrap方法保留下来

    15820

    Linux不死的进程之CPU使用率700%解决方法

    发现有个进程CPU使用率居然700%,COMMAND 是一些随机的字符串组成,完了~ 中标了;第一想到就是“沙雕”它,kill 命令给我上。 但是发现 kill 该进程平静一会后又启动了。 ? 注:老图复用,PID、COMMAND 都有变化。 2. 查看进程的详细信息 [root@zwlbs3 ~]# cd /proc/748/ [root@zwlbs3 748]# ls -ial # "748"是该进程的 PID,根据你的 PID 来查看即可。 发现该进程是在 /dev/shm 目录下的,/dev/shm 是一个什么目录呢? 几乎没有找到该进程相关的文件。 3. 解决办法 i. 查看某个进程内部线程占用情况分析 [root@zwlbs3 ~]# top -H -p "PID" ? ii.

    32231

    批量启动停止Java进程

    java进程管理程序 命名:jmanager 主要功能:保存当前主机所有Java进程信息,停止Java进程,启动Java进程 解决的问题: 公司目前测试环境只有几台虚拟机,没有进行容器化管理,系统采用分布式架构 一旦虚拟机重启或者故障就要适用Jenkins重启打包部署非常耗时和麻烦,遂编写该脚本用于定时抓取Java进程启动信息, 一旦出现故障,可以批量停止Java进程或者批量启动Java进程。 mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com 如何操作: python3 main.py log 解释:记录当前所有java 进程信息,产生以当前日志命名的进程数据文件 python3 main.py stop xxxx.json 解释:关闭所有Java进程 xxxx.json 为第一步产生的数据文件 python3 main.py start xxxx.json 解释:启动所有Java进程 xxxx.json 为第一步产生的数据文件 该脚本适用于所有java程序,可以安装在其他环境,但该脚本不负责程序启动或者停止顺序

    44020

    C# 获取进程退出代码

    我需要写一个程序,让这个程序知道另一个程序是否正常退出,于是就需要获取这个进程的退出代码 在程序如果需要手动退出,可以设置当前的退出代码 static void Main(string[ ] args) { Environment.Exit(-100); } 这时的程序运行就退出,同时退出的代码就是 -100 这和 C 语言的在 main 函数返回值一样 在 C# 如果想要实现 C 语言的 main 函数的返回值,是通过调用 Environment.Exit 方法 那么其他程序如何拿到这个程序的退出代码? 通过这个方法就可以拿到启动的进程的返回值,如果不是在 WPF 启动控制台程序,也可以在进程退出之前使用下面代码拿到进程 var process = Process.GetProcessById(控制台进程 ); 如果在进程退出之后才尝试去获取进程就会出现下面代码 System.ArgumentException:“ID 为 xx 的进程当前未运行。”

    78320

    相关产品

    • 消息队列 CMQ 版

      消息队列 CMQ 版

      消息队列 CMQ 版(TDMQ CMQ 版)是一种分布式消息队列服务,它能够提供可靠的,基于消息的异步通信机制,能够将分布式部署的不同应用(或同一应用的不同组件)中的信息传递,存储在可靠有效的 CMQ 队列中,防止消息丢失。TDMQ CMQ 版支持多进程同时读写,收发互不干扰,无需各应用或组件始终处于运行状态。

    相关资讯

    热门标签

    扫码关注腾讯云开发者

    领取腾讯云代金券