Mohon maaf kepada teman-teman atau pengunjung blog ini apabila ada komentar berupa pertanyaan atau request yang belum saya tanggapi. Adminnya lagi sibuk ngepet..

Jumat, 05 Oktober 2012

Cara membuat DLL injection Point Blank memakai Notepade

Posted by Unknown 19.18, under | No comments


LANGSUNG AJALA,,, BLOG INI BAIK HATI BISA COPY PASTE..
NIEH CODENYA.. NI KODENYA


[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

0 komentar:

Posting Komentar