NotepadExec – 使用 notepad.exe 启动 EXE 而无需代码注入

原文链接:https://www.x86matthew.com/view_post?id=notepadexec

此代码演示如何使用窗口消息 ( SendMessage / PostMessage ) 以编程方式从 notepad.exe 中启动另一个可执行文件。我想不出这个工具有什么实际用途——这只是一个有趣的快速概念验证。

此代码演示如何使用窗口消息 ( SendMessage / PostMessage ) 以编程方式从 notepad.exe 中启动另一个可执行文件。我想不出这个工具有什么实际用途——这只是一个有趣的快速概念验证。

其工作原理如下:

1. 使用CreateProcess启动隐藏的notepad.exe进程。2. 使用EnumWindows
找到新的 notepad.exe 进程的主窗口。使用GetWindowThreadProcessId检查窗口是否由新的notepad.exe进程拥有。3. 使用SendMessage 以编程方式启动“打开文件”对话框。

4. 向“打开文件”对话框发送各种消息以导航到目标目录并选择 EXE 文件。将有更简洁的方法来访问未记录的DirectUIHWND窗口类,但我没有花任何时间研究这个。
5、发送WM_CONTEXTMENU消息到“打开文件”对话框,模拟EXE文件的右键单击。
6. 选择右键菜单中的“打开”按钮执行程序。

上述步骤的结果是从notepad.exe进程中创建的子进程。这是因为 Windows 中的“打开文件”对话框是在每个进程中使用 shell API DLL 实现的——这意味着它可以用作“缩减”

我还应该补充一点,这种方法并不是特别可靠。它依赖于一些硬编码的睡眠调用,整个事情很可能会在未来的 Windows 版本上中断。它还需要英文标签,尽管这些标签很容易更改。这仅在 Windows 10 上进行了测试。

完整代码如下:

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注