Quote:
eine frage was ist hier der playerpointer? bzw. wie erkenn ich in welcher zeile er steht?:
Quote:
Die Methode mit dem String "DX01" hat Gamersfirst gepatcht.
CPU Disasm Address Hex dump Command Comments 0051F63D |. 8B0D D4579E00 MOV ECX,DWORD PTR DS:[9E57D4] <-- Player Pointer 0051F643 |. 8B81 34C40000 MOV EAX,DWORD PTR DS:[ECX+0C434] 0051F649 |. 0FB789 DA0101 MOVZX ECX,WORD PTR DS:[ECX+101DA] <-- Weapon Offset 0051F650 |. 51 PUSH ECX ; /Arg1 0051F651 |. E8 7CE5EFFF CALL 0041DBD2 ; \WarRock.0041DBD2 0051F656 |. 8BF8 MOV EDI,EAX 0051F658 |. 897C24 14 MOV DWORD PTR SS:[LOCAL.16],EDI 0051F65C |. 3BFE CMP EDI,ESI 0051F65E |. 0F84 81060000 JE 0051FCE5 0051F664 |. 8B43 38 MOV EAX,DWORD PTR DS:[EBX+38] 0051F667 |. B1 01 MOV CL,1 0051F669 |. E8 729A0B00 CALL 005D90E0 0051F66E |. 8D4424 18 LEA EAX,[LOCAL.15] 0051F672 |. 50 PUSH EAX ; /Arg1 => OFFSET LOCAL.15 0051F673 |. 8BCF MOV ECX,EDI ; | 0051F675 |. E8 56D50700 CALL 0059CBD0 ; \WarRock.0059CBD0 0051F67A |. 897424 50 MOV DWORD PTR SS:[LOCAL.1],ESI 0051F67E |. 8B30 MOV ESI,DWORD PTR DS:[EAX] 0051F680 |. E8 DBD30700 CALL 0059CA60 0051F685 |. 8B4B 38 MOV ECX,DWORD PTR DS:[EBX+38] 0051F688 |. 6A 02 PUSH 2 ; /Arg2 = 2 0051F68A |. 50 PUSH EAX ; |Arg1 0051F68B |. E8 C0B50B00 CALL 005DAC50 ; \WarRock.005DAC50 0051F690 |. 834C24 50 FF OR DWORD PTR SS:[LOCAL.1],FFFFFFFF 0051F695 |. 8D4C24 18 LEA ECX,[LOCAL.15] 0051F699 |. 8BF0 MOV ESI,EAX 0051F69B |. E8 00D90700 CALL 0059CFA0 ; [WarRock.0059CFA0 0051F6A0 |. 68 CC028200 PUSH 008202CC ; ASCII "DJ33" <-- Search String
ok dankeQuote:
Wenn sie DX01 Patched haben, glaub ich das sie CF01 auch Patched haben.
Quote:
und sagen wir ich habe eine adresse z.B. 0x001CF8 (playersize) die adresse wär dann ja 001CF8 denke ich mal und wenn ich nun nach den string in der nähe von der adresse suchen will dann muss ich ja erstmal finden an welcherstelle die adresse steht weist du/jemand wie ich in olly oder ida nach dieser adresse suchen kann?
if (idle134 ==1)
{
DWORD dwPlayerPtr = *(DWORD*)ADR_PLAYERPOINTER;
if(dwPlayerPtr!= 0)
{
*(float*)(dwPlayerPtr+ OFS_NOM134IDLE) = 1;
}
}
#define OFS_Weapon1 0x101D8 #define OFS_Weapon2 0x101DA #define OFS_Weapon3 0x101DC *(word*)(dwPlayerPtr+OFS_Weapon1) = /*Nummer Der Waffe*/; *(word*)(dwPlayerPtr+OFS_Weapon2) = /*Nummer Der Waffe*/; *(word*)(dwPlayerPtr+OFS_Weapon3) = /*Nummer Der Waffe*/; Credits:SubZerom & UPK
Quote:
if (idle134 ==1)
{
DWORD dwPlayerPtr = *(DWORD*)ADR_PLAYERPOINTER; //Das braucht man eig. nur einmal
if(dwPlayerPtr!= 0)
{
*(float*)(dwPlayerPtr+ OFS_NOM134IDLE) = 1;
}
}
Also der rote teil ist eig. unnötig:D
Und ja du kannst es schon testen
if(idle134[COLOR="Red"] ==1[/COLOR])
[COLOR="Red"]{
DWORD dwPlayerPtr = *(DWORD*)ADR_PLAYERPOINTER;
if(dwPlayerPtr!= 0)
{[/COLOR]
*(float*)(dwPlayerPtr+ OFS_NOM134IDLE) = 1;
[COLOR="Red"]}
}[/COLOR]
Quote:
thx^^ hat mir geholfen
so? 0x09E57D4
ist das die water height adresse? 9EC964
und das fogcolor?
1: 9E64A8
2: 9E64A4
3:9E64A0
€: ist das noch serverpointer? CF01
und sagen wir ich habe eine adresse z.B. 0x001CF8 (playersize) die adresse wär dann ja 001CF8 denke ich mal und wenn ich nun nach den string in der nähe von der adresse suchen will dann muss ich ja erstmal finden an welcherstelle die adresse steht weist du/jemand wie ich in olly oder ida nach dieser adresse suchen kann?
CPU Disasm Address Hex dump Command Comments 00498B76 |. 68 247C8200 PUSH 00827C24 ; ASCII "DestoryMission Success" 00498B7B |. 50 PUSH EAX 00498B7C |. C605 8F549E00 MOV BYTE PTR DS:[9E548F],1 00498B83 |. FF51 08 CALL DWORD PTR DS:[ECX+8] 00498B86 |. 59 POP ECX 00498B87 |. 59 POP ECX 00498B88 |. B0 01 MOV AL,1 00498B8A \. C3 RETN 00498B8B /. 53 PUSH EBX 00498B8C |. 55 PUSH EBP 00498B8D |. 56 PUSH ESI 00498B8E |. 33ED XOR EBP,EBP 00498B90 |. 57 PUSH EDI 00498B91 |. 8B3D 34468100 MOV EDI,DWORD PTR DS:[814634] ; Entry point 00498B97 |. BB 94010000 MOV EBX,194 00498B9C |. 392D 54579E00 CMP DWORD PTR DS:[9E5754],EBP[B][U][COLOR="Red"] --> Unlimited Ammo[/COLOR][/U][/B] 00498BA2 |. 74 74 JE SHORT 00498C18 00498BA4 |. E8 3DC90300 CALL 004D54E6 00498BA9 |. 39A8 B0C40000 CMP DWORD PTR DS:[EAX+0C4B0],EBP 00498BAF |. 74 50 JE SHORT 00498C01 00498BB1 |. 53 PUSH EBX 00498BB2 |. 6A 01 PUSH 1 00498BB4 |. FFD7 CALL EDI 00498BB6 |. 8BF0 MOV ESI,EAX 00498BB8 |. 59 POP ECX 00498BB9 |. 59 POP ECX 00498BBA |. 3BF5 CMP ESI,EBP 00498BBC |. 75 06 JNE SHORT 00498BC4 00498BBE |. FF15 3C468100 CALL DWORD PTR DS:[81463C] 00498BC4 |> E8 1DC90300 CALL 004D54E6 00498BC9 |. 8B80 B0C40000 MOV EAX,DWORD PTR DS:[EAX+0C4B0] 00498BCF |. 8B80 AC030000 MOV EAX,DWORD PTR DS:[EAX+3AC] 00498BD5 |. 55 PUSH EBP 00498BD6 |. 56 PUSH ESI 00498BD7 |. 6A FF PUSH -1 00498BD9 |. 8946 18 MOV DWORD PTR DS:[ESI+18],EAX 00498BDC |. A1 70579E00 MOV EAX,DWORD PTR DS:[9E5770][B][U][COLOR="Red"] --> Serverpointer[/COLOR][/U][/B] 00498BE1 |. 8B80 F8B71100 MOV EAX,DWORD PTR DS:[EAX+11B7F8][B][U][COLOR="Red"] --> MySize[/COLOR][/U][/B]
void W_Hack(DWORD x)
{*(DWORD*)(*(DWORD*)(ADR_PlayerPointer)+OFS_WeaponHack1) =x;
*(DWORD*)(*(DWORD*)(ADR_PlayerPointer)+OFS_WeaponHack2) =x;
*(DWORD*)(*(DWORD*)(ADR_PlayerPointer)+OFS_WeaponHack3) =x;}
if(kcHack.Weapon.Weapon_H) W_Hack(*(DWORD*)kcHack.Weapon.Weapon_H);