Mimari genel bakış
Exoproc katmanlıdır. exoproc-utils ortak yardımcılar dışında, sistemin işlevsel tabanı bun-xffi'dir: adındaki **x**, cross-process'i; **ffi** ise...
Exoproc katmanlıdır. exoproc-utils ortak yardımcılar dışında, sistemin işlevsel tabanı bun-xffi'dir: adındaki x, cross-process'i; ffi ise C ABI, tür ve çağrı temelini ifade eder. Üst paketler bellek/çağrı erişimini, Win32 nesnelerini, thread yönlendirmeyi ve hook'ları bu temel üzerinde kurar.
Uygulama / örnek
│
nhook · minhook
│
accessors / nthread
│
winapi (Windows process, thread, context, memory sarmalayıcıları)
│
xffi (cross-process FFI: C ABI, struct, accessor, çağrı/bellek yüzleri)
│
Windows x64Accessor zinciri
IMemoryAccessor, read, write, alloc, free, scan ve call gibi işlemler için bun-xffi'nin tanımladığı ortak yüzdür. Bu sayede bir struct, belleğin yerel mi, başka süreçte mi, yoksa NThread üzerinden mi erişildiğini bilmez. bun-xffi yalnızca local bun:ffi çağrılarını sarmalamaz: struct, pointer, C function ve accessor soyutlamalarını uzak process belleği/çağrısı için de ortaklaştırır.
IndirectNThreadHostAccessor, NThread'i daha geniş bir middleware zincirine yerleştirir. Çağrı yönlendirme, machine-code havuzu, okuma/yazma aktarımı, tarama ve ABI marshalling aynı bun-xffi yüzünün arkasında birleşir. Amaç yalnızca fonksiyon çağırmak değil, bellek işlemlerini de seçilen yürütme modeline uydurmaktır.
Güvenlik ve kapsam
Exoproc; tersine mühendislik, güvenlik araştırması ve yetkili hata ayıklama gibi kontrollü senaryolar içindir. Başkasına ait yazılıma, üretim iş...
Tasarım kararları
Bir Struct alanının veya CFunction çağrısının, taşınma mekanizmasına göre farklı API'lere bölünmesi kolay görünür; ancak bu, her üst katmanın...