WarRock EU - Code Snippets

12/14/2011 21:36 DashWar#6091
hab mal ne frage kann man das auch so machen:
Quote:
void cPxItems()
{
DWORD cSniper = ADR_SniperClip;
DWORD cAssault = ADR_AssaultClip;
DWORD cBandage = ADR_BandageItem;

_asm
{
MOV EAX,cSniper
MOV BYTE PTR DS:[EAX],1
}
_asm
{
MOV EAX,cAssault
MOV BYTE PTR DS:[EAX],1
}
_asm
{
MOV EAX,cBandage
MOV BYTE PTR DS:[EAX],1
}
}
es funktioniert in game aber ist das so auch sicherer oder überhaupt sicher?
und vor allem ist es besser als *(BYTE*)(ADDY)=0x1;
12/14/2011 21:52 Angel-Piece#6092
Quote:
Originally Posted by DashWar View Post
hab mal ne frage kann man das auch so machen:
Quote:
void cPxItems()
{
DWORD cSniper = ADR_SniperClip;
DWORD cAssault = ADR_AssaultClip;
DWORD cBandage = ADR_BandageItem;

_asm
{
MOV EAX,cSniper
MOV BYTE PTR DS:[EAX],1
}
_asm
{
MOV EAX,cAssault
MOV BYTE PTR DS:[EAX],1
}
_asm
{
MOV EAX,cBandage
MOV BYTE PTR DS:[EAX],1
}
}
es funktioniert in game aber ist das so auch sicherer oder überhaupt sicher?
und vor allem ist es besser als *(BYTE*)(ADDY)=0x1;
im grunde ist es also das selber das einzige was sein kann ist das es schneller ist weil du es direkt in der warrock.exe veränderst aber ka obs auch so ist
12/14/2011 21:57 Raz9r#6093
Quote:
Originally Posted by DashWar View Post
...
Es ist nicht sicherer, sondern aufwändiger.
Außerdem:
__asm mov byte ptr ds:[ADDY], 1h
hätte den gleichen Effekt, denn es ist genau das, zu dem
*(unsigned char *)ADDY = 0x1;
kompiliert wird.
12/14/2011 22:05 DashWar#6094
Quote:
Originally Posted by __underScore View Post
Es ist nicht sicherer, sondern aufwändiger.
Außerdem:
__asm mov byte ptr ds:[ADDY], 1h
hätte den gleichen Effekt, denn es ist genau das, zu dem
*(unsigned char *)ADDY = 0x1;
kompiliert wird.
hats denn eigentlich überhaupt irgenein vorteil es mit _asm zu schreiben?
12/14/2011 22:14 Raz9r#6095
Quote:
Originally Posted by DashWar View Post
hats denn eigentlich überhaupt irgenein vorteil es mit _asm zu schreiben?
Man ist freier in dem, was man macht. Direkten Sinn hat es eigentlich nur, wenn man eine Subroutine schreibt, die das Scope __declspec(naked) hat, weil diese dann keinen Funktionsheader und -footer hat.
12/17/2011 01:09 Dogukan47#6096
#request position of marien bomb a :)
12/17/2011 01:24 Chowniiqhtz#6097
Quote:
Originally Posted by Dogukan47 View Post
#request position of marien bomb a :)
Code:
if (CH_BombA)
{
DWORD dwPlayerPointer = *(DWORD*)ADR_PlayerPointer;
if(dwPlayerPointer != 0)
{
*(float*)(dwPlayerPointer + OFS_X) = 3667.35;
*(float*)(dwPlayerPointer + OFS_Y) = 2512.45;
*(float*)(dwPlayerPointer + OFS_Z) = 62.7025;
}
}

if (CH_BombB)
{
DWORD dwPlayerPointer = *(DWORD*)ADR_PlayerPointer;
if(dwPlayerPointer != 0)
{
*(float*)(dwPlayerPointer + OFS_X) = 2651.6;
*(float*)(dwPlayerPointer + OFS_Y) = 3469.19;
*(float*)(dwPlayerPointer + OFS_Z) = 62.7025;
}
}
12/17/2011 19:52 Wolf0fmusic#6098
Request MessageBox ;)
12/17/2011 23:19 hero9910#6099
////void __cdecl MsgBox(char* text){
//// void* MsgF = (void*) 0x71BCE0;
//// void* MsgG = (void*) 0x43DD70;
//// _asm
//// {
//// push ecx
//// mov ecx, esp
//// mov [esp+8], esp
//// push text
//// call MsgF
//// call MsgG
//// add esp, 4
//// }
//// }
12/17/2011 23:56 Angel-Piece#6100
Quote:
Originally Posted by hero9910 View Post
////void __cdecl MsgBox(char* text){
//// void* MsgF = (void*) 0x71BCE0;
//// void* MsgG = (void*) 0x43DD70;
//// _asm
//// {
//// push ecx
//// mov ecx, esp
//// mov [esp+8], esp
//// push text
//// call MsgF
//// call MsgG
//// add esp, 4
//// }
//// }
uralt and wrong
12/18/2011 01:11 hero9910#6101
habe einfach google benutzt kp brauche den mist auch nicht ;)
€:600 Beitrag
12/18/2011 11:43 SK1LL0R..#6102
//Messagebox
VOID WRSendMsgBox(CHAR* dwText)
{
DWORD dwMsgBox = ADR_SENDMESSAGEBOX;
__asm
{
PUSH dwText
CALL dwMsgBox
POP ECX
}
}

#define ADR_SENDMESSAGEBOX 0x419137

VOID ServerHacks()
{
DWORD dwServerPtr = *(DWORD*)ADR_SERVERPOINTER;
if ( dwServerPtr == 0 )
{
if ( SendMsgBox == FALSE )
{
SendMsgBox = TRUE;
}
}
if ( dwServerPtr != 0 )
{
if ( SendMsgBox == TRUE )
{
WRSendMsgBox("BlackLegend D3D >> Welcome to Public Cheat!");
SendMsgBox = FALSE;
}
}
}

//GameText
void CalledThread()
{
DWORD dwPlayerPtr = *(DWORD*)ADR_PLAYERPOINTER;
if ( dwPlayerPtr !=0 )
{
if ( IngameMessage == true )
{
PrintText("BlackLegend D3D >> BlackLegend Public Beta",(BYTE*)0x00,(BYTE*)0x00,(BYTE*)0xCD);
IngameMessage = false;
}
}
}

void PrintText (char *szName, BYTE *Red, BYTE *Green, BYTE *Blue)
{
DWORD dwCallText = ADR_GameText;

__asm
{
push 0x0
push Red
push Green
push Blue
mov ecx,szName
call [dwCallText]
}
}

#define ADR_GameText 0x4E33EC


Have Fun
12/18/2011 11:57 xBioK1ngz#6103
Quote:
Originally Posted by SK1LL0R.. View Post
//Messagebox

VOID WRSendMsgBox(CHAR* dwText)
{
DWORD dwMsgBox = ADR_SENDMESSAGEBOX;
__asm
{
PUSH dwText
CALL dwMsgBox
POP ECX
}
}

......

....
..
Code:
DWORD ADR_ASSEMBLY_MESSAGEBOX     = 0x419137;
Code:
VOID WINAPIV WRSendMsgBox(CONST CHAR* chText)
{
    DWORD dwMsgBox = ADR_ASSEMBLY_MESSAGEBOX;
    __asm
    {
        PUSH chText
        CALL dwMsgBox 
        ADD ESP,4
    }
}
12/18/2011 12:02 Wolf0fmusic#6104
error C3861: 'PrintText': identifier not found :/
12/18/2011 12:16 WarFk#6105
@Wolf => you have to set void PrintText(....) above the call xD