adapun software yang diperlukan sebagai berikut, yang belum punya silakan download:
[You must be registered and logged in to see this link.] injector, dalam tutorial ini tool injector favorit ane adalah
[You must be registered and logged in to see this link.]adapun target game yang ada dalam tutorial ini adalah point blank, dengan contoh hack misi mayor.
silakan ikuti langkah-langah di bawah ini:
jalankan visual c++ 2008 express edition, buat sebuah project dengan cara akses menu
file – new – project atau dengan menekan tombol
ctrl + shift + n.screenshot:
[You must be registered and logged in to see this image.]project telah berhasil dibuat. pada bagian solution explorer, klik kanan pada nama project (1), kemudian pilih menu
properties (2).screenshot:
[You must be registered and logged in to see this image.] properties
jendela
project properties akan tampil. pada tree menu sebelah kiri, pilih
configuration properties (1), kemudian bagian opsi project defaults, ubah opsi
configuration type menjadi
dynamic library (.dll) (2), kemudian tekan tombol
ok (3) untuk melakukan perubahan.screenshot:
[You must be registered and logged in to see this image.]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).screenshot:
[You must be registered and logged in to see this image.]sebuah file bernama
‘main.cpp‘ berhasil dibuat. silakan masukkan kode-kode di bawah ini pada file tersebut, kemudian simpan (save).screenshot:
[You must be registered and logged in to see this image.]berikutnya adalah membuat sebuah file bernama
main.cpp untuk memasukkan kode-kode utama, dengan cara pilih direktori
source files (1) pada bagian solution explorer, kemudian klik 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 modul
char *pprocesswindowtitle = "point blank";
char *pprocesswindowclass = "i3viewer";
char *pprocessmodulename = "pointblank.i3exec";
// etc...
uint_ptr uipuserrankvalue = 35; // major? <img src="http://forum-indonesia.com/wp-includes/images/smilies/icon_biggrin.gif" alt="
" class="wp-smiley">
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 proses
void initapplicationprocess()
{
bool isfindwindow = true;
hwnd hwnd = null;
while(isfindwindow)
{
if((hwnd = findwindowa(pprocesswindowclass, pprocesswindowtitle)) != null) // jika window ditemukan
{
isfindwindow = false;
}
sleep(500);
}
getwindowthreadprocessid(hwnd, &dwprocessid);
hprocess = openprocess(process_all_access|process_vm_operation|process_vm_read|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, tuliskan seperti 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, sizeof(uipuserpointsvalue), null);
}
void lovelyloopy()
{
// ok, berikan salam dulu! <img src="http://forum-indonesia.com/wp-includes/images/smilies/icon_biggrin.gif" alt="
" class="wp-smiley">
messagebox(0, "dll berhasil di-inject. lanjutkan!", "hello world", mb_ok + mb_iconasterisk);
initapplicationprocess();
while(1) // loop selamanya <img src="http://forum-indonesia.com/wp-includes/images/smilies/icon_biggrin.gif" alt="
" class="wp-smiley">
{
if(getasynckeystate(vk_f12)&1) // jika f12 ditekan
{
majormissionhack(); // panggil fungsi 'majormissionhack()'
sleep(500);
}
sleep(1);
}
}
bool winapi dllmain(hmodule hdll, dword dwreason, lpvoid lpreserved)
{
disablethreadlibrarycalls(hdll);
if(dwreason == dll_process_attach)
{
createthread(null, null, (lpthread_start_routine)lovelyloopy, null, null, null);
}
else if(dwreason == dll_process_detach)
{
closehandle(hprocess);
}
return true;
}
screenshot:
[You must be registered and logged in to see this image.]jika kode sudah disimpan (save), langkah berikutnya adalah membentuk file dll-nya dengan cara klik menu
build – build solution atau dengan menekan tombol
f7.screenshot:
[You must be registered and logged in to see this image.]setelah proses
build solution, pada jendela
output akan menampilkan hasil dari proses
compile/build tersebut, jika tidak ada kesalahan
(error) berarti kode-kode sudah benar dan file dll sudah terbentuk. jika ternyata ada kesalahan
(error), silakan periksa langkah-langkah sebelumnya jika ada yang terlewatkan.screenshot:
[You must be registered and logged in to see this image.]kemudian buka direktori tempat project anda disimpan, dalam tutorial ini ane simpan di direktori
d:\!projects!\sukasukaenter dan buka direktori yang bernama
debug di dalamnya (sesuaikan letak direktori anda).screenshot:
[You must be registered and logged in to see this image.]bisa kita lihat ada beberapa file yang terbentuk, namun yang kita perlukan hanyalah file yang berekstensi .
dll, karena file tersebut yang akan kita injeksikan ke proses program/game. agar tidak membingungkan, sekaligus ane
copy-kan file
injector-nya (
x1nject.exe) ke direktori tersebut.
kemudian jalankan injector (
x1nject.exe), ubah pada kolom ‘
what to inject‘ dengan nama proses program/game, (contoh:
pointblank.exe), pada bagian ‘
add to injection list‘ tambahkan file .
dll yang telah kita buat dengan menekan tombol
browse dan cari pada direktori
debug project kita.screenshot:
[You must be registered and logged in to see this image.]jalankan program/game yang akan kita injeksikan dengan .dll yang kita buat, dan apabila program/game telah berjalan, injector
x1nject.exe otomatis menginjeksikan file .dll tersebut.screenshot:
[You must be registered and logged in to see this link.]dan hasilnya adalah:
screenshot:
[You must be registered and logged in to see this link.]berikutnya kita coba hack misi mayor yang telah kita buat (lihat fungsi
lovelyloopy() dan
majormissionhack() pada kode untuk lebih jelas), dengan menekan tombol
f12 pada keyboard, kita lihat hasilnya pada gambar di bawah ini:
spoiler untuk bukti
Spoiler
[You must be registered and logged in to see this link.]spoiler untuk bukti2
Spoiler
[You must be registered and logged in to see this link.]dll injection kita telah bekerja!
semoga bisa membantu teman-teman semua, posted image jika berguna…!
happy cheating!
nb: pointer & offset pada fungsi
majormissionhack()
sengaja saya tidak tampilkan. silakan dimodifikasi jika ingin
menambahkan fungsi-fungsi lainnya (unlimited ammo, grenade dsb).
credits:
l. spiro (mhs) for
deref() function, jonita aka
l0l1c0n (inspirasi & f12 misi mayor-nya
[You must be registered and logged in to see this link.] [You must be registered and logged in to see this image.]