I Will Be Teaching You How To Make A Base Enjoy!
First:
The .DLL Main Input:
Code:
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved ) {
DisableThreadLibraryCalls(hDll);
char msg[10] = {unic[5],unic[0],unic[6],unic[5],unic[4],unic[1],unic[3],unic[1],unic[2]};
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)runner, NULL, NULL, NULL);
}
return true;
}
This is just a simple .dll main folks!
And it will create a thread called "runner"
Check if CShell is Loaded:
Wait a while for cshell to get loaded
Code:
Sleep(9800);
If you have slow com., no worries, just wait for it.
Code:
BOOL WINAPI runner(LPVOID) {
Sleep(9800);
try {
DWORD dllfile = (DWORD)GetModuleHandleA("Cshell.dll");
if(dllfile == false) {
throw 1;
}
}
catch (int error) {
switch(error) {
case 1:
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)runner, NULL, NULL, NULL);
return false;
default:
//Unkown error!
return false;
}
}
Beep(1000,1000);
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)doyourstuffhere, NULL, NULL, NULL);
return true;
}
Then this will try to load the CShell.dll
If CShell is loaded. It will launch a new thread “doyourstuffhere”. The existing thread will finish. So you have a “clean start”.
Hack Thread:[/COLOR]
Code:
DWORD WINAPI doyourstuffhere(LPVOID param) {
}
Just Define The Thread
How To Change Memory:
Load CShell:
Code:
DWORD cshell = (DWORD)LoadLibraryA( "CShell.dll" );
Make A Pointer To A Class:
Code:
DWORD Wapenclass = *(PDWORD)(cshell + 0xA65EE8);
Then the Basic Player:
Code:
if(Playerbasic) {
*(float*)(Playerbasic + 0x88) = (float)0;
*(float*)(Playerbasic + 0x8C) = (float)0;
*(float*)(Playerbasic + 0x90) = (float)0;
*(float*)(Playerbasic + 0x94) = (float)0;
}
Other Player:
Code:
if(Playercl) {
*(float*)(Playercl + 0x04) = (float)0;
}
The Weapon Array:
Code:
if(Wapenclass) {
for(int i=0 ; i<533 ; i++) {
DWORD curwapen = *(DWORD*)(Wapenclass +(4*i));
if (curwapen) {
*(float*)( curwapen + 0x2698) = (float)1;
*(float*)( curwapen + 0x269c) = (float)1;
}
}
}
}
WallClass:
Code:
if(Wallclass) {
for(int i = 0;i<64;i++) {
*(float*)(Wallclass+(i*0x04F4)+0x04E8) = (float)1; //String is "EdgeShotEnabled"
*(float*)(Wallclass+(i*0x04F4)+0x04EC) = (float)1; //String is "WallShotEnabled"
*(float*)(Wallclass+(i*0x04F4)+0x04F0) = (float)1; //String is "PerfectWallShotEnabled"
}
}
}
Make A Pointer To The Class By:
Code:
DWORD Wapenclass = *(PDWORD)(cshell + 0xA65EE8);
DWORD Wallclass = *(PDWORD)(cshell + 0xA65ED4);
DWORD Playerbasic = *(PDWORD)(cshell + 0x9FF160);
DWORD Playercl = *(PDWORD)(cshell + 0xA65ECC);
How does that pointing part work?
You just make a pointer to the location you want to change. Then you make it what ever you want.
Thats All
Sticky Or What ?