1

我尝试创建一个 python 程序,它可以对使用 IEX 的 powershell 恶意软件进行去混淆处理。我的 python 程序实际上是挂钩 IEX 函数,而不是运行所需的字符串,它会打印字符串。现在我的问题是我有一些 .ps1 脚本(例如 1.ps1、2.ps1 等),我想在同一个会话下运行所有​​这些脚本,这样,所有由 1 创建的局部变量.ps1 脚本,2.ps1 脚本就可以使用...

现在我尝试了很多方法,首先我尝试了子进程,但每次输入命令时它总是创建一个新会话(这是 .ps1 文件的路径)。然后我在 GitHub 上找到了这个项目: https : //gist.github.com/MarkBaggett/a7c10195b2626c78009bf73bcdb6db20 这真的很棒并且确实有效,但似乎当我运行命令 ./1.ps1 时它仍然没有存储会话中的局部变量(可能在运行脚本时会打开一个新变量)。我也尝试过“Get-Content 1.ps1 | iex”,但后来它崩溃了,因为我在那里有函数,例如:

function Invoke-Expression()
{
    param(
        [Parameter( `
            Mandatory=$True, `
            Valuefrompipeline = $True)]
        [String]$Command
    )
    Write-Host $Command
}

取自 PSDecode 项目: https ://github.com/R3MRUM/PSDecode/blob/master/PSDecode.psm1#L28

无论如何,关于我如何做到这一点的任何想法?我的桌面上有这些脚本,但不知道如何在同一个会话中运行它们,因此它们将使用相同的局部变量......

我做了两件事,但它们真的很糟糕:1. 将所有脚本转换为 1 个脚本并运行它,但在下次运行时,我将使用这个程序,我可能有 100 个或更多脚本,我真的不想做这个。2. 我可以保存每个脚本中的局部变量并将其加载到另一个脚本中,但我想在最坏的情况下使用它,但仍然没有到达那里。

非常感谢您对我的帮助,并对我的语法感到抱歉,正如您所见,我的英语不是我的母语 :)

4

1 回答 1

0

也许您正在寻找点源

在当前范围内运行脚本,以便将脚本创建的任何函数、别名和变量添加到当前范围。电源外壳

. c:\scripts\sample.ps1

如果是这样,请点源您的 ps1 文件,并调用其中的函数。

希望有帮助。

于 2019-06-14T04:55:37.337 回答