Bu proje, 32-bit Windows uygulamalarında çeşitli API fonksiyonlarını hook eden bir DLL'dir. Hook işlemleri process içinde (in-process) gerçekleşir.
-
GetAdaptersInfo Hook:
- MAC adreslerini dinamik olarak değiştirir
- Her çağrıda rastgele MAC adresleri üretir
-
Discord RPC Hook:
- Discord_UpdatePresence fonksiyonunu hook eder
- Discord durum güncellemelerini engeller veya değiştirir
- Visual Studio 2022 (v143 toolset)
- Microsoft Detours kütüphanesi (32-bit)
- Windows SDK
- 32-bit (x86) derleme ortamı
SystemHooks/
├── src/
│ ├── dllmain.cpp
│ ├── HookManager.cpp
│ ├── MacAddressHook.cpp
│ └── DiscordRPCHook.cpp
├── include/
│ ├── IHook.h
│ ├── HookManager.h
│ ├── MacAddressHook.h
│ ├── DiscordRPCHook.h
│ └── detours.h
├── lib/
│ └── detours.lib
├── SystemHooks.vcxproj
├── SystemHooks.sln
├── .gitignore
└── README.md
Derleme sonrası:
build/
├── Debug/
│ └── SystemHooks.dll
└── Release/
└── SystemHooks.dll
-
Microsoft Detours kütüphanesini indirin:
- https://github.com/microsoft/Detours/releases adresinden son sürümü indirin
- İndirdiğiniz paketi açın
-
Gerekli dosyaları kopyalayın:
include/detours.h
→ projedekiinclude/
klasörünelib.X86/detours.lib
→ projedekilib/
klasörüne
- Solution dosyasını açın
- Platform olarak x86 seçin (önemli: sadece 32-bit desteklenir)
- Release konfigürasyonunu seçin
- Projeyi derleyin
- 32-bit hedef programı başlatın
- DLL'i inject etmek için aşağıdaki yöntemlerden birini kullanın:
- LoadLibrary injection
- Manual mapping
- Thread hijacking
- Diğer internal DLL injection yöntemleri
- DLL başarıyla yüklendiğinde, tüm hook'lar otomatik olarak aktif olur
IHook
arayüzünü implement eden yeni bir sınıf oluşturun- Header dosyasını
include
klasörüne ekleyin - Kaynak dosyayı
src
klasörüne ekleyin dllmain.cpp
'de hook'u HookManager'a kaydedin:
hookManager.RegisterHook(std::unique_ptr<IHook>(new YeniHook()));
- DLL sadece 32-bit process'lerde çalışır
- Internal hook kullanıldığı için process içinde çalışır
- Hook'lar merkezi olarak yönetilir
- Thread-safe tasarım
- Modüler ve genişletilebilir yapı
Bu DLL sadece test ve eğitim amaçlı geliştirilmiştir. Kötü amaçlı kullanımlardan kaçınılmalıdır. Internal DLL injection işlemi hedef programın çalışmasını etkileyebilir.