對於“shellcode”和“exploit”的解釋

      最近在瀏覽“邪惡八進制”的論壇的時候看到了一個朋友的帖子“如何編譯shellcode”。大家討論的熱情比較高,但我發現有一部分人實際上對於shellcode的理解還是不夠深刻的。

      首先“編譯shellcode”這個說法就有點不合適。
      shellcode其實在編寫的過程中就要讓自己的大腦充當編譯器了,而實際上shellcode是不需要編譯的,比如說如果你記得機器碼,那麼隨便打開一個pe文件,然後直接編輯代碼段的HEX值寫入彈窗的機器碼(shellcode),完事保存,只要你寫的沒錯誤就可以直接運行生效了。可見shellcode是cpu可以直接識別的數據,它並不需要被再次編譯,也就是說shellcode實際上是已經被編譯好了的代碼!
      理解shellcode這個詞要分2部分,一部分是“shell”,標明它的用途;另一部分是“code”,標明它的性質。

     

      另外很多高手也曾經說過“編譯shellcode”這樣的說法,這其實是指代了exploit,shellcode是作爲exploit程序的數據部分一起被編譯起來了。

      對於exploit程序,我的解釋是:指一種專門利用漏洞對計算機系統進行入侵的程序。它往往包含shellcode,但也有不包含shellcode的。

      希望我解釋清楚了,呵呵,歡迎大家討論。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章