在一个会话下使用python运行Powershell脚本

时间:2019-06-13 19:11:59

标签: python powershell deobfuscation iex antimalware

我尝试创建一个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.我可以保存每个脚本中的局部变量,然后将其加载到另一个脚本中,但我想在最坏的情况下使用它,但仍然没有到达那里。

非常感谢您对我的帮助,对不起我的语法,我的英语不是我的母语:)

1 个答案:

答案 0 :(得分:0)

也许您正在寻找dot sourcing

  

在当前作用域中运行脚本,以便将脚本创建的所有函数,别名和变量添加到当前作用域中。   PowerShell

     

。 c:\ scripts \ sample.ps1

如果这样,请点源ps1文件,然后调用其中的函数。

希望有帮助。