Cara membuat DLL injection Point Blank memakai Notepade

LANGSUNG AJALA,,, BLOG INI BAIK HATI BISA COPY PASTE..
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
Previous
Next Post »
3 Komentar
avatar

om nih kya gmna saya masih kurang jelas nih
tolong bntuan nya yah

Balas
avatar

Usaha sndiri napa sieh... dasar CHITER

Balas
avatar

gan maksud nya ganti hProcess tuh pas dimnanya
apakah setelahnya atau sebelumnya ? mohon jawab

Balas

Terimakasih telah berkomentar