PSInject 项目使用教程
PSInject Inject PowerShell into any process 项目地址: https://gitcode.com/gh_mirrors/ps/PSInject
1. 项目的目录结构及介绍
PSInject 项目的目录结构如下:
PSInject/
├── PowerShellRunner/
│ ├── PowerShellRunner.cpp
│ └── PowerShellRunner.h
├── UnmanagedPowerShell/
│ ├── UnmanagedPowerShell.cpp
│ └── UnmanagedPowerShell.h
├── .gitignore
├── Invoke-PSInject.ps1
├── LICENSE
├── New-PowerShellRunnerHeader.ps1
├── PSInject.sln
└── README.md
目录结构介绍
-
PowerShellRunner/: 包含用于运行 PowerShell 的 C++ 代码文件。
PowerShellRunner.cpp
: 实现 PowerShell 运行的核心功能。PowerShellRunner.h
: 相关的头文件。
-
UnmanagedPowerShell/: 包含未托管的 PowerShell 实现代码。
UnmanagedPowerShell.cpp
: 未托管 PowerShell 的核心实现。UnmanagedPowerShell.h
: 相关的头文件。
-
.gitignore: Git 忽略文件,用于指定不需要版本控制的文件。
-
Invoke-PSInject.ps1: PowerShell 脚本,用于注入 PowerShell 到任意进程。
-
LICENSE: 项目的许可证文件,采用 BSD-3-Clause 许可证。
-
New-PowerShellRunnerHeader.ps1: 用于生成 PowerShell 运行器头文件的 PowerShell 脚本。
-
PSInject.sln: Visual Studio 解决方案文件,用于管理项目。
-
README.md: 项目的说明文件,包含项目的基本介绍和使用说明。
2. 项目的启动文件介绍
项目的启动文件是 Invoke-PSInject.ps1
。该文件是一个 PowerShell 脚本,用于将 PowerShell 注入到任意进程中。
启动文件介绍
- Invoke-PSInject.ps1:
- 功能: 该脚本的主要功能是将 PowerShell 代码注入到指定的进程中,无需重启或终止目标进程。
- 使用方法: 可以通过 PowerShell 命令行直接运行该脚本,并指定目标进程的 ID 和要注入的 PowerShell 代码。
- 示例:
Invoke-PSInject -ProcessID 1234 -Payload "Get-Process"
3. 项目的配置文件介绍
PSInject 项目没有传统的配置文件,但其核心功能依赖于 PowerShell 脚本和 C++ 代码的组合。主要的配置和参数传递通过 PowerShell 脚本中的参数进行。
配置文件介绍
- Invoke-PSInject.ps1:
- 参数:
-ProcessID
: 目标进程的 ID,用于指定要注入 PowerShell 的进程。-Payload
: 要注入的 PowerShell 代码。
- 配置: 通过脚本参数进行配置,无需额外的配置文件。
- 参数:
通过以上介绍,您可以更好地理解和使用 PSInject 项目。
PSInject Inject PowerShell into any process 项目地址: https://gitcode.com/gh_mirrors/ps/PSInject