Minggu, 25 September 2011

Cara Membuat DLL Masmed

Kali ini kita coba sampaikan tutorial membuat file DLL untuk keperluan game hackingdengan menggunakan Visual C++ 2008 Express secara sederhana.Adapun software yang diperlukan sebagai berikut, yang belum punya silakan download:* Visual C++ 2008 Express Edition (free)* Injector, dalam tutorial ini tool injector favorit ane adalah x1njectAdapun target game yang ada dalam tutorial ini adalah Point Blank, dengan contoh hack misimayor.Silakan ikuti langkah-langah di bawah ini:* Jalankan Visual C++ 2008 Express Edition, buat sebuah project dengan cara akses menuFile - New - Project atau dengan menekan tombol CTRL + SHIFT + N.# ada jendela New Project, pilih Empty Project (1) pada bagian Templates, kemudian padakolom Name masukkan nama project (2) dan klik tombol OK (3)# Project telah berhasil dibuat. Pada bagian Solution Explorer, klik kanan pada nama project(1), kemudian pilih menu Properties (2).# Jendela project properties akan tampil. Pada tree menu sebelah kiri, pilih ConfigurationProperties (1), kemudian bagian opsi Project Defaults, ubah opsi Configuration Type menjadiDynamic Library (.dll) (2), kemudian tekan tombol OK (3) untuk melakukan perubahan.# Pada jendela Add New Item yang tampil, pada bagian templates pilih C++ File (.cpp) (1), beri nama 'Main.cpp' (2) pada bagian kolom Name, kemudian tekan tombol OK (3).# Sebuah file bernama 'Main.cpp' berhasil dibuat. Silakan masukkan kode-kode di bawah ini pada file tersebut, kemudian simpan (save).# Berikutnya adalah membuat sebuah file bernama Main.cpp untuk memasukkan kode-kodeutama, dengan cara pilih direktori Source Files (1) pada bagian Solution Explorer, kemudianklik menu Project - Add New Item (2) atau dengan menekan tombol CTRL + SHIFT + A.
 
 #define _CRT_SECURE_NO_WARNINGS#include <windows.h>#include <tlhelp32.h>// definisikan variable dengan 'window title', 'window classname' dan modulchar *pProcessWindowTitle = "Point Blank";char *pProcessWindowClass = "I3VIEWER";char *pProcessModuleName = "PointBlank.i3Exec";// etc...UINT_PTR uipUserRankValue = 35; // major?UINT_PTR uipUserPointsValue = 999999; // OMG!UINT_PTR uiptrFinalRank, uiptrFinalPoints; bool isInitMmhMemory = true;DWORD dwProcessID;UINT_PTR uipMmhBaseAddress;HANDLE hProcess;DWORD GetModuleBase(LPSTR lpModuleName, DWORD dwProcessId){MODULEENTRY32 lpModuleEntry = {0};HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,dwProcessId);if(!hSnapShot)return NULL;lpModuleEntry.dwSize = sizeof(lpModuleEntry);BOOL bModule = Module32First( hSnapShot, &lpModuleEntry );while(bModule){if(!strcmp( lpModuleEntry.szModule, lpModuleName ) ){CloseHandle(hSnapShot);return (DWORD)lpModuleEntry.modBaseAddr;} bModule = Module32Next( hSnapShot, &lpModuleEntry );}CloseHandle( hSnapShot );return NULL;}// DeRef() = credit L. Spiro (MHS)UINT_PTR DeRef( UINT_PTR _uiptrPointer ) {UINT_PTR uiptrRet;if (!::ReadProcessMemory(hProcess, reinterpret_cast<LPVOID>(_uiptrPointer), &uiptrRet,sizeof(uiptrRet), NULL)) { return 0UL; }
 
return uiptrRet;}// inisialisasi prosesvoid InitApplicationProcess(){ bool isFindWindow = true;HWND hWnd = NULL;while(isFindWindow){if((hWnd = FindWindowA(pProcessWindowClass, pProcessWindowTitle)) != NULL) // jikawindow ditemukan{isFindWindow = false;}Sleep(500);}GetWindowThreadProcessId(hWnd, &dwProcessID);hProcess =OpenProcess(PROCESS_ALL_ACCESS|PROCESS_VM_OPERATION|PROCESS_VM_R EAD|PROCESS_VM_WRITE|PROCESS_QUERY_INFORMATION, FALSE,dwProcessID);}void MajorMissionHack(){if(isInitMmhMemory){uipMmhBaseAddress = GetModuleBase(pProcessModuleName, dwProcessID);// misal: pointer yang didapat = PointBlank.i3Exec+00471234 dengan offset 0xA12, tuliskanseperti di bawah!uiptrFinalRank = DeRef(uipMmhBaseAddress + 0x4XXXXX) + 0xXXX; // User rank  pointer - masked, sorry!uiptrFinalPoints = DeRef(uipMmhBaseAddress + 0x4XXXXX) + 0xXXX; // User points pointer - masked, sorry!isInitMmhMemory = false;}// WriteProcessMemory pada pointer 'rank', berikan nilai uipUserRankValue (35)::WriteProcessMemory(hProcess, reinterpret_cast<LPVOID>(uiptrFinalRank),&uipUserRankValue, sizeof(uipUserRankValue), NULL);// WriteProcessMemory pada pointer 'points', berikan nilai uipUserPointsValue (999999)LOL!::WriteProcessMemory(hProcess, reinterpret_cast<LPVOID>(uiptrFinalPoints),&uipUserPointsValue, izeof(uipUserPointsValue), NULL);

1 komentar:

  1. aww kk pasti knal aku
    aku kan yg suka chatingan sama kk

    :sup

    BalasHapus

Labels