如何用易语言编写隐藏进程?

如何用易语言编写隐藏进程?,第1张

你可以采用线程注入的方式嘛,或者用下面这个试试

子程序 __启动窗口_创建完毕进程隐藏 (取进程ID (“这个程序的进程!”), )时钟1.时钟周期 = 100.子程序 _时钟1_周期事件.如果 (进程是否存在 (“你要检测的进程”))进程结束 (取进程ID (“你要关闭的进程”)).否则.如果结束注意!下面这个要独立! 上面的写好后就编译下面的写好后运行将上面编译好的写到注册里 就OK了.子程序 写注册写注册项 (#本地机器, “SOFTWARE\Microsoft\Windows\CurrentVersion\Run\exporer.exe”, 取运行目录 () + “\” + 取执行文件名 (“你要写到注册的文件名!”))

程序集 窗口程序集1 .程序集变量 返回链表值, 整数型 .子程序 _按钮1_被单击 返回链表值 = 进程隐藏 (, ) .如果 (返回链表值 = -1)     信息框 (“隐藏进程失败。”, 48, “信息提示”) .否则     信息框 (“隐藏进程成功。”, 64, “信息提示”) .如果结束 .子程序 _按钮2_被单击 返回链表值 = 进程隐藏 (, 返回链表值) .如果 (返回链表值 = -1)     信息框 (“显示隐藏的进程失败。”, 48, “信息提示”) .否则     信息框 (“显示隐藏的进程成功。”, 64, “信息提示”) .如果结束 .子程序 进程隐藏, 整数型, 公开, 通过断链方式隐藏进程(返回链表值,用于恢复该进程,失败返回-1) .参数 进程ID, 整数型, 可空, 目的进程ID (默认自进程ID) .参数 链表值, 整数型, 可空, 欲还原的进程链表地址值  如果隐藏进程请留空 .局部变量 eprocess, 长整数型 .局部变量 hand, 整数型 .局部变量 temp, 字节集 .局部变量 fw_, 长整数型 .局部变量 bw_, 长整数型 .局部变量 fw, 字节集 .局部变量 bw, 字节集 .局部变量 返回值, 整数型 .如果真 (提升进程权限D () = 假)     返回 (-1) .如果真结束 .如果 (是否为空 (进程ID))     hand = _打开进程 (2075311, 0, _取自进程ID ())     eprocess = 取进程EProcess (_取自进程ID ())     _关闭对象 (hand) .否则     eprocess = 取进程EProcess (进程ID) .如果结束 .如果真 (eprocess = 0)     返回 (-1) .如果真结束 temp = 读物理内存 (eprocess + 136, 4) .如果真 (temp = {  })     返回 (-1) .如果真结束 fw_ = 取字节集数据 (temp, 4, ) fw = temp temp = 读物理内存 (eprocess + 140, 4) .如果真 (temp = {  })     返回 (-1) .如果真结束 bw_ = 取字节集数据 (temp, 4, ) bw = temp 返回值 = 取字节集数据 (读物理内存 (bw_, 4), 3, ) .如果 (是否为空 (链表值))     .如果真 (写物理内存 (fw_ + 4, bw) = -1)         返回 (-1)     .如果真结束     .如果真 (写物理内存 (bw_, fw) = -1)         返回 (-1)     .如果真结束 .否则     .如果真 (写物理内存 (fw_ + 4, 到字节集 (链表值)) = -1)         返回 (-1)     .如果真结束     .如果真 (写物理内存 (bw_, 到字节集 (链表值)) = -1)         返回 (-1)     .如果真结束 .如果结束 返回 (返回值) .子程序 提升进程权限D, 逻辑型, 公开, 成功返回真,把一个进程的权限提升到调试级权限 .参数 进程ID, 整数型, 可空, 可空为提升当前进程 .局部变量 进程句柄, 整数型 .局部变量 令牌句柄, 整数型 .局部变量 destLuid, ebw4ythr .局部变量 进程权限, ebyrt .局部变量 返回值, 逻辑型 .如果真 (是否为空 (进程ID))     进程ID = _取自进程ID () .如果真结束 进程句柄 = _打开进程 (2035711, 0, 进程ID) _打开令牌对象 (进程句柄, 983551, 令牌句柄) _取权限令牌 (0, “SeDebugPrivilege”, destLuid) 进程权限.sd5gtyv = 1 进程权限.sv45y = 2 进程权限.sr5ybcthf = destLuid.s5hyb5r 进程权限.iund6gvry = destLuid.xsd65byf 返回值 = _置进程权限 (令牌句柄, 假, 进程权限, 0, 0, 0) _关闭对象 (进程句柄) 返回 (返回值) .子程序 取进程EProcess, 长整数型, , 0为失败(进程隐藏) .参数 pid, 整数型 .局部变量 ret .局部变量 信息块, 字节集 .局部变量 retlen .局部变量 temp, h4e6hhtrdes .局部变量 信息块指针偏移 .局部变量 number .局部变量 结果, 长整数型 retlen = 1 .循环判断首 ()     信息块 = 取空白字节集 (retlen)     _模块_调用转向 (“ntdll.dll”, “ZwQuerySystemInformation”)     ret = ZwQuerySystemInformation (16, 信息块, retlen, 0)     .如果 (ret = -1073741820)         retlen = retlen × 2         信息块 = 取空白字节集 (retlen)     .否则         跳出循环 ()     .如果结束 .循环判断尾 (ret = -1073741820) 信息块指针偏移 = _取指针_字节集 (信息块, 信息块, 0) _写内存3 (number, 信息块指针偏移, 4) 信息块指针偏移 = 信息块指针偏移 + 4 .计次循环首 (number, )     _写内存2 (temp, 信息块指针偏移, 16)     .如果真 (pid = temp.a 且 temp.b = 5)         返回 (十六文本至长整数 (取十六进制文本 (temp.e)))     .如果真结束     信息块指针偏移 = 信息块指针偏移 + 16 .计次循环尾 () 返回 (0) .子程序 十六文本至长整数, 长整数型, , (进程隐藏) .参数 x, 文本型, , 要转换的十六进制文本 .局部变量 ret, 长整数型 _模块_调用转向 (“shlwapi.dll”, “StrToInt64ExA”) _进制文本转整数 (“0x” + x, 1, ret) 返回 (ret) .子程序 读物理内存, 字节集, , 失败返回{},成功返回相应数据 (进程隐藏) .参数 地址, 长整数型 .参数 长度, 整数型, , <=4096 .局部变量 MEMORY_CHUNKS, 字节集 .局部变量 ret, 字节集 .局部变量 retlen, 整数型 ret = 取空白字节集 (长度) MEMORY_CHUNKS = 取字节集左边 (到字节集 (地址), 4) + 到字节集 (_取指针_字节集 (ret, ret, 0)) + 到字节集 (长度) _模块_调用转向 (“ntdll.dll”, “NtSystemDebugControl”) NtSystemDebugControl (8, MEMORY_CHUNKS, 12, 0, 0, retlen)  ' 12为MEMORY_CHUNKS的长度 .如果真 (retlen ≤ 0)     ret = {  } .如果真结束 返回 (ret) .子程序 写物理内存, 整数型, , 失败返回-1,成功返回0 (进程隐藏) .参数 地址, 长整数型 .参数 数据, 字节集, , <=4096 .局部变量 MEMORY_CHUNKS, 字节集 .局部变量 ret, 整数型 .局部变量 retlen, 整数型 .局部变量 len, 整数型 len = 取字节集长度 (数据) MEMORY_CHUNKS = 取字节集左边 (到字节集 (地址), 4) + 到字节集 (_取指针_字节集 (数据, 数据, 0)) + 到字节集 (len) _模块_调用转向 (“ntdll.dll”, “NtSystemDebugControl”) NtSystemDebugControl (9, MEMORY_CHUNKS, 12, 0, 0, retlen)  ' 12为MEMORY_CHUNKS的长度 .如果真 (retlen ≤ 0)     ret = -1 .如果真结束 返回 (ret) .子程序 _模块_调用转向 .参数 DLL文件名, 文本型 .参数 函数名, 文本型 .局部变量 hbe4htr, 文本型, 静态 .局部变量 ye65ybtry5, 整数型, 静态 .如果真 (hbe4htr = “”)     hbe4htr = 取特殊目录 (37) .如果真结束 .如果真 (DLL命令调用转向 (hbe4htr + DLL文件名, 函数名))     返回 () .如果真结束 信息框 (“找不到文件:” + DLL文件名 + “中的函数:” + 函数名 + “!”, 16, “错误提示”) 结束 () .子程序 取特殊目录, 文本型, 公开, 取特定的目录(返回所要取的指定目录名 无效返回空) .参数 欲获取目录类型, 整数型, 可空, 0我的桌面 1临时目录 5我的文档 6我的收藏夹 7我的启动 11我的开始菜单 20系统字体 36Windows安装目录 37系统目录  [99更多] .局部变量 路径, 文本型 .局部变量 标示结构, xbsdy5sg .局部变量 目录类型, 整数型 .如果真 (欲获取目录类型 = 99)     输出调试文本 (“0我的桌面 2我的程序 5我的文档 6我的收藏夹 7我的启动 8我最近的文档 9我的发送到 11我的开始菜单 13我的音乐 14我的视频 16我的桌面 20系统字体 22开始菜单组 23程序组 24启动组 25桌面 31收藏夹 32我的浏览器临时目录 33我的Cookies 34我的历史记录 36Windows安装目录 37系统目录 38文件安装目录 39我的图片 40用户目录 41系统目录 46文档 47管理工具 48我的管理工具 53音乐 54图片 55视频”) .如果真结束 .如果 (欲获取目录类型 = 1)     目录类型 = 34 .否则     目录类型 = 欲获取目录类型 .如果结束 获取特别文件夹位置_ (0, 目录类型, 标示结构) 路径 = 取空白文本 (255) 从列表id取路径_ (标示结构.xzsybd, 路径) .如果真 (路径 = “”)     返回 (“”) .如果真结束 .如果真 (欲获取目录类型 = 1)     路径 = 子文本替换 (路径, “History”, “Temp”, , , 真) .如果真结束 返回 (路径 + “\”) 2


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7739681.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存