我已经写了一个PowerShell脚本在许多小时和天,并想混淆它,但这样的代码不再可读或反编译,但脚本仍然可以执行。有类似的东西吗?
k10s72fa1#
至于实际上混淆整个powershell脚本,这个site似乎就是这样做的。一年多前,我测试了一个脚本,以下是我的一些发现:1.Windows10:混淆的脚本在Windows 10上工作。我不记得我当时的Powershell版本。1.macOS:确认它也适用于Mac(如果你安装了powershell),但我记得有一些错误。几分钟前,我刚刚在Windows Server 2016(PSVersion:5.1./Desktop)系统上测试了另一个脚本。到目前为止没有问题。现在,正如前面的海报已经提到的,重要的是要注意 * 任何 * 混淆都可以被黑客入侵。这只是黑客的动机问题。我之所以说“任何”,是因为你不能控制你的powershell脚本将被使用的主机。因此,如果愿意的话,那些这样做的人可以改变powershell程序的二进制文件,让它吐出它所做的一切。这有多容易,我不知道。但谷歌搜索一下,你会发现有一些设置,只要打开,就可以记录你的powershell脚本的整个执行过程,不管是否经过模糊处理。以下是一些有关PowerShell日志记录的链接:
nr7wwzry2#
有一种东西叫做Powershell Constrained Language。引用自这里:https://devblogs.microsoft.com/powershell/powershell-constrained-language-mode/约束语言模式是PowerShell的一种语言模式,旨在支持日常管理任务,但限制对可用于调用任意Windows API的敏感语言元素的访问。在“约束”模式下,不支持以下内容:
它最适合运行管理任务,但不适合日常使用。要启动它,请用途:
$ExecutionContext.SessionState.LanguageMode = 'ConstrainedLanguage'
阅读更多:https://devblogs.microsoft.com/powershell/powershell-constrained-language-mode/丹尼尔Bohmann写的Invoke Obsufcation更适合这个目的。友情链接:https://github.com/danielbohannon/Invoke-Obfuscation使用指南:https://blog.vonhewitt.com/2017/08/obfuscating-powershell-commands-using/
t5zmwmid3#
如果你想混淆你的powershell代码,使其不可读,但保持它的工作,你应该检查一个名为Invoke-Obfuscation的项目由丹尼尔Bohannan完成。你应该检查他的talk关于powershell混淆的地方,他介绍了工具。
3条答案
按热度按时间k10s72fa1#
至于实际上混淆整个powershell脚本,这个site似乎就是这样做的。
一年多前,我测试了一个脚本,以下是我的一些发现:
1.Windows10:混淆的脚本在Windows 10上工作。我不记得我当时的Powershell版本。
1.macOS:确认它也适用于Mac(如果你安装了powershell),但我记得有一些错误。
几分钟前,我刚刚在Windows Server 2016(PSVersion:5.1./Desktop)系统上测试了另一个脚本。到目前为止没有问题。
现在,正如前面的海报已经提到的,重要的是要注意 * 任何 * 混淆都可以被黑客入侵。这只是黑客的动机问题。
我之所以说“任何”,是因为你不能控制你的powershell脚本将被使用的主机。因此,如果愿意的话,那些这样做的人可以改变powershell程序的二进制文件,让它吐出它所做的一切。这有多容易,我不知道。但谷歌搜索一下,你会发现有一些设置,只要打开,就可以记录你的powershell脚本的整个执行过程,不管是否经过模糊处理。
以下是一些有关PowerShell日志记录的链接:
nr7wwzry2#
有一种东西叫做Powershell Constrained Language。
引用自这里:https://devblogs.microsoft.com/powershell/powershell-constrained-language-mode/
约束语言模式是PowerShell的一种语言模式,旨在支持日常管理任务,但限制对可用于调用任意Windows API的敏感语言元素的访问。
在“约束”模式下,不支持以下内容:
它最适合运行管理任务,但不适合日常使用。要启动它,请用途:
阅读更多:https://devblogs.microsoft.com/powershell/powershell-constrained-language-mode/
丹尼尔Bohmann写的Invoke Obsufcation更适合这个目的。友情链接:https://github.com/danielbohannon/Invoke-Obfuscation
使用指南:https://blog.vonhewitt.com/2017/08/obfuscating-powershell-commands-using/
t5zmwmid3#
如果你想混淆你的powershell代码,使其不可读,但保持它的工作,你应该检查一个名为Invoke-Obfuscation的项目由丹尼尔Bohannan完成。你应该检查他的talk关于powershell混淆的地方,他介绍了工具。