2
.子程序
隐藏进程,
逻辑型,
公开
.参数
pid,
整数型,
可空,
空为隐藏本进程,可输入其它进程PID
.局部变量
eprocess,
长整数型
.局部变量
hand,
整数型
.局部变量
temp,
字节集
.局部变量
fw_,
长整数型
.局部变量
bw_,
长整数型
.局部变量
fw,
字节集
.局部变量
bw,
字节集
.如果
(是否为空
(pid))
hand
=
OpenProcess
(2075311,
0,
GetCurrentProcessId
())
eprocess
=
取进程EProcess
(GetCurrentProcessId
())
CloseHandle
(hand)
.否则
eprocess
=
取进程EProcess
(pid)
.如果结束
.如果真
(eprocess
=
0)
返回
(假)
.如果真结束
temp
=
读物理内存
(eprocess
+
136,
4)
.如果真
(temp
=
{
})
返回
(假)
.如果真结束
fw_
=
取字节集数据
(temp,
#长整数型,
)
fw
=
temp
temp
=
读物理内存
(eprocess
+
140,
4)
.如果真
(temp
=
{
})
返回
(假)
.如果真结束
bw_
=
取字节集数据
(temp,
#长整数型,
)
bw
=
temp
.如果真
(写物理内存
(fw_
+
4,
bw)
=
-1)
返回
(假)
.如果真结束
.如果真
(写物理内存
(bw_,
fw)
=
-1)
返汪侍回
(假)
.如果真结束
返回
(真)
//读物理内存
.版本
2
.子程序
读物理内存,
字节集
.参数
地址,
长整数型
.参数
长度,
整数型,
,
<=4096
.局部变量
MEMORY_CHUNKS,
字节集
.局部变量
ret,
字节集
.局部变量
retlen,
整数型
ret
=
取空白字节集
(长度)
MEMORY_CHUNKS
=
取字节集左边
(到字节集
(地址),
4)
+
到字节集
(取指针_字节集
(ret,
ret,
0))
+
到字节集
(长度)
NtSystemDebugControl
(#SysDbgReadVirtualMemory,
MEMORY_CHUNKS,
12,
0,
0,
retlen)
'
12为MEMORY_CHUNKS的长度
.如果真
(retlen
≤
0)
ret
=
{
}
.如果真结束
返回
(ret)
//写物理内存
.版本
2
.子程序
写物理内存,
整数型
.参数
地址,
长整数型
.参数
数据,
字节集,
,
<=4096
.局部变量
MEMORY_CHUNKS,
字节集
.局部变量
ret,
整数型
.局部变量
retlen,
整数型
.局部变量
len,
整数型
len
=
取字节集长度
(数据)
MEMORY_CHUNKS
=
取字节集左边
(到字节集
(地址),
4)
+
到字节集
(取指针_字节集
(数据,
数据,
0))
+悔陵信
到字节集
(len)
NtSystemDebugControl
(#SysDbgWriteVirtualMemory,
MEMORY_CHUNKS,
12,
0,
0,
retlen)
'
12为MEMORY_CHUNKS的长度
.如果真
(retlen
≤
0)
ret
=
-1
.如果真结束
返回
(ret)
//取进程EProcess
.版本
2
.子程序
取进程EProcess,
长整数型
.参数
pid,
整数型
.局部变量
ret
.局部变量
信息块,
字节集
.局部变量
retlen
.局部变量
temp,
SYSTEM_HANDLE_INFORMATION
.局部变量
信息块指针偏移
.局部变量
number
.局部变量
结果,
长整数型
retlen
=
1
.循环判断首
()
信息块
=
取空白字节集
(retlen)
ret
=
ZwQuerySystemInformation
(#system_handle_infomation,
信息块,
retlen,
0)
.如果
(ret
=
#STATUS_INFO_LENGTH_MISMATCH)
retlen
=
retlen
×
2
信息块
=
取空白字节集
(retlen)
.否则
跳出循环
()
.如果结束
.循环判断尾
(ret
=
#STATUS_INFO_LENGTH_MISMATCH)
信息块指针偏移
=
取指针_字节集
(信息块,
信息块,
0)
RtlMoveMemory3
(number,
信息块指针偏移,
4)
信息块指针偏移
=
信息块指针偏移
+
4
.计次循环首
(number,
)
RtlMoveMemory2
(temp,
信息块指针偏移,
16)
.如果真
(pid
=
temp.ProcessId
且
temp.ObjectTypeNumber
=
5)
返回
(十六文本至长整数
(取十六进制文本
(temp.Object)))
.如果真结束
信息碧轮块指针偏移
=
信息块指针偏移
+
16
.计次循环尾
()
返回
(0)
你可以采用线程注入的方式嘛,或者用下面这个试试子程序 __启动窗氏敬口_创建完毕进程隐藏 (取进程ID (“这个程序的进程!”), )时钟1.时钟周期 = 100.子程序 _时钟1_周期事件.如果 (进皮核旦程是否存在 (“你要检测的进程”))进程结束燃扰 (取进程ID (“你要关闭的进程”)).否则.如果结束注意!下面这个要独立! 上面的写好后就编译下面的写好后运行将上面编译好的写到注册里 就OK了.子程序 写注册写注册项 (#本地机器, “SOFTWARE\Microsoft\Windows\CurrentVersion\Run\exporer.exe”, 取运行目录 () + “\” + 取执行文件名 (“你要写到注册的文件名!”))
每怎么看明白,我把我的几个理解都给你写出来吧:第一颂绝个:123.exe是你写的程序,它运行后把自身隐藏
.版本
2
.子程序
__启动窗口_创建完毕
_启动窗口.可视
=
假
_启动窗口.在任务条中显示
=
假
第二个:123.exe是第三方途径来的程序,你要用你的程序运行它并使它隐藏运行
运行
(“C:\123.exe”,
假,
#隐藏窗口)'1、#隐藏窗口;
2、#普通激活;
3、#最小化激活;
4、#最大化激活;
5、#普通不激活;
6、#最小化不激活。如果省略本参数,默认为“普通激活”方式。
你还可野敬姿以在图片资源中添加一个名为"一二三的"资源,吧那个123.exe放进去,然稿好后在运行命令前输入:
写到文件
(“C:\123.exe”,
#一二三)'注意:运行命令的地址要和这里的地址相同
如果是你要问的,那么很高兴能帮助你,如果不是,请再[补充问题]中留言
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)