You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows系统下替换EXE文件部分内容并运行的最优方案

Windows下实现多行内容替换并运行EXE的最优方案

首选方案:PowerShell脚本

PowerShell是Windows原生的现代化脚本环境,功能强大,处理多行文本/二进制替换的逻辑清晰,思路和Unix Shell脚本接近,是这类需求的最优选择。

场景1:处理文本格式的可执行文件(如脚本打包的EXE)

以下脚本完成复制文件→替换指定多行内容→运行修改后文件的完整流程:

# 复制原EXE到副本,避免修改源文件
Copy-Item -Path "program.exe" -Destination "program_modified.exe" -Force

# 定义需要替换的原内容块和新内容块
$originalContent = @"
bb
ccc
dddd
"@

$newContent = @"
xxx
yyy
"@

# 读取副本内容,替换指定块后写回
(Get-Content "program_modified.exe" -Raw) -replace [regex]::Escape($originalContent), $newContent | Set-Content "program_modified.exe" -Force

# 运行修改后的程序
.\program_modified.exe
  • 说明:
    • -Raw 参数将文件内容作为完整字符串读取,确保多行内容能被正确匹配
    • [regex]::Escape() 转义原内容中的特殊字符,避免正则表达式解析出错
    • -Force 参数强制覆盖已存在的副本文件

场景2:处理二进制格式的原生EXE

如果是原生二进制EXE,需要直接操作字节序列,示例脚本如下:

# 复制原文件到副本
Copy-Item "program.exe" "program_modified.exe" -Force

# 定义原字节序列和新字节序列(示例用ASCII编码,实际需根据目标字节调整)
$originalBytes = [System.Text.Encoding]::ASCII.GetBytes("bb`nccc`ndddd`n")
$newBytes = [System.Text.Encoding]::ASCII.GetBytes("xxx`nyyy`n")

# 读取文件所有字节
$fileBytes = [System.IO.File]::ReadAllBytes("program_modified.exe")

# 查找原字节序列在文件中的位置
$matchIndex = -1
for ($i = 0; $i -le $fileBytes.Length - $originalBytes.Length; $i++) {
    $isMatch = $true
    for ($j = 0; $j -lt $originalBytes.Length; $j++) {
        if ($fileBytes[$i + $j] -ne $originalBytes[$j]) {
            $isMatch = $false
            break
        }
    }
    if ($isMatch) {
        $matchIndex = $i
        break
    }
}

# 找到匹配则替换字节并写回文件
if ($matchIndex -ne -1) {
    [System.Array]::Copy($newBytes, 0, $fileBytes, $matchIndex, $newBytes.Length)
    [System.IO.File]::WriteAllBytes("program_modified.exe", $fileBytes)
}

# 运行修改后的程序
.\program_modified.exe

注意事项

  • 如果原EXE带有数字签名,修改后签名会失效,运行时可能被Windows安全软件拦截,需提前处理签名问题
  • 二进制替换时,需确保原字节序列和新字节序列的匹配准确性,避免破坏EXE结构导致程序无法运行

内容的提问来源于stack exchange,提问作者Piodo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 19:52:24