- 21 Eyl 2022
- 222
- 72
Merhaba uzun zamandır forumda aktif değildim geri döndüm. Bu konumda size Memory.dll kullanarak C#'da bulduğunuz offsetleri koda dökmeyi gösterdim. En basit haliyle hilenizi programa bu şekilde dökebilirsiniz.
Hemen başlayalım. Önce projemizi debug sırasında yönetici olarak çalıştırmak için ufak bir ayarlama yapmamız gerekiyor.
Projemize sağ tıklayıp Add > Form diyoruz.
Çıkan ekrandan arama kısmına "manifest" yazıyoruz ve gösterdiğim kısmı "requireAdministrator" olarak değiştirip Ctrl + S ile kaydediyoruz. Bu kısmı kapatabiliriz artık.
Şimdi projemize Memory.dll'i yüklememiz gerekiyor. Bunun içinde projeye sağ tıklayıp "Manage NuGet Packages..." basıyoruz. Burada arama kısmına Memory.dll yazıp yüklüyoruz.
Projemize dönebiliriz artık şimdi sihri yapalım.
Önce Using ile Memory.dll'i programa bildiriyoruz.
Ben projeye CheckBox ve timer ekledim bunu aktif ettiğimde hile çalışacak siz TextBox'a yada Button'a da uyarlayabilirsiniz.
Önce Class çağırıyoruz ve değişken oluşturuyoruz.
Ardından Form1 başladığında çalışacak komut satırını gireceğiz.
Sıra son adıma geldi burada CheckBox'a tıkladığımda dönecek işlemi ayarlayacağım.
İşlem bu kadar sorularınız varsa sorabilirsiniz isterseniz textbox kullanıp değeri kendiniz de girebilirsiniz, timer kullanmadan direkt de çalıştırabilirsiniz bu işlem yeni başlayan arkadaşlar için mantığı öğretir.
Ekleme: Offset eklemek için 0x ile devam eden base address'in yanına , atın ve her Offset için aynı işlemi yapın. 0x1A2B,67,115 gibi...
Ekleme2: İstek olursa base adres ve ofset bulma yöntemlerini de detaylı şekilde paylaşırım. Benim yaptığım gibi yaparsanız oyunu her açışta bu değer değişir ve tekrar bulup programda güncellemeniz gerekir.
Ekleme3: Bu öğretici C#'da temel seviye kod bilgisine sahip insanların anlayacağı şekilde yazıldı. C# hakkında hiçbir şey bilmeyenler önce dilin temellerini öğrenebilir.
(Bu konuyu daha önce başka bir forumda da paylaştım. Daha önce denk gelenler "çalmış" demeden konunun bana ait olduğunu kanıtlayabilirim.)
Hemen başlayalım. Önce projemizi debug sırasında yönetici olarak çalıştırmak için ufak bir ayarlama yapmamız gerekiyor.
Projemize sağ tıklayıp Add > Form diyoruz.
Çıkan ekrandan arama kısmına "manifest" yazıyoruz ve gösterdiğim kısmı "requireAdministrator" olarak değiştirip Ctrl + S ile kaydediyoruz. Bu kısmı kapatabiliriz artık.
Şimdi projemize Memory.dll'i yüklememiz gerekiyor. Bunun içinde projeye sağ tıklayıp "Manage NuGet Packages..." basıyoruz. Burada arama kısmına Memory.dll yazıp yüklüyoruz.
Projemize dönebiliriz artık şimdi sihri yapalım.
Önce Using ile Memory.dll'i programa bildiriyoruz.
C#:
using Memory;
Ben projeye CheckBox ve timer ekledim bunu aktif ettiğimde hile çalışacak siz TextBox'a yada Button'a da uyarlayabilirsiniz.
Önce Class çağırıyoruz ve değişken oluşturuyoruz.
C#:
Mem hack = new Mem(); // Burada fonksiyonu çağırdık.
string speed = "0x07A87D9C"; // Burada speed değişkenine tırnak içinde offseti atadık, ben burada geçici pointer kullandım siz base adress'de kullanabilirsiniz başına x0 eklemeyi unutmayın bu byte olduğunu temsil eder aksi halde hata alırsınız.)
Ardından Form1 başladığında çalışacak komut satırını gireceğiz.
C#:
int PID = hack.GetProcIdFromName("Transformice.exe"); // Burada PID adında bir değişken oluşturup GetProcIdFromName fonksiyonu ile Program ID'sini PID değişkenine yazdırıyoruz.
if (PID > 0) // Burada koşul oluşturup PID değeri 0'dan büyük olursa Memory.dll'in PID'de tanımlı Process'i çalıştırmasını istiyoruz.
{
hack.OpenProcess(PID);
}
timer1.Start(); // Burada timer1'i çalıştırıyoruz.
timer1.Enabled = true; // Normale properties kısmından da manuel aktif edilebiliyor ama ben koda döktüm siz istersiz oradan Enable yapın.
Sıra son adıma geldi burada CheckBox'a tıkladığımda dönecek işlemi ayarlayacağım.
C#:
if (checkBox1.Checked) // Tekrar koşul oluşturuyoruz burada CheckBox seçilirse çalışacak kod bloğunu tanımladık.
{
hack.WriteMemory(speed, "int", "1"); // Burada hack değişkenine yazdırdığımız değeri "1" olarak değiştirmiş oluyoruz. CheckBox seçili olmazsa dondurulmuş 1 değeri tekrar dinamik hale döner ve hile kapanmış olur. İşlem bu kadar.
}
İşlem bu kadar sorularınız varsa sorabilirsiniz isterseniz textbox kullanıp değeri kendiniz de girebilirsiniz, timer kullanmadan direkt de çalıştırabilirsiniz bu işlem yeni başlayan arkadaşlar için mantığı öğretir.
Ekleme: Offset eklemek için 0x ile devam eden base address'in yanına , atın ve her Offset için aynı işlemi yapın. 0x1A2B,67,115 gibi...
Ekleme2: İstek olursa base adres ve ofset bulma yöntemlerini de detaylı şekilde paylaşırım. Benim yaptığım gibi yaparsanız oyunu her açışta bu değer değişir ve tekrar bulup programda güncellemeniz gerekir.
Ekleme3: Bu öğretici C#'da temel seviye kod bilgisine sahip insanların anlayacağı şekilde yazıldı. C# hakkında hiçbir şey bilmeyenler önce dilin temellerini öğrenebilir.
(Bu konuyu daha önce başka bir forumda da paylaştım. Daha önce denk gelenler "çalmış" demeden konunun bana ait olduğunu kanıtlayabilirim.)