D3D Menu Nedir, C++ ile Nasıl Yapılır?

merlins

Üye
24 Mar 2019
172
0
Merhabalar;
Arkadaşlar bugün size D3D menü hakkında bilgi vereceğim ama başlamadan önce hile türleri ve uygulama biçimi hakkında kısa bir bilgilendirme tapacağım.​
İlk olarak;​
Hilelerin genel amacı oyundalar da duvarın arkasını görmek, aim, hız, can, mermi, para gibi değerleri değiştirmek, sabitlemek ve bunlara müdahil olmaktır. Bu noktada iki husus vardır.​
  1. Oyuna bağımsız olarak dışarıdan müdahale etmek (External).

    Avantajları:
    • Debug ve test işlemleri daha kolay yapılır
    • Uygulama üzerinde tam kontrole sahipsinizdir
    • Yapımı daha kolaydır
    • Tersine mühendislik bilgisi gerektirmiyor
    Dezavantajları:
    • internal’a göre daha yavaştır.
    • memory’yi okumak daha zordur
  2. Oyunun kendi fonksiyonlarını kullanarak müdahale (İnternal).

    Avantajları:
    • Hızlıdır
    • Memory okumak kolaydır
    • Oyunun fonksiyonlarına ulaşmak daha kolaydır
    Dezavantajları:
    • Debug sırasında logic hataları ayıklamak zaman alır
    • Enjekte etmek zorundasınızdır


İkinci olarak;​
Veriler:​
Veriler 2 yerde saklanır. Bunlardan ilki sunucular yani serverlar üzerinde saklanır ve bu sunucular yüksek güvenlik ile korunur bu sunucularda şu tarz veriler tutulur; Gerçek para ile alınan oyun paraları, insanların envanter bilgileri gibi önemli veriler tutulur. Diğeri ise işlemci yani client üzerinde tutulan bilgilerdir. Bu bilgilere ulaşmamız kolaydır çünkü bu verileri kendi bilgisayarımızdan çekeriz. Buradaki verilere örnek ise; can değerimiz, mermi sayınız, kalkan değeriniz, güç puanınız gibi verilerdir.

Peki oyunun verilerine nasıl ulaşabiliriz?
  • Verilere Cheat Engine kullanarak yada benzeri araçlar kullanarak ulaşabiliriz. Verilerin memory’deki yerlerini bulmamızı sağlayacaktır.
  • Offset ve pointer kullanımı önemlidir. Offset pointer kullanarak iki veri arasındaki byte uzaklıklarına denir ve bu işlemler Offsetler ile yapılır.
Bu kısımda kısaca hileler türleri ve uygulanma şekillerinden bazılarına değindim. Artık asıl konuya geçebiliriz

D3D Menu Nedir, c++ ile Nasıl Yapılır?
İlk olarak D3D açılımı Direct3D’dir. Microsoft tarafından geliştirilen üçboyutlu nesneleri renderlamak için geliştirilmiş bir programlama ara yüzüdür (API). DirectX’in bir altkümesidir.
D3d menü bir hack aracıdır. Oynadığınız oyunun arka planında çalışır ve sizi engellemez. Çalıştırdığınız zaman ekrandaki menüden özellikleri açıp kapatarak farklı üstünlükler kazanırsınız oyunda.


Nasıl yapılır?
İki farklı metodu vardır;
  1. Overlay
    • Windows API ile ara yüz oluşturulur
    • Oluşturduğumuz ara yüz çözünürlük boyut v.b ayarları yapılır
    • Direct3D ara yüzü kullanılır ve menü & menü içeriği oluşturulur.
    • External veri çeker.
  2. C++menu yapımı
    • Oyuna hooks atılır ve DirectX modüllerine erişilir
    • Erişimden sonra iki seçenek çıkıyor karşımıza
      1. DirectX SDK’larından alıp oyunun ara yüzüne eklemek gerekli çizimler yapılır
      2. DirectX kendi fonksiyonlarından kullanılarak oyun içine gönderilir.
    • 2 adet çizdirme yöntemi vardır
      • Framework
      • ImGUI
Kodlamaya başlamadan önce derleyici ayarları:​
İlk olarak microsoft directx 9.0 sdk (summer 2004) dosyasını internetten .rar uzantısını indirip
Program files(x86) içine atıyoruz​


Sonra dosyaya sağ tık yapıp buraya çıkar diyoruz bu dosyanın için de bizim için gerekli olan header filelar ve kütüğhaneler var.​


Bu işlemden sonra derleyicimizi açıp yeni bir proje oluşturuyoruz.​


Projemizin tipini Windows Desktop Wizard olarak seçip ilerle diyoruz.​


Progje ismini ve kaydetmek istediğimiz yeri seçip oluştur diyoruz.​


Sonra önümüze gelen bu ekrandan uygulamanın uzantısını Dynamic Link Library(.dll) olarak seçip uygulama seçeneklerinden ise Precompiled header seçiyoruz​


Ve projemiz oluşturulmuş oluyor. Oluşturduğumuz projemize sağ tık yapıp özellikler kısmını açıyoruz.​


Burada bizim için önemli olan ayarları yapacağız arkadaşlar. Konfigürasyon özelliklerinden genele tıklayıp konfigürasyon türüne bakıyoruz Dynamic Library (.dll) olmalı.​


Sonra gelişmiş kısmına tıklayıp Character Set’i Use Multi-Byte Character Set olanı seçiyoruz.​


Son işlem olan ilk başta indirip program files(86x) çıkardığımız kütüphaneleri ve header file’ları tanımlamak. Vc++directories kısmına gelip include directories ve library directories kısmını değiştirmektir. Üstüne tıklayıp en sağ tarafta ok işaretine tıklarsan <Edit..> kısmı gelir ve orayada tıklarız.​


Tıkladıktan sonra aşağıdaki pencere açılır. Kırmızı ok işareti ile yere yani dosya açma/ekleme yerine tıklıyoruz ve mavi ok ile gösterdiğim 3 noktaya tıklyoruz.​


Include directories için kurduğumuz SDK içindeki Include klasörünü ekliyoruz.​


library directories için de aynı işlemi yapıpprogram files(x86) içine kurduğumuz SDK dosyasının içindeki Lib klasörünü ekliyoruz .​


Ve bütün ayarlarımız bitmiş oluyor artık kendi hooklarınızı yazıp menünüzü oluşturabilirsiniz. Kodlarken GitHub'tan yararlanabilirsiniz açık kaynak kodlarını görebileceğiniz bir kaç proje mevcuttur.​


Kodlamaya Başlamadan önce araştırıp bakmanız gereken linkleri:

 
Son düzenleme:

DarkHawk06

Uzman üye
12 Şub 2016
1,046
8
Pandora
Cevap: D3D Menu Nedir, C++ ile Nasıl Yapılır? //merlins

Elinize sağlık çok güzel konu olmuş. Aklıma takılan bir soru var. Diğer playerlerın yerini gösteren algoritma nasıl işliyor. Mantığını kavrayamadim. Yazılımcı değilim ama hobi olarak hayatımın geri kalanininda bu işleri yapmak isterim. 2. Bir konu gelecek mi ? Örneğin uygulamalı bir oyun üzerinden anlatılırsa, net monitore ekmek banabilirim.
 
Son düzenleme:

PourLa

Uzman üye
27 Mar 2016
1,659
30
Cevap: D3D Menu Nedir, C++ ile Nasıl Yapılır? //merlins

Ellerin dert görmesin
 

merlins

Üye
24 Mar 2019
172
0
Elinize sağlık çok güzel konu olmuş. Aklıma takılan bir soru var. Diğer playerlerın yerini gösteren algoritma nasıl işliyor. Mantığını kavrayamadim. Yazılımcı değilim ama hobi olarak hayatımın geri kalanininda bu işleri yapmak isterim. 2. Bir konu gelecek mi ? Örneğin uygulamalı bir oyun üzerinden anlatılırsa, net monitore ekmek banabilirim.

Her oyuncunun 3 boyutlu bir objeye sahip ve objenin 3 eksenli değerleri var bu değerler üstünde oynanarak onu görünür kılıyorlar.Konunun devamı gelir mi bilmiyorum hocam Windows API programlamak biraz karmaşık ve ileri seviye bilgi birikimi gerektiriyor ilginiz için teşekkür ederim

Ellerin dert görmesin

Teşekkür ederim üstadım
 
Moderatör tarafında düzenlendi:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.