【问题标题】:How do I Read Code Consisting Entirely of Punctuation?如何阅读完全由标点符号组成的代码?
【发布时间】:2020-01-24 05:22:47
【问题描述】:

https://security.stackexchange.com/questions/224673/can-malicious-code-fit-in-14-bytes,其中一位cmets在恶意逻辑设置中提到了以下14个字符的代码示例:

:(){ :|:& };:\n

没有提供其他上下文。当然,这在谷歌上是不可能的。我不是该网站的成员,因此我无法要求原始评论者进行澄清。

所以,

  • 这段代码有什么作用?如果不明显,为什么它是恶意的?
  • 这是什么语言?
  • 以后,面对一堵标点墙,如何找出以上两个?是否有用于此的网站/工具,或其他一些合理的方法?

【问题讨论】:

    标签: security deobfuscation


    【解决方案1】:

    这段代码有什么作用?如果不明显,为什么它是恶意的?

    您提到的代码是Linux fork bomb。分叉炸弹是用于对系统进行拒绝服务攻击的功能。

    让我们分解代码:

    Linux bash 函数的基本结构是:

    function(){
     arg1=$1
     arg2=$2
     echo 'Hello'
     #perform_something on $arg
    }
    

    将 fork 炸弹函数与上述 bash 函数的语法进行比较,如下所示:

    :(){
    :|:&
    };:\n
    

    地点:

    :()

    它定义了一个名为“:”的函数。

    :|:

    函数“:”递归调用自身并将输出通过管道传递给函数“:”的另一个调用(这使得叉子炸弹无法阻止,除非你重新启动系统)。

    &

    这会将函数执行置于后台。

    ;

    ;终止函数。

    它在没有参数的情况下调用函数(叉子炸弹),因为叉子炸弹函数不需要参数来运行。

    这是什么语言?

    语言是 Bash。

    以后,面对一堵标点墙,我该如何找出以上两个?是否有用于此的网站/工具,或其他一些合理的方法?

    这需要你使用谷歌搜索并分解标点字符串。

    警告:不要在您的 Linux 系统上运行此代码,因为除非您重新启动它,否则它会导致您的系统崩溃和无响应。

    【讨论】:

    • 有一件事:谷歌搜索任何数量的标点符号似乎都是徒劳的,特别是如果您无法单独识别语言。否则,很好的解释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-21
    • 2013-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多