2014-01-21 74 views
-3

我想拿出在Perl的正則表達式來捕獲以下fork炸彈命令:在Perl的正則表達式來捕捉fork炸彈命令

:(){ :|:& };: 

下面是我想出了。

:\s*(\s*)\s*{\s*:\s*|\s*:\s*&\s*}\s*;.*: 

我同意這個正則表達式有限制。叉炸彈命令可以很容易地改變,給定的正則表達式不會捕獲它。然而,正則表達式是一個要求。有沒有更好的方法來捕捉這個特定的Perl?

+6

有什麼意義?你改變了一下,它仍然是一個叉形炸彈,但正則表達式不會識別它。 –

+2

嘗試用正則表達式捕獲它最終是徒勞的。不要從不受信任的源運行shell命令。 – duskwuff

+0

您是否試圖捕獲*正確*上述命令或任何*叉炸彈命令與您的正則表達式? –

回答

3

中平凡:

/\Q:(){ :|:& };:/ 

現在告訴我們你真正想做到:你想匹配的內容從確切的文本類型的變化。如果你能用英文來形容它,你就有機會獲得它的正則表達式;如果沒有,不是。

+0

謝謝。我知道\ Q返回所有下面的非單詞字符的值。然而,如果中間有額外的空格,你的正則表達式不會捕獲叉式炸彈。最後,我想創建一個正則表達式來捕獲給定的叉式炸彈,即使函數名稱「:」不同。 – user3217295