加密/版权我的Powershell PS1文件

时间:2018-12-04 23:00:17

标签: powershell user-interface win32gui

我已经完成了我的Powershell工具,并且想知道将来是否有办法阻止人们对其进行更改。

我知道我可以将其编译为一个exe文件,但我真正想要的是停止对代码的修改,这样它就永远有我的名字反对它,以我的工具感到非常自豪,因此我讨厌如果我离开了组织,他们仍然使用它,有人来了,更改了几行代码,并声称是他们自己的。

即使使用代码中的密码对它进行了加密。

关于这将如何工作或是否可能的任何想法?

Cheera

1 个答案:

答案 0 :(得分:2)

加密/版权保护我的Powershell PS1文件

您可以在摘要中添加版权声明。 您甚至可以将编码的图片与所需的任何消息一起应用。

您无法加密代码,但可以对其进行编码/混淆(但是愿意尝试的任何人都可以轻易地将其逆转-就像可以对DLL进行逆向工程一样,这是破解者/黑客和开发人员在需要时所做的事情)

PowerShell Obfuscator

Invoke-Obfuscation: A PowerShell Command & Script Obfuscator!

所有这些混淆和加密的内容都会使您的安全人员/监控人员大吃一惊,这应该是黑客用来逃避人员和破坏系统的原因。

您可以使用代码签名证书对代码进行签名

Hey, Scripting Guy! How Can I Sign Windows PowerShell Scripts with an Enterprise Windows PKI? (Part 2 of 2)

然后您可以使用ps2exe将其转换为.exe,同样可以将其反转。

在系统上运行的任何PowerShell代码都必须由主机解码才能运行,这意味着任何人都可以通过查看Windows PowerShell日志来获取您的代码。这是白帽在使用代码混淆进行攻击时对代码进行混淆处理的一种方法。

那几乎是可以得到的,但是Ansgar Wiechers所说的话,即使您从未离开过雇主,您仍然必须将源代码保留为纯文本格式,以便能够传递给谁来代替您如果您得到了晋升,请转到新的团队或离开公司,或者天堂禁止离开您的凡人圈,而人们则需要解决您的代码。

按您的意思说是Y2K是一回事。找不到原始代码的开发人员来纠正其垃圾代码。这就是为什么许多公司仍使用WinXP或更早版本的原因,因为开发人员将代码编译为旧版本,因此无法更改。

既然MS已将所有PowerShell都发布为开放源代码,那么为什么要这么做呢?由于MS PowerShell库中的所有代码都是开源的,因此可以达成协议。

最后,我很确定您的代码不是全部都是原始的。您的意思是说,您没有查看任何其他资源/示例/示例来获得最终的脚本产品? 您是否在代码中称赞了这些样本/示例的作者?

如果您只是想防止普通用户弄乱您的代码,则PS2EXE应该是您最谨慎的方法。但是,仍然保留它供那些在源代码管理系统中以纯文本格式(例如VSS,GitHub等)关注您的人使用。