VALORAN VGC BYPASS

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Katılım
9 Ocak 2022
Tepki puanı
20
Konum
yazlık
Arkadaşlar selamlar kernel koda biraz daha vakit ayırıp daha iyi bir yapı oluşturdum bu diğer basic koda göre biraz daha gelişmiş bir kod tabiki üstüne eklemeler yapılabilir.



#include <ntddk.h>
#intrin.h dosyasını dahil et

#define VGK_DRIVER_NAME L"\\Sürücü\\vgk"
#define SÜRÜCÜ_ADI L"\\Aygıt\\vgk_PLZNOHACK"

VOID Yazma Korumasını Devre Dışı Bırak() {
__writecr0(__readcr0() & ~(1 << 16));
}

VOID EnableWriteProtection() {
__writecr0(__readcr0() | (1 << 16));
}

NTSTATUS HideDriver(PDRIVER_OBJECT SürücüNesnesi) {
Yazma Korumasını Devre Dışı Bırak();
SürücüNesnesi->SürücüKaldırma = NULL;
SürücüNesnesi->SürücüBaşlangıcı = NULL;
YazmaKorumasınıEtkinleştir();
DURUM_BAŞARISI'nı döndür;
}

NTSTATUS BaypasVGK() {
PDRIVER_OBJECT SürücüNesnesi = NULL;
UNICODE_STRING SürücüAdı;
RtlInitUnicodeString(&DriverName, VGK_DRIVER_NAME);

NTSTATUS Durumu = IoGetDeviceObjectPointer(&SürücüAdı, GENEL_OKUMA, NULL, &SürücüNesnesi);
eğer (!NT_SUCCESS(Durum)) {
Durum'u geri döndür;
}

HideDriver(SürücüNesnesi);
ObDereferenceObject(SürücüNesnesi);
DURUM_BAŞARISI'nı döndür;
}

VOID PreventHookDetection() {
PVOID* EtwRoutine = (PVOID*)MmGetSystemRoutineAddress(&RtlFindExportedRoutineByName);
eğer (EtwRutin && *EtwRutin) {
Yazma Korumasını Devre Dışı Bırak();
*EtwRutin = (PVOID)0xCCCCCCCCCCCCCCCC;
YazmaKorumasınıEtkinleştir();
}

PVOID* ObRegRoutine = (PVOID*)MmGetSystemRoutineAddress(&ObRegisterGeriÇağrıları);
eğer (ObRegRoutine && *ObRegRoutine) {
Yazma Korumasını Devre Dışı Bırak();
*ObRegRoutine = NULL;
YazmaKorumasınıEtkinleştir();
}
}

VOID YamaHipervizörü() {
__writemsr(0xC0000082, 0);
}

VOID YamaPatchGuard() {
BAŞ cr4 = __readcr4();
cr4 &= ~((BAŞ)0x10);
__writecr4(cr4);
}

NTSTATUS SürücüGirişi(PDRIVER_OBJECT SürücüNesnesi, PUNICODE_STRING KayıtYolu) {
BAŞVURULMAMIŞ_PARAMETRE(KayıtYolu);

NTSTATUS Durumu;

Durum = BypassVGK();
eğer (!NT_SUCCESS(Durum)) {
DbgPrint("[HATA] VGK atlanamadı: %08X\n", Durum);
Durum'u geri döndür;
}

YamaHipervizörü();
YamaPatchGuard();
KancaAlgılamayıÖnle();

SürücüNesnesi->SürücüKaldırma = SürücüKaldırma;

DURUM_BAŞARISI'nı döndür;
}

VOID SürücüUnload(PDRIVER_OBJECT SürücüNesnesi) {
BAŞVURULMAMIŞ_PARAMETRE(SürücüNesnesi);
}
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
131,599Konular
3,269,574Mesajlar
315,538Kullanıcılar
aka5Son Üye
Üst Alt