Skip to content
[ root@retasan:~# Tuesday, Jul 14, 2026 ]

> Retasan.id_

// Portal Berita Keamanan Siber Terkini

  • Kebijakan & Privasi
  • Kontak Retasan.id
  • Tentang Retasan.
Malware Exploit Development Kebijakan Keamanan Cyberwarfare Tools Data Breach Iklan
Tools

rop_scanner: Tool Offline ROP Gadget Hunter untuk Windows PE dengan Decoder Zydis dan Dukungan CFG

// by retasan-news June 30, 2026 5 min read

rop_scanner adalah tool offline berbasis command-line yang dirancang khusus untuk menemukan ROP, JOP, syscall, dan stack-pivot gadgets di dalam file PE Windows seperti DLL, EXE, SYS, dan bahkan file EFI. Tool ini ditulis dalam C++17 dan menggunakan Zydis sebagai decoder instruction-nya, menghasilkan output yang terdiri dari ranked gadgets dalam empat format berbeda: text, JSON, ROPgadget, atau dictionary Python siap pakai untuk pwntools. Keunggulan utamanya adalah kemampuannya untuk melakukan parsing secara langsung terhadap file PE dari disk tanpa pernah memuatnya ke dalam process address space, sehingga aman digunakan untuk menganalisis binary berbahaya tanpa risiko eksekusi.

Proyek ini terinsidirasi dari artikel «Hunting ROP Gadgets in Windows DLLs» oleh 0x12 Dark Development (@Salsa12__), namun merupakan implementasi C++17 yang independen dan diperluas. rop_scanner mengatasi empat tantangan utama dalam gadget hunting modern: pertama, MSVC tidak menghasilkan «convenient epilogues» secara natural — gadget seperti pop rcx ; pop rdx ; pop r8 ; pop r9 ; ret harus ditemukan melalui mid-instruction decoding pada byte boundary yang tidak wajar. Kedua, CFG (Control Flow Guard), XFG, dan CET Shadow Stack memfilter kandidat gadget secara agresif. Ketiga, bad bytes seperti \x00, \x0a, \x0d menghancurkan sebagian besar hasil dari scanner generik. Keempat, pencarian cross-module memungkinkan menemukan gadgets yang ada di semua module yang dimuat secara default.

Tool ini tersedia untuk tiga platform — Windows, Linux, dan macOS — dalam satu binary yang self-contained tanpa dependency runtime selain libc/libstdc++. Di Windows, terdapat dependency opsional pada dbghelp.dll untuk PDB resolution. Yang menarik adalah output yang dihasilkan bersifat bit-for-bit identik di ketiga platform untuk file PE yang sama — artinya researcher di Linux dapat menghasilkan daftar gadget yang identik dengan yang dihasilkan di Windows. rop_scanner juga menyertakan Qt6 GUI opsional dengan Qt5 fallback yang membangun dari source tree yang sama.

Versi terbaru saat ini adalah v0.7 yang dirilis pada 18 Juni 2026, dengan 47 stars dan 3 forks di GitHub. Tool ini telah menjalani pengujian cross-platform yang ketat, membuktikan bahwa ntdll.dll yang sama menghasilkan 2516 exports, 5679 pdata entries, dan 2197 CFG entries di MSVC Windows, AppleClang macOS, dan GCC Linux. Setiap ukuran struktur PE dijamin konsisten melalui static_assert di pe_types.h.

Tutorial Penggunaan rop_scanner

Untuk memulai menggunakan rop_scanner, Anda perlu membangun tool ini dari source. Persyaratan yang dibutuhkan adalah C++17 compiler dan CMake minimal versi 3.16. Zydis akan di-pull secara otomatis melalui FetchContent pada saat CMake configure pertama kali. Di Windows, buka Developer Command Prompt untuk VS 2022 dan jalankan perintah berikut untuk melakukan build:

cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release diikuti dengan cmake --build build. Binary yang dihasilkan akan berada di build\bin\rop_scanner.exe. Di Linux, install dependencies terlebih dahulu dengan sudo apt install -y cmake g++ make, lalu jalankan perintah build yang sama tanpa flag -G Ninja. Di macOS, cukup install CMake melalui Homebrew (brew install cmake), lalu jalankan build. Untuk membangun GUI, set environment variable GUI=1 sebelum menjalankan build script platform.

Scan sederhana dari satu file PE cukup dengan menjalankan ./build/bin/rop_scanner /path/to/ntdll.dll. Output awal akan menampilkan module passport yang berisi informasi arch, machine type, image base, jumlah sections, exports, pdata, dan CFG entries, diikuti oleh total gadgets yang ditemukan. Setiap gadget ditampilkan dengan kategori, skor, section, RVA, symbol dari EAT, enclosing function dari .pdata, raw bytes, dan disassembly dari Zydis.

Untuk pencarian spesifik, gunakan flag --filter yang mendukung substring search di asm, section, category, semantic, symbol, dan function. Contoh: --filter "pop rcx ; pop rdx ; pop r8" akan mencari gadget loader untuk Windows x64 calling convention. Gunakan --badbytes 00,0a,0d untuk memfilter gadget yang mengandung bytes berbahaya. Flag --min-score 75 hanya menampilkan gadget dengan skor di atas threshold, dan --limit 10 membatasi jumlah output.

Untuk pencarian cross-module yang menghasilkan gadget paling ubiquitous, gunakan mode batch: ./rop_scanner --dir C:\Windows\System32 --filter "syscall" --min-score 80 --no-symbols --limit 50. Mode batch akan melakukan deduplikasi gadgets berdasarkan asm across berbagai module dan mengurutkan berdasarkan module_count. Gadget di posisi teratas adalah yang paling stabil dan survive terhadap Windows update. Output --format pwntools menghasilkan dictionary Python yang bisa langsung di-import ke exploit script.

Analisa Retasan

rop_scanner mewakili evolusi signifikan dalam tooling exploit development untuk Windows. Sementara tool seperti ROPgadget, ropper, dan rp++ sudah lama menjadi standar industri, mereka memiliki keterbatasan fundamental untuk use case Windows spesifik: tidak ada dukungan CFG, tidak ada semantic classification, dan tidak ada mekanisme cross-module ranking. rop_scanner mengisi celah ini dengan pendekatan yang sangat terfokus — menjadi scanner terbaik untuk Windows PE dengan fitur yang tidak dimiliki kompetitornya.

Temuan menarik adalah bagaimana mid-instruction discovery menjadi kunci dalam gadget hunting modern. MSVC compiler menghasilkan function epilogue yang sangat bervariasi tergantung pada optimization level dan konfigurasi build. Gadgets yang dicari oleh exploit developer hampir tidak pernah ada sebagai clean function exit — mereka harus ditemukan sebagai side effect dari memulai decoder pada byte boundary yang tidak wajar di dalam tubuh fungsi yang tidak terkait. Kemampuan Zydis untuk melakukan full x86/x86_64 decoding termasuk VEX/EVEX dan operand memory arbitrer menjadi kunci untuk menemukan gadgets seperti write-mem dan read-mem yang tidak mungkin ditemukan oleh mini-decoder manual.

Dari perspektif defensif, rop_scanner juga menjadi alat yang berharga. Security engineer dapat melakukan baseline batch scan terhadap clean Windows image, menyimpan hasilnya, dan menjalankan ulang secara berkala. Setiap drift yang tidak sesuai dengan Windows Update yang terpublikasi menjadi sinyal — baik module update pihak ketiga dengan bytes baru, atau aktivitas yang mencurigakan. Kemampuan CFG-aware analysis memungkinkan audit terhadap indirect-call surface di dalam binary organisasi sendiri, mengidentifikasi JOP landing pads yang mungkin tidak diharapkan. Tool ini membuktikan bahwa eksploitasi dan pertahanan dapat berjalan berdampingan dengan tool yang sama, yang berbeda hanyalah perspektif dan tujuan penggunaannya.

rop_scanner mengubah Windows ROP dari aktivitas manual yang memakan waktu menjadi build step yang terukur — scan, filter, export, paste ke pwntools, eksekusi. Ini adalah pergeseran paradigma dalam exploit development workflow.

Sumber: GitHub – oxfemale/rop_scanner | core-jmp.org — ROP Gadget Hunting on Windows

Tags: CFG Gadget Scanner pwntools ROP Windows Exploit Zydis
Share:

retasan-news

← Previous IonStack: Full Chain Browser-to-Kernel Exploit Root Android 17 dengan Dua Vulnerability 0-day
Next → Pasar Monetisasi Vulnerability: Dari Bug Bounty Legal hingga Dark Web Marketplace -- Analisa Lengkap Riset Positive Technologies

Artikel Terkait

CAN-QA: Benchmark Question-Answering Pertama untuk Analisis Traffic CAN pada Kendaraan

CAN-QA: Benchmark Question-Answering Pertama untuk Analisis Traffic CAN pada Kendaraan

July 14, 2026
androidReverse: Suite Reverse Engineering Android yang Berjalan Sepenuhnya di Perangkat Mobile

androidReverse: Suite Reverse Engineering Android yang Berjalan Sepenuhnya di Perangkat Mobile

July 14, 2026
SAMDump: Tool Ekstraksi SAM dan SYSTEM dari Volume Shadow Copy dengan XOR Obfuscation

SAMDump: Tool Ekstraksi SAM dan SYSTEM dari Volume Shadow Copy dengan XOR Obfuscation

July 14, 2026

> leave_comment_

Your email address will not be published. Required fields are marked *

Copyright © 2026 Retasan | retasan.my.id

  • Kebijakan & Privasi
  • Kontak Retasan.id
  • Tentang Retasan.