Skip to content

Blobrunner

reversing shellcode

Ham shellcode’u PE olmadan çalıştırmak için Blobrunner (veya benzeri loader) kullanılır. Debugger attach ile API ve C2 gözlenir.

  1. Shellcode blob’unu dosyaya çıkar (offset/length bil).

  2. Blobrunner ile map et; breakpoint için debugger bağla.

  3. Network/API çağrılarını izle.

  4. Gerekirse emülasyon (scdbg/speakeasy) ile karşılaştır.

Terminal window
# PE içinden shellcode kes
dd if=sample.exe bs=1 skip=OFFSET count=LEN of=sc.bin
Terminal window
xxd sc.bin | head
Terminal window
file sc.bin
Terminal window
ent sc.bin 2>/dev/null
Terminal window
BlobRunner.exe sc.bin
Terminal window
# x64dbg attach → bp VirtualAlloc / connect / CreateFile
Entry: allocated RWX region; rip/eip shellcode başlangıcı
Terminal window
scdbg -f sc.bin -s -1
Terminal window
speakeasy -r -t sc.bin
# minimal loader (lab)
import ctypes
buf=open('sc.bin','rb').read()
r=ctypes.windll.kernel32.VirtualAlloc(0,len(buf),0x3000,0x40)
ctypes.memmove(r,buf,len(buf))
ctypes.cast(r,ctypes.CFUNCTYPE(None))()
Terminal window
# Linux
gcc -z execstack host.c -o host && ./host sc.bin
[ ] shellcode offset doğrulandı
[ ] loader ile map/execute edildi
[ ] debugger/API iz alındı
[ ] emülasyon ile davranış karşılaştırıldı