开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 15880|回复: 119
收起左侧

[易语言纯源码] 【NTAPI】开源一堆NTAPI进程操纵(什么?不知道NTAPI?就是NTDLL中的命令啦!)

[复制链接]

结帖率:100% (4/4)
发表于 2018-6-7 15:52:56 | 显示全部楼层 |阅读模式   四川省宜宾市
分享源码
界面截图:
是否带模块: 纯源码
备注说明: -
NTAPI大家应该知道吧?
其实就是NTDLL中的函数(大部分都是原型函数,User32和Kernel32都是调用这里的)(简单介绍NTDLL:ntdll.dll是重要的Windows NT内核级文件。描述了windows本地NTAPI的接口。当Windows启动时,ntdll.dll就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域。
好了言归正传:
本程序包括:打开进程_强力,进程暂停,取api函数地址,进程结束,进程结束_强力,进程_NT内存清零,进程_取自进程ID,进程_提高权限,Kill_Process命令
还有一堆看不懂的API和数据类型(看不懂没关系,我已经写好了很多注释了哦~~)
来观摩一下:
  
子程序名返回值类型公开备 注
Kill_Process逻辑型 包含8种杀进程方法
参数名类 型参考可空数组备 注
PID整数型
变量名类 型静态数组备 注
hJob整数型 
oaOBJECT_ATTRIBUTES 
H整数型 
h_d整数型 
saSECURITY_ATTRIBUTES 
i整数型 
H = 打开进程_ (PID)
如果真 (H = 0)
H = 打开进程_强力 ( #PROCESS_ALL_ACCESS, 假, PID)
如果 (H ≠ 0)
如果真 (ZwTerminateProcess (H, 1) ≥ 1)  ' 普通杀进程
返回 ()
如果真 (进程结束 (PID))  ' 两种一起,保险
返回 ()
如果真 (进程结束_强力 (H, 0))
返回 ()
oa.Length = 24
如果真 (ZwCreateJobObject (hJob, 2031647, oa) ≥ 0)  ' 杀作业对象
如果真 (ZwAssignProcessToJobObject (hJob, H) ≥ 0 ZwTerminateJobObject (hJob, 0) ≥ 0)
ZwClose (H)
ZwClose (hJob)
返回 ()
ZwClose (hJob)

h_d = 取api函数地址 (“kernel32.dll”, “ExitProcess”)
API_CreateRemoteThread (H, sa, 0, h_d, 0, 0, 0)  ' 远程线程结束
关闭内核对象_ (H)
如果真 (KillAllTheard (PID))  ' 强制结束所有线程
返回 ()

' 得不到完全进程权限
H = 打开进程_ (8, 0, PID)
如果真 (H = 0)
H = 打开进程_强力 (8, 假, PID)
' ZwUnmapViewOfSection例程释放对视图的一段从一个进程的虚拟地址空间。就是卸载DLL模块
' 参数
' ProcessHandle
' 句柄以前传递给过程对象ZwMapViewOfSection.
' BaseAddress
' 指针的基本虚拟地址映射。这个值可以是任何视图内的虚拟地址。
' 返回值
' ZwUnmapViewOfSection返回一个NTSTATUS值。可能的返回值包括:
' 返回代码 描述
' STATUS_SUCCESS
' 程序功地执行所请求的操作。
' STATUS_ACCESS_DENIED
' 调用者没有访问权限的对象或过程的基本虚拟地址视图。
i = NtUnmapViewOfSection (H, LoadLibrary (“kernel32.dll”))  ' 强制卸载kernel32.dll
i = NtUnmapViewOfSection (H, LoadLibrary (“USER32.dll”))  ' 强制卸载USER32.dll
i = NtUnmapViewOfSection (H, LoadLibrary (“GDI32.dll”))  ' 强制卸载GDI32.dll
i = NtUnmapViewOfSection (H, LoadLibrary (“KERNELBASE.dll”))  ' 强制卸载KERNELBASE.dll
i = NtUnmapViewOfSection (H, LoadLibrary (“ntdll.dll”))  ' 强制卸载ntdll.dll
ZwClose (H)
如果真 (i ≥ 0)
返回 ()
' 使调试器连接到一个活跃的过程和调试它。
返回 (DebugActiveProcess (PID))  ' 连接调试进程..
' 参数
' dwProcessId[]
' 调试过程的标识符。调试器获得调试访问流程然后创建流程DEBUG_ONLY_THIS_PROCESS。
' 返回值
' 如果函数成功,返回值是零。
' 如果函数失败,返回值是0错误信息
返回 ()
子程序名返回值类型公开备 注
打开进程_强力整数型 主要为NATIVE API
参数名类 型参考可空数组备 注
dwDesiredAccess整数型
bInhert逻辑型
ProcessId整数型
变量名类 型静态数组备 注
st整数型 
cidCLIENT_IDCLIENT_ID结构包含进程和线程的标识符。
oaOBJECT_ATTRIBUTES 
NumOfHandle整数型 
pbiPROCESS_BASIC_INFORMATION 
i整数型 
hProcessToDup整数型 
hProcessCur整数型 
hProcessToRet整数型 
h_infoSYSTEM_HANDLE_TABLE_ENTRY_INFO 
retlen整数型 
a字节集 
b整数型 
c字节集 
ret整数型 
如果真 (ProcessId = 0)
返回 (0)
oa.Length = 24
如果真 (bInhert)
oa.Attributes = 位或 (oa.Attributes, #OBJ_INHERIT )
cid.UniqueProcess = ProcessId + 1
' ZwOpenProcess程序打开一个处理过程对象和设置该对象的访问权限。
' 参数
' ProcessHandle
' 一个指针类型的变量处理。ZwOpenProcess程序编写流程处理该参数指向的变量。
' DesiredAccess
' 一个ACCESS_MASK值包含访问权限,调用者要求过程对象。
' ObjectAttributes
' 一个指向一个OBJECT_ATTRIBUTES结构,指定属性适用于过程对象句柄。在Windows Vista和Windows版本的晚些时候,ObjectName领域这种结构必须设置为NULL。在Windows Server 2003、Windows XP和Windows 2000,这个领域可以作为一个选项,指向一个对象的名字。有关更多信息,请参见下面的备注部分。
' ClientId
' 一个指向客户机ID标识线程的进程是被打开。在Windows Vista和Windows版本的晚些时候,该参数必须是一个非空指针指向一个有效的客户机ID。在Windows Server 2003、Windows XP和Windows 2000,这个参数是可选的,可以设置为NULL如果OBJECT_ATTRIBUTES结构ObjectAttributes指向指定一个对象名称。有关更多信息,请参见下面的备注部分。
' 返回值
' ZwOpenProcess返回STATUS_SUCCESS如果调用成功。可能的返回值包括以下错误状态码。
' 返回代码 描述
' STATUS_INVALID_PARAMETER_MIX
' 晚些时候在Windows Vista和Windows版本的,调用者提供一个对象名称或未能提供一个客户机ID。在Windows Server 2003、Windows XP和Windows 2000,调用者提供一个对象名称和客户机ID。
' STATUS_INVALID_CID
' 指定的客户机ID无效。
' STATUS_INVALID_PARAMETER
' 请求的访问权限是无效的进程对象。
' STATUS_ACCESS_DENIED
' 不能授予所请求的访问权。
st = ZwOpenProcess (hProcessToRet, dwDesiredAccess, oa, cid)
如果真 (st ≥ 0)
ret = hProcessToRet
返回 (ret)
retlen = 1
循环判断首 ()
a = 取空白字节集 (retlen)
ret = ZwQuerySystemInformation (16, a, retlen, 0)
' MSDN的解释:
' https://msdn.microsoft.com/en-us/library/windows/desktop/ms725506(v=vs.85).aspx
如果 (ret = #STATUS_INFO_LENGTH_MISMATCH )
retlen = retlen × 2
a = 取空白字节集 (retlen)
跳出循环 ()

循环判断尾 (ret = #STATUS_INFO_LENGTH_MISMATCH )
b = 取指针_字节集 (a, a, 0)
RtlMoveMemory3 (NumOfHandle, b, 4)
' RtlMoveMemory程序副本的内容源目的地内存块内存块,并支持内存块重叠的源和目的地。
b = b + 4
计次循环首 (NumOfHandle, i)
RtlMoveMemory1 (h_info, b, 16)
如果真 (h_info.ObjectTypeIndex = #OB_TYPE_PROCESS )
cid.UniqueProcess = h_info.UniqueProcessId
st = ZwOpenProcess (hProcessToDup, #PROCESS_DUP_HANDLE, oa, cid)
如果真 (st ≥ 0)
st = ZwDuplicateObject (hProcessToDup, h_info.HandleValue, #ZwGetCurrentProcess, hProcessCur, #PROCESS_ALL_ACCESS, 0, #DUPLICATE_SAME_ATTRIBUTES )
' ZwDuplicateObject例程创建一个句柄是一个重复的指定源的处理。
' 参数
' SourceProcessHandle
' 一个句柄所复制的源处理的过程。
' SourceHandle
' 重复的处理。
' TargetProcessHandle
' 句柄到目标接收新处理的过程。这个参数是可选的,可以指定为NULL如果DUPLICATE_CLOSE_SOURCE标志设置选项。
' TargetHandle
' 常规的一个句柄指针变量写新的重复处理。重复处理是有效的在指定的目标的过程。这个参数是可选的,可以指定零如果没有创建重复处理。
' DesiredAccess
' 一个ACCESS_MASK值指定为新的处理所需的访问。
' HandleAttributes
' ULONG,指定新处理所需的属性。关于属性的更多信息,请参见属性成员的描述OBJECT_ATTRIBUTES.
' Options
' 一组标志来控制重复操作的行为。这个参数设置为0或按位或一个或多个以下的flag。
' flag的名字                描述
' DUPLICATE_SAME_ATTRIBUTES 而不是使用HandleAttributes参数,将从源处理属性复制到目标处理。
' DUPLICATE_SAME_ACCESS     而不是使用DesiredAccess参数复制访问权限从源到目标处理句柄。
' DUPLICATE_CLOSE_SOURCE    近源处理。
如果真 (st ≥ 0)
st = ZwQueryInformationProcess (hProcessCur, 0, pbi, 24, 0)
如果真 (st ≥ 0)
如果真 (pbi.UniqueProcessId = ProcessId)
st = ZwDuplicateObject (hProcessToDup, h_info.HandleValue, #ZwGetCurrentProcess, hProcessToRet, dwDesiredAccess, #OBJ_INHERIT, #DUPLICATE_SAME_ATTRIBUTES )
' ZwDuplicateObject例程创建一个句柄是一个重复的指定源的处理。
如果真 (st ≥ 0)
ret = hProcessToRet



' ZwClose程序关闭一个对象句柄。
st = ZwClose (hProcessCur)
' 参数
' Handle
' 任何类型的一个对象的句柄。
' 返回值
' ZwClose返回STATUS_SUCCESS成功,或适当的NTSTATUS;如果执行失败,将返回错误代码。特别是,它返回STATUS_INVALID_HANDLE如果处理不是一个有效的处理,或者STATUS_HANDLE_NOT_CLOSABLE如果调用线程没有权限关闭处理。
st = ZwClose (hProcessToDup)
b = b + 16
计次循环尾 ()
返回 (ret)

注释什么的都是有的哦~~
新手也很容易上手哦~~
有人可能会说:LZ,你光吹6B,实际用起来怎么样呢?
这个问题可就提的好了
来看看效果: jingshan.jpg
怎么样,金山一下子就被挂起了(当然了,250+110和系统进程我建议不要试了,包括结束也不要试,否则结束了系统进程或360导致的蓝屏可不关我事哦~~)
同时本程序也包括多种杀进程方法(注释都是有的)
主要是“普通杀进程,TerminateProcess,杀作业对象,远程线程结束,强制结束所有线程,强制卸载ntdll.dll,内存清0”
老规矩:源码回复下载
最后说一句:如果你觉得可以的话,请:
一下(点2下又不会扣分),源码回复下载!!
进程.e (32.08 KB, 下载次数: 634)

点评

来来来,赶紧把360干掉,流氓 老流氓 特别流氓   柬埔寨  发表于 2019-4-6 14:39
感谢开源 +1000 金币 +200% 暴击   浙江省湖州市  发表于 2018-7-13 11:42
感谢开源 +1000 金币 +200% 暴击   广西壮族自治区南宁市  发表于 2018-7-5 20:55
能干掉360吗?无提示的那种   浙江省温州市  发表于 2018-6-16 11:20

评分

参与人数 8好评 +7 精币 +31 收起 理由
xidiedashuaib + 1 很赞同,谢谢!
静等花落 + 1 + 2 大神,请收下我的膝盖
呵呵呵呵呵呵 + 1 + 1 支持开源~!感谢分享
hatsunemiku + 1 + 2 支持开源~!感谢分享
Hooksafe + 1 + 2 支持开源~!感谢分享
戏雨流年 + 1 + 2 支持开源~!感谢分享
易正易则 + 1 + 1 新技能已get√
Decimal + 1 + 20 新技能已get√

查看全部评分


本帖被以下淘专辑推荐:

签到天数: 4 天

发表于 2024-1-18 04:16:08 | 显示全部楼层   江苏省南京市
回复 支持 反对

使用道具 举报

发表于 2023-11-7 04:11:47 | 显示全部楼层   广西壮族自治区桂林市
感谢分享
回复 支持 反对

使用道具 举报

结帖率:91% (32/35)

签到天数: 10 天

发表于 2023-2-22 00:59:37 高大上手机用户 | 显示全部楼层   河南省许昌市
回复 支持 反对

使用道具 举报

结帖率:80% (4/5)

签到天数: 29 天

发表于 2022-12-9 14:48:21 | 显示全部楼层   湖南省郴州市
66666666666666666666666
回复 支持 反对

使用道具 举报

结帖率:67% (2/3)

签到天数: 6 天

发表于 2022-12-4 23:46:58 | 显示全部楼层   江西省赣州市
#在这里快速回复#果你觉得可以的话,请:
回复 支持 反对

使用道具 举报

签到天数: 1 天

发表于 2022-8-13 16:58:45 | 显示全部楼层   新疆维吾尔自治区伊犁哈萨克自治州
666666666666666666666666
回复 支持 反对

使用道具 举报

结帖率:97% (30/31)

签到天数: 3 天

发表于 2022-6-10 03:09:51 | 显示全部楼层   福建省福州市

内核操作模块,大兄弟可以的.
回复 支持 反对

使用道具 举报

签到天数: 20 天

发表于 2022-3-5 00:46:08 | 显示全部楼层   四川省自贡市
没有精币了。。。
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2022-1-28 18:38:41 | 显示全部楼层   江西省赣州市
66666666666666666666666666666666
回复 支持 反对

使用道具 举报

发表于 2021-8-22 01:35:43 | 显示全部楼层   广东省广州市
新技能已get√
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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