Unknown

Halo All !!
Tutor ini saya tulis untuk ASM (Assembly) atau juga sering dikenal Jump Address
yg biasa dipakai untuk Membuat Hook agar Cheat tidak Detect(Terdeteksi Anti-Cheat)

Pertama Jika ada lah dalam penulisan/penerjamahan saya minta maaf.
Info Sumber Doc(Dokument) dapat dilihat pada Bagian bawah.
Jika ingin Copas Sertakana Sumber Doc dari mana Asal sumber Informasi
Saya yakin agan adalah Blogger sejati yg meghargai karya orang lain.
Mulai dari sini adalah Isi Inti dari posting saya.


//===========================================================================//


ini adalah
tutorial termasuk mengubah skrip AA sederhana, untuk codecave skrip.
Ini akan menjadi singkat dan simple.tidak mencakup hal-hal dll dalam hanya menggabungkannya dengan dll yang telah Anda buat.
Ok, mari kita mulai itu.

Mengambil Script drop Instant mudah ini.

CODE: SELECT ALL
//instant drop
// updated to MSEA 93 by nerrazzuri
[enable]
00ad0dd0:
add [eax],al
add [eax],al
add [eax],al
add [eax],al

[disable]
00af0dd0:
add [eax],al
add [eax],al
add [eax-71],al
inc eax

ini adalah
sekarang untuk mengkonversi ke C ++ Script, Anda harus mempunyai itu byte, yang terletak di tampilan memori Cheat Engine.  



CODE: SELECT ALL
add [eax], al //bytes 00 00
add [eax-71], al//bytes 00 40 8f
inc eax// bytes 40
 Byte harus, 00 00 00 00 00 40 8f 40. ini adalah [menonaktifkan] bagian, sedangkan untuk [mengaktifkan] bagian, kita melihat bahwa,
 
CODE: SELECT ALL
add [eax], al // bytes 00 00
Jadi, byte harus 00 00 00 00 00 00 00 00.
Buat variabel untuk alamat yang akan diedit dalam script.



CODE: SELECT ALL
DWORD dwInstantDropAddy = 0x00af0dd0;
Mendeklarasikan variabel yang akan menyimpan byte ketika hack diaktifkan.

CODE: SELECT ALL
BYTE Enabledbytes[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
Mendeklarasikan variabel yang akan menyimpan byte ketika hack dinonaktifkan.

CODE: SELECT ALL
BYTE Disabledbytes[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8f, 0x40};
Dan menulis sebuah fungsi untuk hacks/cheats.

CODE: SELECT ALL
void InstantDrop (__in BOOL bEnable)
{
     if(bEnable)
     {
           memcpy((void*)dwInstantDropAddy, Enabledbytes, sizeof(Enabledbytes));
     }
     else
     {
           memcpy((void*)dwInstantDropAddy, Disabledbytes, sizeof(Disabledbytes));
     }
}
sekarang Anda berhasil dikonversi script AA sederhana untuk C ++. : D


Kita akan langkah lebih maju, codecave, TBH, kadang-kadang saya mengalami kesulitan untuk mengkonversi beberapa script juga, tetapi dalam tutorial ini, saya hanya akan mengajarkan Anda bagaimana mengkonversi skrip yang saya tahu.

Kita gunakan skrip
full monster book. Berikut ini adalah itu.


CODE: SELECT ALL
[ENABLE] 
alloc(MonsterBook,24) 
registersymbol(MonsterBook) 

0095d048:
jmp MonsterBook

MonsterBook: 
mov eax,5
jmp 0095d04d

[disable] 
0095d048:
call 007018c0

dealloc(MonsterBook,24) 
unregistersymbol(MonsterBook)
Baiklah, untuk skrip codecave, Anda bisa menggunakan ASM sebaris untuk menyisipkan script langsung. Tapi pertama-tama, Anda harus mendefinisikan melompat secara global sehingga fungsi bisa melompat ke script sebaris ASM. 

CODE: SELECT ALL
#define jmp(frm, to) (int)(((int)to - (int)frm) - 5);
Lalu, kita mendeklarasikan address.

CODE: SELECT ALL
DWORD g_dwBook = 0x0095d048, g_dwBooKRet = g_dwBook + 5;
char  g_szBookMem[5];
Saya tahu banyak orang tidak benar-benar mengerti hal ini, hanya mengikuti tutorial dan akhirnya Anda akan mengerti. (^_^)
Membuat fungsi untuk sebaris ASM dan tambahkan script AA ke dalamnya.
.

CODE: SELECT ALL
__declspec(naked) void __stdcall MonsterBook()
{
    __asm 
    {
         mov eax,5
         jmp dword ptr [g_dwBookRet]
    }
}
Ok, Akan kujelaskan ini satu per satu, sebabnya.

CODE: SELECT ALL
g_dwBooKRet = g_dwBook + 5;
Itu karena codecave perlu untuk melompat ke alamat 0095d04d, yang memiliki 5 byte di address asli 0095d048.
Nah untuk

CODE: SELECT ALL
jmp dword ptr [g_dwBookRet]
Itu seperti, melompat sepatah kata bukannya byte (benar saya jika saya salah).
Maksudnya : meski salah tetap benar atau benar meskipun salah
Sekarang, kita perlu membuat fungsi untuk memanggil
baris ASM.

CODE: SELECT ALL
void tglMonsterBook(__in BOOL bEnable)
{
     memcpy(g_szBookMem, (void*)g_dwBook, 5)//copy clean memory
     if(bEnable)
     {
          *(BYTE*)  g_dwBook = 0xe9; // 0xe9 = jmp
          *(DWORD*)(g_dwBook + 1) = jmp(g_dwBook, MonsterBook); // jmp to cave
     }
     else
     {
           memcpy( (void*)g_dwBook, g_szBookMem, 5);//copy the original bytes back to the address
     }
}
(Pengulangan Penjelasan diatas)
Itu
seperti, melompat sepatah kata bukannya byte (benar saya jika saya salah).
Ini pada dasarnya bagaimana script codecave dapat ditulis dalam C ++. Akan kujelaskan apa yang ada dalam fungsi.


CODE: SELECT ALL
*(BYTE*)  g_dwBook = 0xe9;
Itu peyimpanan yang saya nyatakan adalah lompatan ke dalam Script baris assembly. Kita deklarasikan lompatan yang akan melompat ke codecave tersebut.

CODE: SELECT ALL
*(DWORD*)(g_dwBook + 1) = jmp(g_dwBook, MonsterBook);
Di sinilah akan melompat ke script codecave.

Nah itu saja dari tutorialnya

Author            :
Nerrazzuri dari MapleHacks
Translate By  :Deva Maulana
Sumber Doc   :
MapleHacks Halaman web asli lihat disini |VIEW|

[Comment Area]
Jangan lupa comment bro !!!

Subscribe to Posts | Subscribe to Comments

BiTDeMaCyber. Diberdayakan oleh Blogger.