有什么简单的方法可以隐藏一点 Ruby 代码吗?

发布于 2024-11-29 03:22:17 字数 371 浏览 0 评论 0原文

我寻找一种解决方案来使 Ruby 代码变得更加难以阅读。

事实上,我对完全混淆代码不感兴趣,而是获得“一行 *.rb 文件”或类似 此链接上的“漂亮数字” 应该受到赞赏。

在在这里发帖之前,我花了几个小时寻找解决方案,但无法获得任何脚本、gem 或程序来将易于阅读的代码转换为“傻瓜”更难以理解的代码。

例如尝试过这些,但任何一个都可以轻松完成整个工作。

I sought for a solution to make a Ruby code much more unreadable.

In fact i'm not interested about obfuscating totally the code but getting a "one line *.rb file" or some thing like "Pretty Numbers" on this link should be appreciated.

Before posting here I passed hours to find a solution but can't get any script, gem or program to transform an easy readable code on something quite more hard to understand for "dummies".

Tried for example these ones but any can do the whole job easily.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

雨后咖啡店 2024-12-06 03:22:17

将代码封装在字符串中

string = "1+2; sneaky('something'); 'will be hidden'"

将字符串封装在数组中

array = [string]

将数组的内容打包成二进制序列

 array.pack('u') #=> "?<'50``\n..."

Copy &将二进制序列粘贴到代码中并对其进行评估。

eval("?<'50``\n...".unpack('u').first) #=> 'will be hidden'

Encapsulate code in a string

string = "1+2; sneaky('something'); 'will be hidden'"

Encapsulate string in an array

array = [string]

Pack the contents of the array into a binary sequence

 array.pack('u') #=> "?<'50``\n..."

Copy & paste binary sequence in your code and evaluate it.

eval("?<'50``\n...".unpack('u').first) #=> 'will be hidden'
生寂 2024-12-06 03:22:17
  • 将所有变量、方法或类名称替换为 1 个字母的名称,就像 abc 一样。
  • 你知道DRY吗?忘了它。重复部分代码,使其变得更大、更难理解。尝试以多种方式编写同一段代码。
  • 在大型表达式或计算中转换简单整数和字符串。
  • 定义额外的函数并在实际定义之后使用 undef 或在实际定义之前定义现有函数。
  • 在代码之间添加不执行任何操作的内容,或者在执行某些操作的代码后添加另一个撤消该操作的代码。
  • 将部分代码移动到之前的某个位置,并使用heredoc将此代码转换为字符串。然后在它应该在的地方执行它。
  • 将所有内容合并在一行中并忘记缩进。在指令中间添加新行后,尝试用代码或类似的东西绘制一个矩形。
  • 测试代码。如果它停止工作,我很抱歉,您将永远无法再次阅读它。

无论如何,把代码弄乱就可以了。但这必须手动完成。

  • Replace all variable, method or class names for 1-letter names, just like a, b or c.
  • Do you know DRY? Forget it. Repeat parts of the code to make it bigger and more complicated to understand. Try to also write the same piece of code in many ways.
  • Transform simple integers and string on big expressions or calculations.
  • Define extra functions and use undef after or define existing functions before the real definition.
  • Add things that does nothing between the code, or code that does something followed by another that undoes it.
  • Move parts of the code to the somewhere before and use heredoc to transform this code to a string. Then execute it where it should be in.
  • Merge everything in one line and forget indentation. After put new lines in the middle of instructions, try to draw a rectangle with the code or something like that.
  • Test the code. If it stopped working, I'm so sorry, you will never be able to read it again.

Anyway, just make a mess in the code. But it have to be done manually.

泪痕残 2024-12-06 03:22:17

变量和方法名称拼写错误。不要浪费字符。

Misspell variable and method names. Don't wast characters.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文