c# etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

7 Nisan 2018 Cumartesi

C++ ile D3D Menu Yapımı [Hazır Proje ve .dll]

C++ ile D3D Menu

Merhaba arkadaşlar bugün C++ ile nasıl D3D Menu yapılır ondan bahsedicem.

İlk olarak D3D nedir ve ne işe yarar ondan bahsedicem.

D3D Menu Nedir?


D3D Menu genelde oyunlarda hile yapımında kullanılır. Oyunun arka planında çalışır ve oyun sırasında sizi rahatsız etmeden çalışır. 

Şimdi D3D Menu nasıl yapılır ona geçelim.

Kaynak kodlar biraz fazla olduğu için txt dosyasına koyup link olarak sizlere vereceğim.

D3D'de Menu'deki yazıları değiştirme;


Menu.cpp ile yapılacaktır. Zaten siz projeyi görünce anlayacaksınız neyin nerden yapılacağını.

Menu'ye ek hile eklemek için veya silmek için ise;


Bunu ise Menu.h'den yapılacaktır.

Hile aktif edildiğinde ise;


Örnek Kod;

if(H4CK.Hileler.rapidfire == 1)
{
DWORD Ptr = Menu.CSH + 0x11CF5B;
DWORD Value = 1574503796;
WriteProcessMemory(Process, (LPVOID)Ptr, &Value, 4,NULL);
}

Yukarıda Rapid Fire == 1 ise yani Rapid Fire aktif ise aşağıdaki kodu çalıştır diyoruz ve aşağıdaki kod ise bildiğiniz WriteProccessMemory ve DWORD. Yukarıdaki hile ise Wolfteam adlı oyunda yapılan bir hiledir. İsterseniz Wolfteamda hile yapabilirsiniz ama siz ben başka oyunda hile yapmak istiyorum diyorsanız Yukarıdaki 

DWORD Ptr = Menu.CSH + 0x11CF5B;

Kodunda Menu.CSH ve + işaretini silerek yapabilirsiniz. Cheat Engine'den bulduğunuz pointer ve value'yi ise Pointeri : 0x11CF5B burdan Value'yi ise DWORD Value = 1574503796'den değiştirebilirsiniz.

Menu tasarımını ise Menu.h'den yapabilirsiniz.

ve projeyi kaydetmeye geldi. Şimdi size rar dosyasında vermiş olduğum İnclude ve Lib dosyalarını projenize eklemeniz gerekicek. Onlarıda aşağıdaki sırayı izleyerek yapabilirsiniz.





Kayıt edip çıkın. Şimdi ise projenizi deneyebilirsiniz. Proje Görünümü;


Böyle olacaktır. Siz tasarımını falan kendiniz değiştirebilirsiniz. 

Rar dosyasında hem Projeyi hemde projenizi deneyebileceğiniz D3D Test ve DLL İnjector ekleyeceğim.

Aşağıdaki linkde Projede kullanılan kodlar, hazır proje ve projeyi deneyebileceğiniz D3D Test yanındada DLL İnjector bulunmaktadır.


Rar Şifresi : visualdersleri.blogspot.com

Eğer projede bir sorun veya kafanıza takılan bir sorun olursa yorumlarda belirtiniz.



20 Aralık 2017 Çarşamba

C# DLL İnjector Kaynak Kodları



  1. using System;
  2. using System.Diagnostics;
  3. using System.IO;
  4. using System.Runtime.InteropServices;
  5. using System.Text;
  6.  
  7. namespace GijSoft.DllInjection
  8. {
  9. public enum DllInjectionResult
  10. {
  11. DllNotFound,
  12. GameProcessNotFound,
  13. InjectionFailed,
  14. Success
  15. }
  16.  
  17. public sealed class DllInjector
  18. {
  19. static readonly IntPtr INTPTR_ZERO = (IntPtr)0;
  20.  
  21. [DllImport("kernel32.dll", SetLastError = true)]
  22. static extern IntPtr OpenProcess(uint dwDesiredAccess, int bInheritHandle, uint dwProcessId);
  23.  
  24. [DllImport("kernel32.dll", SetLastError = true)]
  25. static extern int CloseHandle(IntPtr hObject);
  26.  
  27. [DllImport("kernel32.dll", SetLastError = true)]
  28. static extern IntPtr GetProcAddress(IntPtr hModule, string lpProcName);
  29.  
  30. [DllImport("kernel32.dll", SetLastError = true)]
  31. static extern IntPtr GetModuleHandle(string lpModuleName);
  32.  
  33. [DllImport("kernel32.dll", SetLastError = true)]
  34. static extern IntPtr VirtualAllocEx(IntPtr hProcess, IntPtr lpAddress, IntPtr dwSize, uint flAllocationType, uint flProtect);
  35.  
  36. [DllImport("kernel32.dll", SetLastError = true)]
  37. static extern int WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] buffer, uint size, int lpNumberOfBytesWritten);
  38.  
  39. [DllImport("kernel32.dll", SetLastError = true)]
  40. static extern IntPtr CreateRemoteThread(IntPtr hProcess, IntPtr lpThreadAttribute, IntPtr dwStackSize, IntPtr lpStartAddress,
  41. IntPtr lpParameter, uint dwCreationFlags, IntPtr lpThreadId);
  42.  
  43. static DllInjector _instance;
  44.  
  45. public static DllInjector GetInstance
  46. {
  47. get
  48. {
  49. if (_instance == null)
  50. {
  51. _instance = new DllInjector();
  52. }
  53. return _instance;
  54. }
  55. }
  56.  
  57. DllInjector() { }
  58.  
  59. public DllInjectionResult Inject(string sProcName, string sDllPath)
  60. {
  61. if (!File.Exists(sDllPath))
  62. {
  63. return DllInjectionResult.DllNotFound;
  64. }
  65.  
  66. uint _procId = 0;
  67.  
  68. Process[] _procs = Process.GetProcesses();
  69. for (int i = 0; i < _procs.Length; i++)
  70. {
  71. if (_procs[i].ProcessName == sProcName)
  72. {
  73. _procId = (uint)_procs[i].Id;
  74. break;
  75. }
  76. }
  77.  
  78. if (_procId == 0)
  79. {
  80. return DllInjectionResult.GameProcessNotFound;
  81. }
  82.  
  83. if (!bInject(_procId, sDllPath))
  84. {
  85. return DllInjectionResult.InjectionFailed;
  86. }
  87.  
  88. return DllInjectionResult.Success;
  89. }
  90.  
  91. bool bInject(uint pToBeInjected, string sDllPath)
  92. {
  93. IntPtr hndProc = OpenProcess((0x2 | 0x8 | 0x10 | 0x20 | 0x400), 1, pToBeInjected);
  94.  
  95. if (hndProc == INTPTR_ZERO)
  96. {
  97. return false;
  98. }
  99.  
  100. IntPtr lpLLAddress = GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");
  101.  
  102. if (lpLLAddress == INTPTR_ZERO)
  103. {
  104. return false;
  105. }
  106.  
  107. IntPtr lpAddress = VirtualAllocEx(hndProc, (IntPtr)null, (IntPtr)sDllPath.Length, (0x1000 | 0x2000), 0X40);
  108.  
  109. if (lpAddress == INTPTR_ZERO)
  110. {
  111. return false;
  112. }
  113.  
  114. byte[] bytes = Encoding.ASCII.GetBytes(sDllPath);
  115.  
  116. if (WriteProcessMemory(hndProc, lpAddress, bytes, (uint)bytes.Length, 0) == 0)
  117. {
  118. return false;
  119. }
  120.  
  121. if (CreateRemoteThread(hndProc, (IntPtr)null, INTPTR_ZERO, lpLLAddress, lpAddress, 0, (IntPtr)null) == INTPTR_ZERO)
  122. {
  123. return false;
  124. }
  125.  
  126. CloseHandle(hndProc);
  127.  
  128. return true;
  129. }
  130. }
  131. }

C# AOB Scanner Yapımı

Kodlar ;

public class AOBScan 
{ 
    protected uint ProcessID; 
    public AOBScan(uint ProcessID) 
    { 
        this.ProcessID = ProcessID; 
    } 

    [DllImport("kernel32.dll")] 
    protected static extern bool ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] buffer, uint size, int lpNumberOfBytesRead); 
    [DllImport("kernel32.dll")] 
    protected static extern int VirtualQueryEx(IntPtr hProcess, IntPtr lpAddress, out MEMORY_BASIC_INFORMATION lpBuffer, int dwLength); 

    [StructLayout(LayoutKind.Sequential)] 
    protected struct MEMORY_BASIC_INFORMATION 
    { 
        public IntPtr BaseAddress; 
        public IntPtr AllocationBase; 
        public uint AllocationProtect; 
        public uint RegionSize; 
        public uint State; 
        public uint Protect; 
        public uint Type; 
    } 

    protected List<MEMORY_BASIC_INFORMATION> MemoryRegion { get; set; } 

    protected void MemInfo(IntPtr pHandle) 
    { 
        IntPtr Addy = new IntPtr(); 
        while (true) 
        { 
            MEMORY_BASIC_INFORMATION MemInfo = new MEMORY_BASIC_INFORMATION(); 
            int MemDump = VirtualQueryEx(pHandle, Addy, out  MemInfo, Marshal.SizeOf(MemInfo)); 
            if (MemDump == 0) break; 
            if ((MemInfo.State & 0x1000) != 0 && (MemInfo.Protect & 0x100) == 0) 
                MemoryRegion.Add(MemInfo); 
            Addy = new IntPtr(MemInfo.BaseAddress.ToInt32() + (int)MemInfo.RegionSize); 
        } 
    } 
    protected IntPtr Scan(byte[] sIn, byte[] sFor) 
    { 
        int[] sBytes = new int[256]; int Pool = 0; 
        int End = sFor.Length - 1; 
        for (int i = 0; i < 256; i++) 
            sBytes[i] = sFor.Length; 
        for (int i = 0; i < End; i++) 
            sBytes[sFor[i]] = End - i; 
        while (Pool <= sIn.Length - sFor.Length) 
        { 
            for (int i = End; sIn[Pool + i] == sFor[i]; i--) 
                if (i == 0) return new IntPtr(Pool); 
            Pool += sBytes[sIn[Pool + End]]; 
        } 
        return IntPtr.Zero; 
    } 
    public IntPtr AobScan(byte[] Pattern) 
    { 
        Process Game = Process.GetProcessById((int)this.ProcessID); 
        if (Game.Id == 0) return IntPtr.Zero; 
        MemoryRegion = new List<MEMORY_BASIC_INFORMATION>(); 
        MemInfo(Game.Handle); 
        for (int i = 0; i < MemoryRegion.Count; i++) 
        { 
            byte[] buff = new byte[MemoryRegion[i].RegionSize]; 
            ReadProcessMemory(Game.Handle, MemoryRegion[i].BaseAddress, buff, MemoryRegion[i].RegionSize, 0); 

            IntPtr Result = Scan(buff, Pattern); 
            if (Result != IntPtr.Zero) 
                return new IntPtr(MemoryRegion[i].BaseAddress.ToInt32() + Result.ToInt32()); 
        } 
        return IntPtr.Zero; 
    } 
}

Kod ;

AOBScan = newscan = new aobscan(process.id); 
int adress = (int can.AobScan(new byte[] {  0xEB, 0x88, 0xA8, 0xA8, 0x08, 0xCC, 0xFC , 0xCC, 0x89 }; 
MessageBox.Show(address.ToString("X"));


C# ve VB de shockwave flash Kullanımı

Selamun Aleyküm arkadaşlar günlük yazı düşdüğüm bloğumdan bazı sebeplerden dolayı 3-4 gündür makale düşemedim.Bugün bir projemde youtubedan video çekmem gerekti.C# ve VB de shockwave flash Kullanımı konusu bu ihtiyacımdan sonra aklıma geldi.İhtiyacımı karşıladım sizinde ihtiyacınız olabileceğini düşündüğümden anlatmaya karar verdim.

shockwave flash Kullanımı

Projemizin toolbox menüsüne gelip sağ tıklayıp choose item diyoruz.
Choose items tıklayıp .Com Components bölümünden Shockwave Flash Object ekliyoruz.
Daha sonra toolbox eklenmiş olan Shockwave flash objecten 2 adet formumuza ekliyoruz.Birini video için diğerini flash oyun için göstermek istiyorum.
Ekli DLL leri ve Koyduğum 2 adet Shockwave Flash object nesnemi görebilirsiniz.(tabi ben içini doldurdum :))



Böyle basit bir tasarım yapdım o siyah kutular shockwawe  flash nesneleridir.Sıra onlara link vermekte kodlarla verebileceğimiz gibi properties kısmındanda verebiliriz.
Burada Programım olan Obamanın videosunun linkini properties bölümündeki Movie kısmının karşısına yazdım.Ancak dikkat etmemiz gereken ufak bi nokta var youtubedan link kopyalarken ;
https://www.youtube.com/watch?v=2BSuTJH2_sA Bu şekilde normal link
https://www.youtube.com/v/2BSuTJH2_sA Buda düzenlediğimiz hali
linkteki watch?= kısmını silip v nin sağına bir “/” daha ekledik.Gayet Basit.Flash oyun için böyle bir editleme yapmamız gerekmiyor.
Burada direk swf linkini almamız yeterli nasıl alınacağını bilmiyorsanız.Herhangi bir oyun sitesine girin, Eklemek istediğiniz oyuna tıklayin.Açılır sayfada oyun yüklenince  sağ tıklayıp öğeyi denetleye basın Sonra ctrl f yapıp .swf yazın.Bulduğunuz dosya oyununuzun yolu bunu movide kısmına yapışdırın.Şimdi sonuca bakalım.
hem video dosyamızı hemde oyun dosyamızı formla birlikte otomatik olarak internetten çekip açtık.
Bunun yanı sıra kodlarlada çalıştırıp durdurabilirir,link değiştirebilirdik.Örnek olarak C# KODU
axShockwaveFlash1.Movie = "https://www.youtube.com/v/TBGkbDhE8wM";
axShockwaveFlash1.Play();

VB de ise noktalı virgülleri kaldırdığınız takdirde kodlar çalışacaktır.Saygılar arkadaşlar.Kafanıza takılan nokta yada aldığınız hata olursa yoruma yazabilirsiniz.Projenin Linkini aşşağıda paylaşıyorum arkadaşlar makaleyi yetersiz bulabilirsiniz eksik anlatımlar olabilir.Yorum yazarsanız eksiklikleri telafi etmeye çalışırım bunun dışında projeyi indirip incelemenizde sizin açınızdan iyi olacaktır.
Nerde işimize yarıyacak ?
Bildiğiniz üzere artık flash playerlar çok gözde neden derseniz en son devletimiz tüm dizi sitelerine engel koymuşdu.VPN ile girdiğin vakit ise filme tıkladında video açılma sitesinde engelle karşılaşıyorduk.Ancak bir kaç film sitesi filmleri flashplayer üzerinden çekerek bu problemdende kurtulmuştu.Bu sadece bir örnek sizde asp.net sitenizde yada masaüstü uygulamanızda projeniz doğrultusunda kullanabilirsiniz.
b2b yazılım vois media