NIEH CODENYA..
[code]#define _CRT_SECURE_NO_WARNINGS
#include
#include
// 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;
UINT_PTR uipUserPointsValue = 999999;
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(_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
; uiptrFinalPoints = DeRef(uipMmhBaseAddress + 0x4XXXXX) + 0xXXX; // User points pointer
isInitMmhMemory = false;
}
// WriteProcessMemory pada pointer 'rank', berikan nilai uipUserRankValue (35)
::WriteProcessMemory(hProcess, reinterpret_cast(uiptrFinalRank), &uipUserRankValue, sizeof(uipUserRankValue), NULL);
// WriteProcessMemory pada pointer 'points', berikan nilai uipUserPointsValue (999999) LOL!
::WriteProcessMemory(hProcess, reinterpret_cast(uiptrFinalPoints), &uipUserPointsValue, sizeof(uipUserPointsValue), NULL);
}
void LovelyLoopy()
{
// ok, berikan salam dulu! :D
MessageBox(0, "DLL berhasil di-inject. Lanjutkan!", "Hello World", MB_OK + MB_ICONASTERISK);
InitApplicationProcess();
while(1) // loop selamanya :D
{
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;
}
[/code]
d atas khusus d pergunakan d windows 7/ Vista
jika ingin d gunakan di windows XP ubah bagian ini
hProcess = OpenProcess(PROCESS_VM_OPERATION|PROCESS_VM_READ|PROCESS_VM_WRITE|PROCESS_Q UERY_INFORMATION, FALSE, dwProcessID);
kalo belum bisa. tanya dengan cara Komentar
3 Komentar
om nih kya gmna saya masih kurang jelas nih
Balastolong bntuan nya yah
Usaha sndiri napa sieh... dasar CHITER
Balasgan maksud nya ganti hProcess tuh pas dimnanya
Balasapakah setelahnya atau sebelumnya ? mohon jawab
Terimakasih telah berkomentar