Tools :
- Cheat Engine
- Microsoft Visual C++ 2006 / DevC++
- Otak ( Harus sabar ngotak-atik =D )
- Kopi ( Biar gak ngantuk =D )
Steps :
- Siapkan dulu Microsoft Visual C++ 2006 / DevC++ nya.
- Siapkan juga AOB, Address, Offset Ayodance yang terbaru (Setiap patch address dan offset ganti). AOB, Address, dan Offset bisa disearch pakai Cheat Engine.
- Buka MVC++6.
- Buat project baru, beri nama terserah kalian.
- Buat file C++. Beri nama "maindll".
- Copas code berikut : (SC dibawah ini hanya bisa dicompile di MVC++6. Jika kalian compile di MVC++8/10 atau DevC++ makan nanti akan terjadi error)
- Replace offset lama diatas dengan offset baru.
Contoh : #define OFS_PF 0x4FB432 Ganti font yang berwarna merah 4FB432 dengan offset baru. Lakukan juga pada "#define" (Offset) yang lainnya. Untuk NPC tidak usah diganti karena itu offset tetap. Untuk Base silahkan diganti dengan pointer yang baru. Dan untuk AOB AutoKey ON/OFF silahkan ganti dengan AOB yang baru. Karena AOB di atas adalah AOB lama. Untuk keterangan lainnya silahkan comment di SCnya. - Lalu compile..
- *Jeng..Jeng..* Jadi dah DLL Hacknya =D. Sekarang tinggal bikin Injectornya =D. Untuk injector silahkan cari di Google ya =D.
//Edited By -Red_Shadow- Yohanes = My Old Alias (Sekarang dah pensi =D)
#define WIN32_LEAN_AND_MEAN //buang yg tidak berguna
#include <windows.h> // include untuk createthread
#include <stdio.h>
#include <stdlib.h>
#define OFS_PF 0x4FB432
#define OFS_PFBR 0x4FADA7
#define OFS_BU 0x4FAE50
#define OFS_OTP 0x4FB470
#define OFS_PANG 0x4FAE50
#define OFS_PIN 0x5A4DAC
#define OFS_Autokey1 0x3AFEC7
#define OFS_Autokey2 0x3AFEE6
#define OFS_BASE 0xE69C20
#define OFS_NPC1 0x111
#define OFS_NPC2 0x221
#define OFS_NPC3 0x331
#define OFS_NPC4 0x441
#define OFS_NPC5 0x551
LPTSTR ModulGame = "Audition.exe";
//////////////assembly /////////////////////
void Patch(void *adr, void *ptr, int size)
{
DWORD OldProtection;
VirtualProtect(adr,size,PAGE_EXECUTE_READWRITE, &OldProtection);
memcpy(adr,ptr,size);
VirtualProtect(adr,size,OldProtection, &OldProtection);
}
///////////write memory////////////////////
void WritePointer(unsigned long ulBase, int iOffset, int iValue)
{
if (!IsBadReadPtr((VOID*)ulBase, sizeof(unsigned long)))
{
if (!IsBadWritePtr((void*)(*(unsigned long*)ulBase + iOffset), sizeof(unsigned long)))
{
*(int*)(*(unsigned long*)ulBase + iOffset) = iValue;
}
}
}
int __stdcall Clone(void)
{
DWORD dwPB = (DWORD)GetModuleHandleA(ModulGame);
if (dwPB > 0) {
WritePointer(dwPB + (DWORD)OFS_BASE, (OFS_NPC1), 0x03);
WritePointer(dwPB + (DWORD)OFS_BASE, (OFS_NPC2), 0x03);
WritePointer(dwPB + (DWORD)OFS_BASE, (OFS_NPC3), 0x03);
WritePointer(dwPB + (DWORD)OFS_BASE, (OFS_NPC4), 0x03);
WritePointer(dwPB + (DWORD)OFS_BASE, (OFS_NPC5), 0x03);
// unhook biar gk kedeteck HACKSHIELD
}
return 0;
}
DWORD WINAPI MemPacth(LPVOID param) // Perulangan
{
while (1) { // Jika nilai 1 atau True jalankan fungsi dibawah ini !
if (GetAsyncKeyState(VK_F3)&1) {
MessageBeep(MB_ICONINFORMATION);
DWORD adrMin1, adrMin2 = 0;
DWORD dwPB = (DWORD)GetModuleHandleA(ModulGame);
if (dwPB > 0) {
adrMin1 = dwPB + (DWORD)OFS_PF;
Patch((void *)(adrMin1),(void*)(PBYTE)"\x00\x00\x00\x00\x7D\x3F\x33\x33", 8);
adrMin1 = dwPB + (DWORD)OFS_PFBR;
Patch((void *)(adrMin1),(void*)(PBYTE)"\x99\x99\x99\x99", 4);
adrMin1 = dwPB + (DWORD)OFS_BU;
Patch((void *)(adrMin1),(void*)(PBYTE)"\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x14", 28);
adrMin1 = dwPB + (DWORD)OFS_OTP;
Patch((void *)(adrMin1),(void*)(PBYTE)"\xFF", 1);
adrMin1 = dwPB + (DWORD)OFS_PANG;
Patch((void *)(adrMin1),(void*)(PBYTE)"\xFF", 1);
}
}
if (GetAsyncKeyState(VK_F4)&1) {
MessageBeep(MB_ICONINFORMATION);
DWORD adrMin1, adrMin2 = 0;
DWORD dwPB = (DWORD)GetModuleHandleA(ModulGame);
if (dwPB > 0) {
adrMin1 = dwPB + (DWORD)OFS_PF;
Patch((void *)(adrMin1),(void*)(PBYTE)"\x7D\x3F\x33\x33\x73\x3F\x9A\x99", 8);
adrMin1 = dwPB + (DWORD)OFS_PFBR;
Patch((void *)(adrMin1),(void*)(PBYTE)"\x03\x02\x01\x00\x01\x02\x03\x00\x01", 9);
adrMin1 = dwPB + (DWORD)OFS_BU;
Patch((void *)(adrMin1),(void*)(PBYTE)"\x00\x00\x00\x0F\x00\x00\x00\x1B\x00\x00\x00\x28\x00\x00\x00\x37\x00\x00\x00\x03\x00\x00\x00\x08\x00\x00\x00\x14", 28);
adrMin1 = dwPB + (DWORD)OFS_OTP;
Patch((void *)(adrMin1),(void*)(PBYTE)"\x3F", 1);
adrMin1 = dwPB + (DWORD)OFS_PANG;
Patch((void *)(adrMin1),(void*)(PBYTE)"\x05", 1);
}
}
if (GetAsyncKeyState(VK_MENU)&&GetAsyncKeyState(VK_F1)&0x8000) {//Autokeyon
MessageBeep(MB_ICONINFORMATION);
DWORD adrMin1, adrMin2 = 0;
DWORD dwPB = (DWORD)GetModuleHandleA(ModulGame);
if (dwPB > 0) {
adrMin1 = dwPB + (DWORD)OFS_Autokey1;
Patch((void *)(adrMin1),(void*)(PBYTE)"\x8B\x17\x89\x11\x85\xD2\x74\x32\x8B\x44\x24\x0C\x48\x3B\xD0\x7C", 16);
adrMin1 = dwPB + (DWORD)OFS_Autokey2;
Patch((void *)(adrMin1),(void*)(PBYTE)"\x1C\x07\x89\x18\x8B\x08\x90\x90\x46\x83\xC0\x04\x3B\xF2\x72\xEF", 16);
}
}
if (GetAsyncKeyState(VK_MENU)&&GetAsyncKeyState(VK_F2)&0x8000) {//Autokeyoff
MessageBeep(MB_ICONINFORMATION);
DWORD adrMin1, adrMin2 = 0;
DWORD dwPB = (DWORD)GetModuleHandleA(ModulGame);
if (dwPB > 0) {
adrMin1 = dwPB + (DWORD)OFS_Autokey1;
Patch((void *)(adrMin1),(void*)(PBYTE)"\x3B\x17\x75\x36\x85\xD2\x74\x32\x8B\x44\x24\x0C\x48\x3B\xD0\x7C", 16);
adrMin1 = dwPB + (DWORD)OFS_Autokey2;
Patch((void *)(adrMin1),(void*)(PBYTE)"\x08\x8B\x1C\x07\x3B\xCB\x75\x08\x46\x83\xC0\x04\x3B\xF2\x72\xEF", 16);
}
}
DWORD adrMin1, adrMin2 = 0;
DWORD dwPB = (DWORD)GetModuleHandleA(ModulGame);
if (dwPB > 0) {
adrMin1 = dwPB + (DWORD)OFS_PIN;
Patch((void *)(adrMin1),(void*)(PBYTE)"\x00", 1);
}
Sleep(5); // Berikan jeda
}
return (0); // unhook
}
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
if (dwReason == DLL_PROCESS_ATTACH)
{
DisableThreadLibraryCalls(hDll);
if(dwReason == DLL_PROCESS_ATTACH){//jangan lupa Thanks To nya..
MessageBox(0, "Created By Yohanes", "-Red_Shadow- Yohanes", MB_OK + MB_ICONINFORMATION );
MessageBox(0, "HHK VIP Member\n -Red_Shadow-", "Thanks to", MB_OK + MB_ICONINFORMATION );
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)MemPacth, 0, 0, 0);
//kuncinama
char strDLLName [_MAX_PATH];
GetModuleFileName(hDll, strDLLName , _MAX_PATH);
if (strstr(strDLLName, "SpecialHack6069.dll") <= 0) {//nama dll asli
// tampilkan pesan, kalo dll nya sdh bukan asli / sudah di rename
MessageBox(0, "Hayo...!!!", "", 0);
MessageBox(0, "Mau Rename ya???", "", 0);
MessageBox(0, "Ketauan ya???", "", 0);
MessageBox(0, "Makanya klo ngerename jgn sampe ketauan....", "", 0);
ExitProcess(0);//ERROR
}
}
else if(dwReason == DLL_PROCESS_DETACH)
{
}
}
return TRUE;
}
Jika terjadi error silahkan contact saya. Untuk contactnya silahkan lihat di Profile Blogger saya =D.
NB : Tidak menerima pertanyaan seorang bocah :p .
0 komentar:
Speak up your mind
Tell us what you're thinking... !