Find LT pointer
Unpack cshell.dll
Make your own base
[Source] Pixelsearth Triggerbot
Working source after 1051 patch
Searth in cshell.dll a command like CursorCenter 0, Dubbel click on it. Go 2 addresss up, and there it is in the [].
Video:
Video:
Unpack cshell.dll
We are going to unpack cshell.dll
First of al we need to load cshell.dll in to an other proces.
We do this becouse the we don't need to unpack it manualy, and this is an easy way.
So we need to make a script that loads cshell.dll we can do that easy with c++:
First of al we need to load cshell.dll in to an other proces.
We do this becouse the we don't need to unpack it manualy, and this is an easy way.
So we need to make a script that loads cshell.dll we can do that easy with c++:
Video:Quote:
#include "windows.h"
#include <iostream>
int main()
{
DWORD err;
HINSTANCE hDLL = LoadLibrary("CShell.dll"); // Handle to DLL
if(hDLL != NULL) {
printf("Library has been loaded\n");
}
else {
err = GetLastError();
printf("Couldn't load dll\n");
}
system("pause");
return 0;
}
#include "windows.h"
#include <iostream>
int main()
{
DWORD err;
HINSTANCE hDLL = LoadLibrary("CShell.dll"); // Handle to DLL
if(hDLL != NULL) {
printf("Library has been loaded\n");
}
else {
err = GetLastError();
printf("Couldn't load dll\n");
}
system("pause");
return 0;
}
Make your own base
op of the dll
DllMain
______________________
First of all you need to include some files.
In they's fils stant the basic commands.
In iostream std::cout std::cin and more.
You also need windows.h in thise file stand more advanced commands.
You have lots of other file that you can include like time.h and more.
So we begin to include iostream and windows.h
But first we are going to DisableThreadLibraryCalls. As far as I know can thise reduce the size of the working set.
Now you can let pop up a msg, do some more commands and more.
First of all we pop up a msg so you know that the dll is injected.
Code:
MessageBoxA(0, "Coded By yourname", "titel", 0);
You can go one in dllmain but the best what you can do is call an other Thread.
Then you have a mutch more cleaner code:
We are going to call the Thread hello
Code:
CreateThread(NULL, NULL, hello, NULL, NULL, NULL);
And then if the dll is not attacht, we let the dll close with out a error:
Code:
return TRUE;
If you put all together:
Code:
Cshell.dll look if it is loaded
________
Now we need to know if cshell.dll is loaded.
We can do that with GetModuleHandleA();
In the function hello we cheak that.
First we make the function
Code:
And then we can go one with commands.
Becouse this is only a loop, we don't make a other function.
___________________
Now we are going to make a loop that cheaks if the user inputs a button, and if he does. We can enable a hack.
But fist we start our loop.
While(1) or for(;
Both loops are good. I alway's use For so:
This also can be don with a while loop but thise one takes less space.
In the for loop we put first our configuration.
And blood sais that you need to put __asm pushad; in the begin of the loop to bypass the securety.
And at the end: __asm popad;
Code:
And if he is pressed I want to enable or disable boxes:
C
For PushToConsole commands searth the forum.
Here you add all your hacks...
And to spare your cpu:
Sleep(100);
before
__asm popad
So it will look like:
Code:
The PTC I coppied from bloof and put the new LTClient in it.
Code:
All together:
Code:
___
GL
Sorry for my very very bad englise.
DllMain
______________________
First of all you need to include some files.
In they's fils stant the basic commands.
In iostream std::cout std::cin and more.
You also need windows.h in thise file stand more advanced commands.
You have lots of other file that you can include like time.h and more.
So we begin to include iostream and windows.h
Now we have a point where the dll starts. Fire you want to know if the DLL is attacht to the process.Quote:
Code:
#include <windows.h>
#include <iostream>
It is also smart to use this command:
Code:
using namespace std;
With this command you don't need to type any more std::.
We need to make a dll file so we start with dllmain. A dll file alway's starts at this point.
I don't going to explain the dll main more becouse I'm lazy:
Code:
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved ) {
}
But first we are going to DisableThreadLibraryCalls. As far as I know can thise reduce the size of the working set.
For dwReason, watch the dll main.Quote:
Code:
DisableThreadLibraryCalls(hDll);
If you think where does the hDll come frome, searth the syntacs of
in the dllmaim:
DllMain Callback Function (Windows)
And watch our dll main.
Now we cheack if the dll is attacht:
if ( dwReason == DLL_PROCESS_ATTACH ) {
}
Now you can let pop up a msg, do some more commands and more.
First of all we pop up a msg so you know that the dll is injected.
Code:
MessageBoxA(0, "Coded By yourname", "titel", 0);
You can go one in dllmain but the best what you can do is call an other Thread.
Then you have a mutch more cleaner code:
We are going to call the Thread hello
Code:
CreateThread(NULL, NULL, hello, NULL, NULL, NULL);
And then if the dll is not attacht, we let the dll close with out a error:
Code:
return TRUE;
If you put all together:
Code:
_____________________Quote:
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls(hDll);
if ( dwReason == DLL_PROCESS_ATTACH )
{
MessageBoxA(0, "Coded By youname", "Injected", 0);
CreateThread(NULL, NULL,hello, NULL, NULL, NULL);
}
return TRUE;
}
This part of the code I never edit becouse it works perfect
Cshell.dll look if it is loaded
________
Now we need to know if cshell.dll is loaded.
We can do that with GetModuleHandleA();
In the function hello we cheak that.
First we make the function
Code:
The while repaids till it is not true any more.Quote:
DWORD WINAPI hello(LPVOID) {
}
We cheack if cshell.dll is loaded:
Code:
GetModuleHandleA("CShell.dll")
We look if cshell is not loaded, and we put a Sleep command if it is not loaded (else it take a lot of our CPU )
Code:
while(GetModuleHandleA("CShell.dll") == NULL ) {
Sleep(100); //100ms
}
And then we can go one with commands.
Becouse this is only a loop, we don't make a other function.
___________________
Now we are going to make a loop that cheaks if the user inputs a button, and if he does. We can enable a hack.
But fist we start our loop.
While(1) or for(;
Both loops are good. I alway's use For so:
This loop loops 10 times.Quote:
Code:
For(;;)
A while loop you can compair 2 "things" like 1 == 1 or 1 > 5 and more.
With a for loop you can do more.
Like this:
for(int a=0;a==10;a++) {
}
This also can be don with a while loop but thise one takes less space.
In the for loop we put first our configuration.
And blood sais that you need to put __asm pushad; in the begin of the loop to bypass the securety.
And at the end: __asm popad;
Code:
Here you can see that numpad 1 is pressed.Quote:
for(;;) {
__asm pushad;
__asm popad;
}
Then out configuration, so we know if the hack is enabled or nor:
Code:
bool boxes = true;
bool nosky = false;
bool worldframe = false;
bool playerframe = false;
bool nogun = false;
bool Skeleton = false;
bool FogEnable = false;
bool CursorCenter = false;
A bool can be true or false.
a int can be a number
...
.
.
.
.
.
Then we cheak if a button is pressed:
Code:
if(GetAsyncKeyState(VK_NUMPAD1)&1) {
}
And if he is pressed I want to enable or disable boxes:
C
The PushToConsole function will come later.Quote:
ode:
if(GetAsyncKeyState(VK_NUMPAD1)&1) {
boxes = !boxes; //(if boxes is true then will it be false and false wil be true)
}
You put here all you hotkey's
Then we enable the hack if one is pressed:
Code:
if (CursorCenter) {
PushToConsole("CursorCenter 1");
} else {
PushToConsole("CursorCenter 0");
}
For PushToConsole commands searth the forum.
Here you add all your hacks...
And to spare your cpu:
Sleep(100);
before
__asm popad
So it will look like:
Code:
________________Quote:
While (GetModuleHandleA("CShell.dll") == NULL ) {
Sleep(100); //100ms
}
for(;;) {
__asm pushad;
if(GetAsyncKeyState(VK_NUMPAD1)&1) {
boxes = !boxes;
}
if(GetAsyncKeyState(VK_NUMPAD2)&1) {
nosky = !nosky;
}
if(GetAsyncKeyState(VK_NUMPAD3)&1) {
worldframe = !worldframe;
}
if(GetAsyncKeyState(VK_NUMPAD4)&1) {
playerframe = !playerframe;
}
if(GetAsyncKeyState(VK_NUMPAD5)&1) {
nogun = !nogun;
}
if(GetAsyncKeyState(VK_NUMPAD6)&1) {
Skeleton = !Skeleton;
}
if(GetAsyncKeyState(VK_NUMPAD7)&1) {
FogEnable = !FogEnable;
}
if(GetAsyncKeyState(VK_NUMPAD8)&1) {
CursorCenter = !CursorCenter;
}
if (CursorCenter) {
PushToConsole("CursorCenter 1");
}
else {
PushToConsole("CursorCenter 0");
}
if (FogEnable) {
PushToConsole("FogEnable 1");
}
else {
PushToConsole("FogEnable 0");
}
if (Skeleton) {
PushToConsole("ModelDebug_DrawSkeleton 1");
}
else {
PushToConsole("ModelDebug_DrawSkeleton 0");
}
if (boxes) {
PushToConsole("ModelDebug_DrawBoxes 1");
}
else {
PushToConsole("ModelDebug_DrawBoxes 0");
}
if (nosky) {
PushToConsole("DrawSky 0");
}
else {
PushToConsole("DrawSky 1");
}
if (worldframe) {
PushToConsole("WireFrame 1");
}
else {
PushToConsole("WireFrame 0");
}
if (playerframe) {
PushToConsole("WireFrameModels 1");
}
else {
PushToConsole("WireFrameModels 0");
}
if (nogun) {
PushToConsole("DrawGuns 0");
}
else {
PushToConsole("DrawGuns 1");
}
Sleep(100);
__asm popad;
}
The PTC I coppied from bloof and put the new LTClient in it.
Code:
If you think why, becouse it works fineQuote:
void __cdecl PushToConsole(char* szVal ) {
DWORD dwCShell = (DWORD)GetModuleHandleA("CShell.dll");
if( dwCShell != NULL )
{
DWORD *LTClient = ( DWORD* )( (dwCShell + 0x299D40) );
void* CONoff = ( void* )*( DWORD* )( *LTClient + 0x1F8 );
_asm
{
push szVal;
call CONoff;
add esp, 4;
}
}
}
All together:
Code:
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )Quote:
#include <windows.h>
#include <iostream>
using namespace std;
void __cdecl PushToConsole(char* szVal ) {
DWORD dwCShell = (DWORD)GetModuleHandleA("CShell.dll");
if( dwCShell != NULL )
{
DWORD *LTClient = ( DWORD* )( (dwCShell + 0x299D40) );
void* CONoff = ( void* )*( DWORD* )( *LTClient + 0x1F8 );
_asm
{
push szVal;
call CONoff;
add esp, 4;
}
}
}
DWORD WINAPI hello(LPVOID) {
while(GetModuleHandleA("CShell.dll") == NULL ) {
Sleep(100); //100ms
}
bool boxes = true; //enable becouse in xp the hotkey's don't work
bool nosky = false;
bool worldframe = false;
bool playerframe = false;
bool nogun = false;
bool Skeleton = false;
bool FogEnable = false;
bool CursorCenter = false;
for(;;) {
__asm pushad;
if(GetAsyncKeyState(VK_NUMPAD1)&1) {
boxes = !boxes;
}
if(GetAsyncKeyState(VK_NUMPAD2)&1) {
nosky = !nosky;
}
if(GetAsyncKeyState(VK_NUMPAD3)&1) {
worldframe = !worldframe;
}
if(GetAsyncKeyState(VK_NUMPAD4)&1) {
playerframe = !playerframe;
}
if(GetAsyncKeyState(VK_NUMPAD5)&1) {
nogun = !nogun;
}
if(GetAsyncKeyState(VK_NUMPAD6)&1) {
Skeleton = !Skeleton;
}
if(GetAsyncKeyState(VK_NUMPAD7)&1) {
FogEnable = !FogEnable;
}
if(GetAsyncKeyState(VK_NUMPAD8)&1) {
CursorCenter = !CursorCenter;
}
if (CursorCenter) {
PushToConsole("CursorCenter 1");
}
else {
PushToConsole("CursorCenter 0");
}
if (FogEnable) {
PushToConsole("FogEnable 1");
}
else {
PushToConsole("FogEnable 0");
}
if (Skeleton) {
PushToConsole("ModelDebug_DrawSkeleton 1");
}
else {
PushToConsole("ModelDebug_DrawSkeleton 0");
}
if (boxes) {
PushToConsole("ModelDebug_DrawBoxes 1");
}
else {
PushToConsole("ModelDebug_DrawBoxes 0");
}
if (nosky) {
PushToConsole("DrawSky 0");
}
else {
PushToConsole("DrawSky 1");
}
if (worldframe) {
PushToConsole("WireFrame 1");
}
else {
PushToConsole("WireFrame 0");
}
if (playerframe) {
PushToConsole("WireFrameModels 1");
}
else {
PushToConsole("WireFrameModels 0");
}
if (nogun) {
PushToConsole("DrawGuns 0");
}
else {
PushToConsole("DrawGuns 1");
}
Sleep(100);
__asm popad;
}
}
Put all function above the main function, else you need to say c++ that the functions are under the main functionQuote:
{
DisableThreadLibraryCalls(hDll);
if ( dwReason == DLL_PROCESS_ATTACH )
{
MessageBoxA(0, "Coded By youname", "Injected", 0);
CreateThread(NULL, NULL,hello, NULL, NULL, NULL);
}
return TRUE;
}
___
GL
Sorry for my very very bad englise.
[Source] Pixelsearth Triggerbot
Every thing is in dutch, so if you want to know what its mean. Ask me.
It is not 100% finisht.
The only thing what needs to be done is optimising the code.
Its 100% made by me.
First the aim "engine":
Press f10 and enter a file name. There he is going to save the colors.
I was making a area color part.
So the script can searth for colors in an area.
Also I was making that the script makes a screenshot of a area and scan the screenshot for the pixels. becouse I think this is faster.
And if the script is finisht then it is bether to make it a dll.
If you need help with this ask me.
If you want my color database ask it
I added this triger bot
F3/richt mouse buton to enable 5 "rounds"
I only added a database for the blue enemy's

Open the screen shot. Put your mouse on the solder and press f3
It is not 100% finisht.
The only thing what needs to be done is optimising the code.
Its 100% made by me.
First the aim "engine":
pres f9 and you can see what colors he is going to scan (range).Quote:
Code:
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <iostream>
#include <time.h>
using namespace std;
int fcollerfind(int kleur1,int kleur2,int kleur3,COLORREF CR1, int bij, int af, int code,int y, int x);
void leftclick();
int main() {
POINT p;
GetCursorPos(&p);
HDC hdc = GetDC(HWND_DESKTOP); //het scherm
COLORREF CR1; //3 kleuren
int gevoelig = 30;
int loop = 5;
int loop2 = 1;
int y = 0;
int get = 0;
int hoeveel = 0;
int hx = 0;
int hy = 0;
int hx2 = 0;
int hy2 = 0;
int geschoten = 0;
int welke = 0;
bool aimer = false;
while(1) {
if ((GetAsyncKeyState(VK_RBUTTON)&1) || (GetAsyncKeyState(VK_F3)&1) ) {
cout << "Aan\n";
aimer = true;
GetCursorPos(&p);
}
if ((GetAsyncKeyState(VK_F11)&1)) {
//cout << "stop\n";
aimer = false;
}
if ((GetAsyncKeyState(VK_F9)&1)) {
//cout << "stop\n";
leftclick();
}
if ( aimer == true ) {
GetCursorPos(&p);
loop2++;
//cout << loop << " " << loop2 << " ";
if ( loop < loop2 ) {
aimer = false;
loop2 = 0;
}
time_t start;
start = time(NULL);
int hoeveel = 0;
int hx = 0;
int hy = 0;
//cout << "start";
welke = 1;
hoeveel = 0;
GetCursorPos(&p);
hx = 0;
hy = 0;
for(int y=-2;y<2;y++) {
if ( hoeveel > gevoelig ) { continue; }
for(int x=-2;x<2;x++) {
CR1 = GetPixel(hdc,p.x+x,p.y+y);
GetCursorPos(&p);
if ( hoeveel > gevoelig ) { continue; }
#include "kleur1.txt"
#include "kleur2.txt"
//#include "kleur3.txt"
}
}
//cout << hoeveel;
if ( hoeveel > gevoelig ) {
geschoten++;
//cout << geschoten;
//cout << "Gevonden: " << hoeveel << "\n";
cout << "\nSCHIET\n";
SetCursorPos(hx/hoeveel,hy/hoeveel);
Sleep(1);
leftclick();
}
time_t end;
end = time(NULL);
//cout << "Sec: " << end - start << "\n";
//cout << "hoeveel= " << hoeveel << "\n" ;
//aimer = false;
}
//aimer = false;
Sleep(100);
}
system("pause");
return 0;
}
int fcollerfind(int kleur1,int kleur2,int kleur3,COLORREF CR1, int bij, int af, int code,int y, int x) {
int get = 0;
int hoeveel = 0;
int hx = 0;
int hy = 0;
int hx2 = 0;
int hy2 = 0;
int acode = 0;
POINT p;
GetCursorPos(&p);
//onderstaande opnieuw maken zonder bkleur
for(int bkleur1 = kleur1 - af; bkleur1<kleur1 + bij; bkleur1++) { //RGB waarde die steeds verandert
for(int bkleur2 = kleur2 - af; bkleur2<kleur2 + bij; bkleur2++) { //RGB waarde die steeds verandert
for(int bkleur3 = kleur3 - af; bkleur3<kleur3 + bij; bkleur3++) { //RGB waarde die steeds verandert
//cout << kleur1 << " " << kleur2 << " " << kleur3 << "\n";
if(CR1==RGB(bkleur1,bkleur2,bkleur3)) { //hier laat je steeds een pixel kleur oplopen, als her is is gaat de muis er heen
//cout << code << "\n";
return true;
}
get = CR1 - RGB(kleur1,kleur2,kleur3);
if(get < 1000 && get > -1000) {
//cout << code << "\n";
return true;
}
}
}
}
return false;
}
void leftclick() {
mouse_event(MOUSEEVENTF_LEFTDOWN, 1, 1, 1, 1);
Sleep(500);
mouse_event(MOUSEEVENTF_LEFTUP, 1, 1, 1, 1);
while ((GetAsyncKeyState(VK_RBUTTON)&1) ) {
mouse_event(MOUSEEVENTF_LEFTDOWN, 1, 1, 1, 1);
Sleep(500);
mouse_event(MOUSEEVENTF_LEFTUP, 1, 1, 1, 1);
}
}
This one reads from kleur1.txt (color1) kleur2.txt kleur3.txt the colors. They's call the fcollerfind function. It looks like this:
Code:
if( fcollerfind(67,56,41,CR1,3,2,welke,y,x) ) {
hx = hx + p.x+x;
hy = hy + p.y+y;
hoeveel++;
}
2nd, the function that can searth for colers so you don't need to type them:
Code:
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <iostream>
#include <time.h>
#include <fstream>
using namespace std;
int main() {
POINT p;
GetCursorPos(&p);
HDC hdc = GetDC(HWND_DESKTOP); //het scherm
COLORREF CR1; //3 kleuren
int y = 0;
int get = 0;
int hoeveel = 0;
int hx = 0;
int hy = 0;
int hx2 = 0;
int hy2 = 0;
char FileName[20];
//cout << "\nFilename: ";
//cin >> FileName;
cout << "\n";
bool aimer = false;
while(1) {
if ((GetAsyncKeyState(VK_RBUTTON)&1) || (GetAsyncKeyState(VK_F10)&1) ) {
aimer = true;
GetCursorPos(&p);
}
if ((GetAsyncKeyState(VK_F9)&1)) {
GetCursorPos(&p);
SetCursorPos(p.x-7,p.y-7);
Sleep(1000);
SetCursorPos(p.x+7,p.y+7);
Sleep(1000);
SetCursorPos(p.x,p.y);
aimer = false;
}
if ( aimer == true ) {
time_t start;
start = time(NULL);
int hoeveel = 0;
int hx = 0;
int hy = 0;
//cout << "start";
cout << "\nFilename: ";
cin >> FileName;
cout << "\n";
for(int y=-7;y<7;y++) {
for(int x=-7;x<7;x++) {
CR1 = GetPixel(hdc,p.x+x,p.y+y);
int R = GetRValue(CR1);
int G = GetGValue(CR1);
int B = GetBValue(CR1);
ofstream Students(FileName, ios::app);
Students << " if( fcollerfind(" << R << "," << G << "," << B << ",CR1,3,2,welke,y,x) ) { \n hx = hx + p.x+x; \n hy = hy + p.y+y; \n hoeveel++; \n } \n welke++; \n\n";
cout << R << " " << G << " " << B << " | ";
}
}
time_t end;
end = time(NULL);
cout << "\n Sec: " << end - start ;
}
aimer = false;
Sleep(100);
}
system("pause");
return 0;
}
Press f10 and enter a file name. There he is going to save the colors.
I was making a area color part.
So the script can searth for colors in an area.
Also I was making that the script makes a screenshot of a area and scan the screenshot for the pixels. becouse I think this is faster.
And if the script is finisht then it is bether to make it a dll.
If you need help with this ask me.
If you want my color database ask it
I added this triger bot
F3/richt mouse buton to enable 5 "rounds"
I only added a database for the blue enemy's

Open the screen shot. Put your mouse on the solder and press f3
Becouse they delete every hack I upload in the hack section:
Code:
UPX: the Ultimate Packer for eXecutables <<<googel
start cmd, put the upx location in and the dll location:
"C:\upx305w\upx" "c:\lauwy.dll"
He will pack the dll, inject the dll in crossfire.
Happy hacking
This is the base from blood + some more PTC commands + new LTClient
GL!
Here is the hack com + packt:
Here you see ingame:
Here you see how to hack: (full video)
Over a few minutes the video will be 720p.
Normaly I don't copy a base. But this was faster (a)
Only thank me for the vid.
I only have 1% credits for the hack becouse I added some PTC commands.
And made im work after the patch.
____
Code:
Code:
bool Ready(void)Quote:
#include <windows.h>
#include <iostream>
using namespace std;
void __cdecl PushToConsole(char* szVal )
{
DWORD dwCShell = (DWORD)GetModuleHandleA("CShell.dll");
if( dwCShell != NULL )
{
DWORD *LTClient = ( DWORD* )( (dwCShell + 0x299D40) );
void* CONoff = ( void* )*( DWORD* )( *LTClient + 0x1F8 );
_asm
{
push szVal;
call CONoff;
add esp, 4;
}
}
}
BOOL WINAPI Main (LPVOID)
{
bool boxes = true;
bool nosky = false;
bool worldframe = false;
bool playerframe = false;
bool nogun = false;
bool Skeleton = false;
bool FogEnable = false;
bool CursorCenter = false;
while(1)
{
__asm pushad;
if(GetAsyncKeyState(VK_NUMPAD1)&1)
{
boxes = !boxes;
}
if(GetAsyncKeyState(VK_NUMPAD2)&1)
{
nosky = !nosky;
}
if(GetAsyncKeyState(VK_NUMPAD3)&1)
{
worldframe = !worldframe;
}
if(GetAsyncKeyState(VK_NUMPAD4)&1)
{
playerframe = !playerframe;
}
if(GetAsyncKeyState(VK_NUMPAD5)&1)
{
nogun = !nogun;
}
if(GetAsyncKeyState(VK_NUMPAD6)&1)
{
Skeleton = !Skeleton;
}
if(GetAsyncKeyState(VK_NUMPAD7)&1)
{
FogEnable = !FogEnable;
}
if(GetAsyncKeyState(VK_NUMPAD8)&1)
{
CursorCenter = !CursorCenter;
}
if (CursorCenter)
PushToConsole("CursorCenter 1");
else
PushToConsole("CursorCenter 0");
if (FogEnable)
PushToConsole("FogEnable 1");
else
PushToConsole("FogEnable 0");
if (Skeleton) {
PushToConsole("ModelDebug_DrawSkeleton 1");
}
else {
PushToConsole("ModelDebug_DrawSkeleton 0");
}
if (boxes)
PushToConsole("ModelDebug_DrawBoxes 1");
else
PushToConsole("ModelDebug_DrawBoxes 0");
if (nosky)
PushToConsole("DrawSky 0");
else
PushToConsole("DrawSky 1");
if (worldframe)
PushToConsole("WireFrame 1");
else
PushToConsole("WireFrame 0");
if (playerframe)
PushToConsole("WireFrameModels 1");
else
PushToConsole("WireFrameModels 0");
if (nogun)
PushToConsole("DrawGuns 0");
else
PushToConsole("DrawGuns 1");
__asm popad;
Sleep(100);
}
}
Download upx:Quote:
{
if( GetModuleHandleA("CShell.dll")!= NULL)
return true;
return false;
}
DWORD WINAPI dwMainThread(LPVOID)
{
while (!Ready())
Sleep(200);
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)Main, NULL, NULL, NULL);
return 0;
}
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls(hDll);
if ( dwReason == DLL_PROCESS_ATTACH )
{
MessageBoxA(0, "Coded By lauwy", "Injected", 0);
CreateThread(NULL, NULL, dwMainThread, NULL, NULL, NULL);
}
return TRUE;
}
UPX: the Ultimate Packer for eXecutables <<<googel
start cmd, put the upx location in and the dll location:
"C:\upx305w\upx" "c:\lauwy.dll"
He will pack the dll, inject the dll in crossfire.
Happy hacking
This is the base from blood + some more PTC commands + new LTClient
GL!
Here is the hack com + packt:
Here you see ingame:
Here you see how to hack: (full video)
Over a few minutes the video will be 720p.
Normaly I don't copy a base. But this was faster (a)
Only thank me for the vid.
I only have 1% credits for the hack becouse I added some PTC commands.
And made im work after the patch.
____
Code:
Quote:
//Working hotkey:
#include "stdafx.h"
int _cdecl _tmain (
int argc,
TCHAR *argv[])
{
if (RegisterHotKey(NULL,1,NULL,0x30)) //0
{
_tprintf(_T("Hotkey 0 set\n"));
}
MSG msg = {0};
while (GetMessage(&msg, NULL, 0, 0) != 0)
{
if (msg.message == WM_HOTKEY)
{
_tprintf(_T("HOTKEY\n"));
}
}
return 0;
}
Downloads:








