2025-11-13 增加“Windows可视化管理”用到的3个 ShellCode 细节,适用于先前任何版本。
说明:
WINDOWS 自身集成了大量(限公开的就超过 3 万个) API 给开发人员调用。系统自身,出于安全、或保护用户隐私,所以特定 API,“仅限自身进程”调用生效,外部进程调用无效。
本软件用到 ShellCode(定义的字节码,写入目标进程来调用) 的3个功能,是当初因为好奇,想探索相关功能,而开发出来,给自已了解相关细节,无不良目的。
功能1:实现查询/设置你指定进程的关闭参数(Get/SetProcessShutdownParameters):
启用:默认不启用
位于:“基本信息”页,用户手动勾选“查询[WC]关闭参数:”时才启用
// 说明:因系统限制,本进程只能查询自身进程的的关闭参数,不能查询任何外部进程的关闭参数。
// 为了探索整个系统,其他进程的关闭参数设置成什么,所以实现可查询/设置指定进程的关闭参数功能。
// 以下定义的汇编指令(ShellCode),限为在目标进程实现调用 Get/SetProcessShutdownParameters 二个 API。
const // 以下是32位系统,在用户启用了“查询[WC]关闭参数:”时写入的汇编指令
C_ShellCodex86 : array [0..744] of Byte = (
$55,$8B,$EC,$83,$C4,$E4,$33,$C0,$89,$45,$FC,$8B,$45,$08,$89,$45,
...);
// 以下是 64 位系统,在用户启用了“查询[WC]关闭参数:”时写入的汇编指令
C_ShellCodex64 : array [0..1010] of Byte = (
$55,$48,$83,$EC,$50,$48,$8B,$EC,$48,$89,$4D,$60,$C7,$45,$4C,$00,
...);
功能2:“句柄信息”窗口,句柄标志[WC](&A),查询/设置相关实现:
启用:默认不启用
位于:“基本信息”页,用户手动勾选“查询[WC]关闭参数:”时才启用
// 说明:因系统限制,Get/SetHandleInformation “仅限自身进程”调用生效,不能查询/设置外部进程。
// 以下定义的汇编指令(ShellCode),限为在目标进程实现调用 Get/SetHandleInformation 二个 API。
// 以下是32位系统
C_ShellCodex86 : array [0..720] of Byte = (
$55,$8B,$EC,$83,$C4,$E8,$8B,$45,$08,$89,$45,$F0,$E8,$AB,$02,$00,
...);
// 以下是64位系统
const
C_ShellCodex64 : array [0..1004] of Byte = (
$55,$48,$83,$EC,$60,$48,$8B,$EC,$48,$89,$4D,$70,$48,$8B,$45,$70,
...);
功能3:实现启用/禁用窗口截图相关实现:
启用:默认不启用
位于:“窗口信息”页,右键菜单 --> 禁止窗口截图[WC]
// 说明:因系统限制,Get/SetWindowDisplayAffinity “仅限自身进程”调用生效,不能查询/设置外部进程。
// 以下定义的汇编指令(ShellCode),限为在目标进程实现调用 Get/SetWindowDisplayAffinity 二个 API。
// 以下是32位系统
const
C_ShellCodex86 : array [0..712] of Byte = (
$55,$8B,$EC,$83,$C4,$E8,$8B,$45,$08,$89,$45,$F0,$E8,$9F,$02,$00,
...);
// 以下是64位系统
const
C_ShellCodex64 : array [0..978] of Byte = (
$55,$48,$83,$EC,$50,$48,$8B,$EC,$48,$89,$4D,$60,$48,$8B,$45,$60,
...);
最后于 2025-11-13 22:40
被kagayaki编辑
,原因: