WarRock EU - Code Snippets

06/05/2012 20:09 kkBioX#7171
Quote:
Reverse Engineering (engl., bedeutet: umgekehrt entwickeln, rekonstruieren, Kürzel: RE), auch Nachkonstruktion, bezeichnet den Vorgang, aus einem bestehenden, fertigen System oder einem meistens industriell gefertigten Produkt durch Untersuchung der Strukturen, Zustände und Verhaltensweisen, die Konstruktionselemente zu extrahieren. Aus dem fertigen Objekt wird somit wieder ein Plan erstellt. Im Gegensatz zu einer funktionellen Nachempfindung, die ebenso auf Analysen nach dem Black-Box-Prinzip aufbauen kann, wird durch Reverse Engineering angestrebt, das vorliegende Objekt weitgehend exakt abzubilden. Häufig wird versucht, zur Verifikation der gewonnenen Einsichten eine 1:1-Kopie des Objekts anzufertigen, auf deren Basis es grundsätzlich möglich ist, Weiterentwicklung zu betreiben
Quelle:
Reverse Engineering

Crackme(s) sind Programme, welche z.B ein Passwort, einen Serial oder andere Zugansberechtigungen benötigen. Der Sinn dabei ist es mit Hilfe von Reverse Engineering z.B an einen Serial zu kommen, das Programm zu verändern damit es keine Authentifizierung mehr benötigt oder andere Wege ( Glaube es gab noch etwas in Richtung Keygens oder so )

Meistens benutzt man noch Programme ( Debugger oder Disassembler ) wie OllyDBG, IDA und co.

Hoffe das konnte erstmal helfen, mehr Infos über google oder Wikipedia
06/05/2012 20:16 Instiinqzx3™#7172
Ich habs auch damit gemacht und ein paar pattern gefunden nur bei anderen kommen da soviele sachen wenn ich search for all constans mache und die addy dort eingebe kriege ich soviele adressen und weiß nicht welches ich nehmen muss
06/06/2012 18:23 __BuRn3R#7173
Kann mir jemand sagen wie die Value von Telescope ist?
06/06/2012 19:28 spike2147#7174
104, don't you have the new weapon array?
06/07/2012 10:31 xRoute66x#7175
Quote:
Originally Posted by Tritton View Post
switch ( cPlayer.CH_Penisize )
{
case 0:*(FLOAT*)(ADR_PenisSize) = (0.13);break; //Normal Volue
case 1:*(FLOAT*)(ADR_PenisSize) = (0.13f*10);break; //x10Size
case 2:*(FLOAT*)(ADR_PenisSize) = (0.13f*30);break; //x30Size
case 3:*(FLOAT*)(ADR_PenisSize) = (0.13f*50);break; //x50Size
case 4:*(FLOAT*)(ADR_PenisSize) = (0.13f*70);break; //x70Size
case 5:*(FLOAT*)(ADR_PenisSize) = (0.13f*100);break; //x100Size
//e.t.c
}

ADR_PenisSize = 0xA13370

Credits Tritton
Echt lustig...
Checkst du ? Statt Nadesize , einfach Penissize hinschreiben.
Haha bist du witzig :facepalm: Sind wir hier im Kindergarten?

Code:
if(Ch_Deathkill == 1 && info->health == 0 && GameMode == 0)
{
        *(DWORD*)(ADR_PLAYERPOINTER + OFS_PLAYERSTATE) = *(DWORD*)ADR_DEATHKILL;
}
Creditz to Angel-Piece
06/07/2012 13:15 spike2147#7176
Any1 new PlayerInfo struct?
06/07/2012 17:53 animus7#7177
Quote:
Originally Posted by Tritton View Post
switch ( cPlayer.CH_Penisize )
{
case 0:*(FLOAT*)(ADR_PenisSize) = (0.13);break; //Normal Volue
case 1:*(FLOAT*)(ADR_PenisSize) = (0.13f*10);break; //x10Size
case 2:*(FLOAT*)(ADR_PenisSize) = (0.13f*30);break; //x30Size
case 3:*(FLOAT*)(ADR_PenisSize) = (0.13f*50);break; //x50Size
case 4:*(FLOAT*)(ADR_PenisSize) = (0.13f*70);break; //x70Size
case 5:*(FLOAT*)(ADR_PenisSize) = (0.13f*100);break; //x100Size
//e.t.c
}

ADR_PenisSize = 0xA13370

Credits Tritton
hahaha beste

Was stimmt hier nicht:

Code:
 if(!CH_Zero_Delay)
        {
            const BYTE zero_delay_off[3] = { 0xF6, 0xC6, 0x04 };
            {
                DWORD dwProtect;

                VirtualProtect((void*)(Address_Zero_Delay), 3, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_Zero_Delay), &zero_delay_off, 3);
                VirtualProtect((void*)(Address_Zero_Delay), 3, dwProtect, NULL);
            }
        }
und hier:

Code:
if(CH_Auto_Health)
        {
            const BYTE auto_health_on[6] = { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 };
            {
                DWORD dwProtect;

                VirtualProtect((void*)(Address_Auto_Health), 6, PAGE_EXECUTE_READWRITE, &dwProtect);
                memcpy((void*)(Address_Auto_Health), &auto_health_on, 6);
                VirtualProtect((void*)(Address_Auto_Health), 6, dwProtect, NULL);
            }
        }
06/07/2012 19:01 Dogukan47#7178
Quote:
Originally Posted by xroute66x™ :) View Post
Echt lustig...
Checkst du ? Statt Nadesize , einfach Penissize hinschreiben.
Haha bist du witzig :facepalm: Sind wir hier im Kindergarten?

Code:
if(Ch_Deathkill == 1 && info->health == 0 && GameMode == 0)
{
        *(DWORD*)(ADR_PLAYERPOINTER + OFS_PLAYERSTATE) = *(DWORD*)ADR_DEATHKILL;
}
Creditz to Angel-Piece
mach ihn doch nicht so runter-_- ich finde es witzig und bin nicht im Kindergarten
06/07/2012 20:09 xxfabbelxx#7179
Quote:
Originally Posted by Dogukan47 View Post
mach ihn doch nicht so runter-_- ich finde es witzig und bin nicht im Kindergarten
Du scheinst einen kindlichen humor zu haben. Naja darüber lässt sich allgemein streiter.

Hier in diesem Thread haben "Troll" Posts nichts zu suchen.
06/07/2012 20:13 taylan13#7180
Kann mir mal jemand helfen?
Benutze Crytecs detouren.
Aber immerwieder erscheint: Fremdprogramm entdeckt mitten im SPiel.

Hab nix geaddet auser DIP(+Chams) und NFD+Superjump Hack.

Mehr auch nicht.

Crytecs hack funzt gut. Und crasht nicht so schnell.

Plss wer mir helfen kann bekommt credits :(
Hat irgendein Experte der sich wirklich gut auskennt mit
Detours usw. kurz Zeit um über TV vorbeizukommen?

Danke, mfg
06/07/2012 20:24 xxfabbelxx#7181
Quote:
Originally Posted by taylan13 View Post
Kann mir mal jemand helfen?
Benutze Crytecs detouren.
Aber immerwieder erscheint: Fremdprogramm entdeckt mitten im SPiel.

Hab nix geaddet auser DIP(+Chams) und NFD+Superjump Hack.

Mehr auch nicht.

Crytecs hack funzt gut. Und crasht nicht so schnell.

Plss wer mir helfen kann bekommt credits :(
Hat irgendein Experte der sich wirklich gut auskennt mit
Detours usw. kurz Zeit um über TV vorbeizukommen?

Danke, mfg
Wir könnten dir besser helfen, wenn du deinen Sourcecode hier reinpastest.
06/07/2012 20:35 taylan13#7182
k ich poste mal die Detour damit ihr mal kurz checkt ob es noch funz fähig ist.

Quote:
DWORD DetourCreate( DWORD SrcVA, DWORD DstVA, DWORD Size )
{

#define SIZEOF_JMP_NEAR 5

if ( SrcVA && DstVA && Size > 0 )
{
DWORD DetourVA = (DWORD)
VirtualAlloc( NULL, Size + SIZEOF_JMP_NEAR,
MEM_COMMIT | MEM_TOP_DOWN, PAGE_EXECUTE_READWRITE );

if ( DetourVA == 0 )
return (0);

DWORD dwProtect;
if ( VirtualProtect( (VOID*)SrcVA, Size, PAGE_EXECUTE_READWRITE, &dwProtect ) )
{
for ( DWORD i=0; i < Size; i++ ) {
*(BYTE*)( DetourVA + i ) = *(BYTE*)( SrcVA + i );
}

*(BYTE*)( DetourVA + Size + 0 ) = 0xE9;
*(DWORD*)( DetourVA + Size + 1 ) = ( SrcVA - DetourVA - SIZEOF_JMP_NEAR );

*(BYTE*)( SrcVA + 0 ) = 0xE9;
*(DWORD*)( SrcVA + 1 ) = ( DstVA - SrcVA - SIZEOF_JMP_NEAR );

VirtualProtect( (VOID*)SrcVA, Size, dwProtect, &dwProtect );

VirtualProtect( (VOID*)DetourVA, Size +
SIZEOF_JMP_NEAR, PAGE_EXECUTE_READ, &dwProtect );

return DetourVA;
}
}
return (0);
}




PVOID D3Ddiscover(void *tbl, int size)
{


HWND hWnd;
void *pInterface=0 ;
D3DPRESENT_PARAMETERS d3dpp;

if ((hWnd=CreateWindowEx(NULL,WC_DIALOG,"",WS_OVERLAP PED,0,0,50,50,NULL,NULL,NULL,NULL))==NULL) return 0;
ShowWindow(hWnd, SW_HIDE);

LPDIRECT3D9 pD3D;
LPDIRECT3DDEVICE9 pD3Ddev;
if ((pD3D = Direct3DCreate9(D3D_SDK_VERSION))!=NULL)

{
ZeroMemory(&d3dpp, sizeof(d3dpp));
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.hDeviceWindow = hWnd;
d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;
d3dpp.BackBufferWidth = d3dpp.BackBufferHeight = 600;
pD3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hW nd,D3DCREATE_SOFTWARE_VERTEXPROCESSING,&d3dpp,&pD3 Ddev);
if (pD3Ddev) {
pInterface = (PDWORD)*(DWORD *)pD3Ddev;
memcpy(tbl,(void *)pInterface,size);
pD3Ddev->Release();
}
pD3D->Release();
}
DestroyWindow(hWnd);
return pInterface;
}

void EraseHeaders(HINSTANCE hModule)
{


PIMAGE_DOS_HEADER pDoH;
PIMAGE_NT_HEADERS pNtH;
DWORD i, ersize, protect;

if (!hModule) return;

pDoH = (PIMAGE_DOS_HEADER)(hModule);

pNtH = (PIMAGE_NT_HEADERS)((LONG)hModule + ((PIMAGE_DOS_HEADER)hModule)->e_lfanew);

ersize = sizeof(IMAGE_DOS_HEADER);
if ( VirtualProtect(pDoH, ersize, PAGE_READWRITE, &protect) )
{
for ( i=0; i < ersize; i++ )
*(BYTE*)((BYTE*)pDoH + i) = 0;
}

ersize = sizeof(IMAGE_NT_HEADERS);
if ( pNtH && VirtualProtect(pNtH, ersize, PAGE_READWRITE, &protect) )
{
for ( i=0; i < ersize; i++ )
*(BYTE*)((BYTE*)pNtH + i) = 0;
}
return;
}


void HideModule(HINSTANCE hModule)
{
DWORD dwPEB_LDR_DATA = 0;
_asm
{
pushad;
pushfd;
mov eax, fs:[30h]
mov eax, [eax+0Ch]
mov dwPEB_LDR_DATA, eax

InLoadOrderModuleList:
mov esi, [eax+0Ch]
mov edx, [eax+10h]

LoopInLoadOrderModuleList:
lodsd
mov esi, eax
mov ecx, [eax+18h]
cmp ecx, hModule
jne SkipA
mov ebx, [eax]
mov ecx, [eax+4]
mov [ecx], ebx
mov [ebx+4], ecx
jmp InMemoryOrderModuleList

SkipA:
cmp edx, esi
jne LoopInLoadOrderModuleList

InMemoryOrderModuleList:
mov eax, dwPEB_LDR_DATA
mov esi, [eax+14h]
mov edx, [eax+18h]

LoopInMemoryOrderModuleList:
lodsd
mov esi, eax
mov ecx, [eax+10h]
cmp ecx, hModule
jne SkipB
mov ebx, [eax]
mov ecx, [eax+4]
mov [ecx], ebx
mov [ebx+4], ecx
jmp InInitializationOrderModuleList

SkipB:
cmp edx, esi
jne LoopInMemoryOrderModuleList

InInitializationOrderModuleList:
mov eax, dwPEB_LDR_DATA
mov esi, [eax+1Ch]
mov edx, [eax+20h]

LoopInInitializationOrderModuleList:
lodsd
mov esi, eax
mov ecx, [eax+08h]
cmp ecx, hModule
jne SkipC
mov ebx, [eax]
mov ecx, [eax+4]
mov [ecx], ebx
mov [ebx+4], ecx
jmp Finished

SkipC:
cmp edx, esi
jne LoopInInitializationOrderModuleList

Finished:
popfd;
popad;
}
}

Und einmal diesen Code hier :

Quote:
VOID WINAPI D3D()
{
PDWORD dwD3DVTable;
do
{
*(DWORD*)&dwD3DVTable = *(DWORD*)pTools->D3D9VTable();
}
while ( !dwD3DVTable );


pPresent = (oPresent)DetourCreate((DWORD)dwD3DVTable[17], (DWORD)myPresent,5);
DrawIndexedPrimitive_Hook = ( dwD3DVTable[82] + 0x2D );
DrawIndexedPrimitive_Jump = ( DrawIndexedPrimitive_Hook + 0x7 );
*(PDWORD)(&DrawIndexedPrimitive_Pointer) = (DWORD)dwD3DVTable[82];
_WriteMemory((LPVOID)DrawIndexedPrimitive_Bytes,(L PBYTE)DrawIndexedPrimitive_Hook,5);
_WriteJump((DWORD)DrawIndexedPrimitive_Call,(DWORD )DrawIndexedPrimitive_Hook);
}


Kann mir jemand vill. sagen ob irgendwas zu beheben wäre ?
Derjenige bekommt jedesmal Credits sobald ich etwas veröffentlichen werde.

Brauche dringend hilfe plss :(
THX

Mfg
06/08/2012 13:30 xBioK1ngz#7183
Code:
    PIMAGE_DOS_HEADER pDOSHeader = (PIMAGE_DOS_HEADER)(hModule); 
    PIMAGE_NT_HEADERS pNTHeaders = (PIMAGE_NT_HEADERS)((LONG)(hModule+((PIMAGE_DOS_HEADER)hModule)->e_lfanew));
	DWORD dwDOSHeaderSize = sizeof(PIMAGE_DOS_HEADER);
	DWORD dwNTHeadersSize = sizeof(PIMAGE_NT_HEADERS);
	DWORD dwDOSHeaderProtect;
	DWORD dwNTHeadersProtect;
	VirtualProtect((LPVOID)(pDOSHeader),(dwDOSHeaderSize),(PAGE_READWRITE),(&dwDOSHeaderProtect));
	VirtualProtect((LPVOID)(pNTHeaders),(dwNTHeadersSize),(PAGE_READWRITE),(&dwNTHeadersProtect));
	for ( DWORD dwDOSHeaderPatch = 0; dwDOSHeaderPatch < dwDOSHeaderSize; )
	{
		*(BYTE*)(pDOSHeader+dwDOSHeaderPatch) = 0;
		dwDOSHeaderPatch ++;
	}
	for ( DWORD dwNTHeadersPatch = 0; dwNTHeadersPatch < dwNTHeadersSize; )
	{
		*(BYTE*)(pNTHeaders+dwNTHeadersPatch) = 0;
		dwNTHeadersPatch ++;
	}
Credits: Croner

Leicht verändert, macht es so was es soll?
06/08/2012 14:58 MilchMannx3#7184
Hey Leute, ich habe mich gerade an einen NoMenu versucht, aber ich habe ein paar probleme:
Es steht zwar Succesfully Injected, doch es funktionieren keine Funktionen.
Und wenn ich den hack meinem Kumpel per Teamviewer schicke, und er ihn benutzt steht da failed to inject.

Meine Source:
Was ist daran falsch?
06/08/2012 15:03 xxfabbelxx#7185
Quote:
Originally Posted by MilchMannx3 View Post
[...]
Lies dir mal die C++ Basics durch und schon nach ein Paar Seiten des Nachschalgewerks wirst du feststellen können, was an diesem Code falsch ist.