星球 - 在 Python 中執行 shellcode

作者:jserv | 來自:Jserv's blog | 2012/5/12 22:32:00
其實這不是什麼新技巧,只是剛好最近研究 [PyPy],思考到若干低階處理的細節,就順道把這個在 Python 中執行 shellcode 的技巧分享出來,本文的實驗平台為 GNU/Linux x86/32-bit,採用 CPython 2.7.3,目的為實踐前文 [SM 版 Hello World] 中具備自我修改能力的程式 (self-modifying code)。 借助 [ctypes] 套件,我們很容易就能打造以下骨幹程式碼: from ctypes import * libc = CDLL('libc.so.6') mprotect = libc.mprotect getpagesize = libc.getpagesize codes = (c_ubyte * 32)( # (omitted)...