|
You last visited: Today at 02:51
Advertisement
Packet Offsets - All Servers
Discussion on Packet Offsets - All Servers within the Metin2 Hacks, Bots, Cheats, Exploits & Macros forum part of the Metin2 category.
08/15/2009, 04:11
|
#1
|
elite*gold: 55
Join Date: Mar 2006
Posts: 4,582
Received Thanks: 1,537
|
Packet Offsets - All Servers
Huhu, hier habt ihr die Packet offsets für Disconnects Source für ALLE server (auch P-Server )
PHP Code:
DWORD SearchPattern(char* pattern,DWORD start_offset ,DWORD ende) { DWORD offset=start_offset; DWORD start=offset; DWORD backoffset=0; DWORD size =strlen(pattern)-1; DWORD foundoffset=0; char * pEnd=pattern; while(1) { char &myposition=*(char*)offset; if ((pEnd[1]!='x')) { char temp=(char)strtoul(pEnd, &pEnd, 0x10); if (temp==myposition) { if (foundoffset==0) { foundoffset=offset; } } else { pEnd=pattern; if (foundoffset != 0) offset=foundoffset; foundoffset=0; } } else { pEnd=&pEnd[2]; } offset++; if (((DWORD)pEnd-(DWORD)pattern>=size)||(offset>=ende)) break; } return foundoffset; }
(c) by Disconnect
PHP Code:
[php] DWORD Offset1; DWORD Offset2; DWORD Offset3; DWORD Offset4;
PHP Code:
BYTE *EncryptionKey = NULL;
void SendPacket(BYTE *src, DWORD PacketLength) { if (EncryptionKey != NULL) { void (__fastcall *addSecurityByte)(void *) = (void (__fastcall *)(void *))Offset1; void *temp = (void *)*((DWORD *)0x005F4FC8); BYTE *Backup = *(BYTE **)((DWORD)temp + 0x30); DWORD Backup2 = *(DWORD *)((DWORD)temp + 0x38); *(BYTE **)((DWORD)temp + 0x30) = src; *(DWORD *)((DWORD)temp + 0x38) = PacketLength; (*addSecurityByte)(temp); *(BYTE **)((DWORD)temp + 0x30) = Backup; *(DWORD *)((DWORD)temp + 0x38) = Backup2; void (*EncryptMyPacket)(BYTE *, BYTE *, BYTE *, DWORD) = (void (__cdecl *)(BYTE *, BYTE *, BYTE *, DWORD))(Offset2 - 5); BYTE *EncryptedPacket = new BYTE[1000]; (*EncryptMyPacket)(EncryptedPacket, src, EncryptionKey, PacketLength+1); DWORD FinalPacketLength = ((PacketLength + 1) % 8 == 0) ? (PacketLength + 1) : ((((PacketLength + 1) / 8) + 1) * 8); send(*(SOCKET *)((DWORD)temp + 0x244), (const char *)EncryptedPacket, FinalPacketLength, 0); delete EncryptedPacket; } }
PHP Code:
__declspec(naked) void DetouredFunction() { BYTE *dst; BYTE *src; BYTE *key; DWORD len; __asm { pushad pushfd mov ebp, esp mov eax, [esp+0x28] mov dst, eax mov eax, [esp+0x2C] mov src, eax mov eax, [esp+0x30] mov key, eax mov eax, [esp+0x34] mov len, eax }
//Hier callt ihr am besten eine seperate Funktion
__asm { popfd popad sub esp, 0x08 push ebx push esi jmp Offset2 } }
void HookInternalCall() { *(BYTE *)(Offset2) = 0xE9; *(DWORD *)(Offset2 + 1) = (DWORD)&DetouredFunction - Offset2 - 5; Offset2 += 5; }
PHP Code:
BYTE *dst; BYTE *src; BYTE *key; DWORD len; DWORD ReturnOffset;
__declspec(naked) void DetouredFunction2() { __asm { pushad pushfd mov eax, [esp+0x24] mov ReturnOffset, eax mov eax, label1 mov [esp+0x24], eax mov eax, [esp+0x28] mov dst, eax mov eax, [esp+0x2C] mov src, eax mov eax, [esp+0x30] mov key, eax mov eax, [esp+0x34] mov len, eax
popfd popad mov eax, [esp+0x10] sub esp, 0x08 jmp Offset3 }
label1: __asm { pushad pushfd }
//Hier callt ihr am besten eine seperate Funktion
__asm { popfd popad jmp ReturnOffset } }
void HookInternalCall2() { *(BYTE *)(Offset3) = 0xE9; *(DWORD *)(Offset3 + 1) = (DWORD)&DetouredFunction2 - Offset3 - 5; Offset3 += 7; }
PHP Code:
BYTE *Packet; DWORD PacketLength;
__declspec(naked) void DetouredFunction3() {
__asm { pushad pushfd mov edx, [ecx+0x20] mov esi, [ecx+0x14] add esi, edx mov Packet, esi mov eax, [esp+0x28] mov PacketLength, eax }
//Hier callt ihr am besten eine seperate Funktion
__asm { popfd popad mov eax, ecx mov edx, [eax+0x20] jmp Offset4 } }
void HookInternalCall3() { *(BYTE *)(Offset4) = 0xE9; *(DWORD *)(Offset4 + 1) = (DWORD)&DetouredFunction3 - Offset4 - 5; Offset4 += 5; }
[/PHP]
Das war die Function zum Suchen...
und so benutzt ihr das dann
PHP Code:
printf("[0x%6d] Found Offset1 \b",Offset1=SearchPattern("8A 81 5C 02 00 00 84",0x00400000,0x007FFFFF)); printf("[0x%6d] Found Offset2 \b",Offset2=SearchPattern("83 EC 08 53 56 57 8B 7C 24 24 8B C7 25 07 00 00 80 79 05 48 83 C8 F8 ",0x00400000,0x007FFFFF)); printf("[0x%6d] Found Offset3 \b",Offset3=SearchPattern("8B 44 24 10 83 EC 08 8B",0x00400000,0x007FFFFF)); printf("[0x%6d] Found Offset4 \b",Offset4=SearchPattern("8B C1 8B 50 20 8B 48 1C",0x00400000,0x007FFFFF));
|
|
|
08/15/2009, 04:24
|
#2
|
elite*gold: 650
Join Date: Oct 2007
Posts: 353
Received Thanks: 47
|
Kannst du auch erklären was man damit anfangen kann?
|
|
|
08/15/2009, 04:56
|
#3
|
elite*gold: 0
Join Date: Feb 2007
Posts: 2,666
Received Thanks: 754
|
xD chillen kann man damit.... xD waah blood du bist son sack :X du weisst warum ;D hahahahaaaaa
|
|
|
08/15/2009, 04:58
|
#4
|
elite*gold: 55
Join Date: Mar 2006
Posts: 4,582
Received Thanks: 1,537
|
Yang Hack ftw xD und ja wer jetzt rumnervt es gibt ihn Illu hat das video sehn
|
|
|
08/15/2009, 05:09
|
#5
|
elite*gold: 0
Join Date: Feb 2007
Posts: 2,666
Received Thanks: 754
|
Kanns nur bestätigen haha zu gut einfach zu gut xD ich renn gegen die wand
|
|
|
08/15/2009, 05:37
|
#6
|
elite*gold: 650
Join Date: Oct 2007
Posts: 353
Received Thanks: 47
|
Dann fangt mal an zu erklären^^
|
|
|
08/15/2009, 05:39
|
#7
|
elite*gold: 0
Join Date: Feb 2007
Posts: 2,666
Received Thanks: 754
|
^^haah lol ....
denkste bloodx macht ihn jetz pub 5min nach dem er ihn gefunden hat...?
never :S
ma wieder das schäne stichwort pakets =D
|
|
|
08/15/2009, 05:40
|
#8
|
elite*gold: 55
Join Date: Mar 2006
Posts: 4,582
Received Thanks: 1,537
|
(c) by Disconnect
PHP Code:
DWORD Offset1; DWORD Offset2; DWORD Offset3; DWORD Offset4;
PHP Code:
BYTE *EncryptionKey = NULL; void SendPacket(BYTE *src, DWORD PacketLength) { if (EncryptionKey != NULL) { void (__fastcall *addSecurityByte)(void *) = (void (__fastcall *)(void *))Offset1; void *temp = (void *)*((DWORD *)0x005F4FC8); BYTE *Backup = *(BYTE **)((DWORD)temp + 0x30); DWORD Backup2 = *(DWORD *)((DWORD)temp + 0x38); *(BYTE **)((DWORD)temp + 0x30) = src; *(DWORD *)((DWORD)temp + 0x38) = PacketLength; (*addSecurityByte)(temp); *(BYTE **)((DWORD)temp + 0x30) = Backup; *(DWORD *)((DWORD)temp + 0x38) = Backup2; void (*EncryptMyPacket)(BYTE *, BYTE *, BYTE *, DWORD) = (void (__cdecl *)(BYTE *, BYTE *, BYTE *, DWORD))(Offset2 - 5); BYTE *EncryptedPacket = new BYTE[1000]; (*EncryptMyPacket)(EncryptedPacket, src, EncryptionKey, PacketLength+1); DWORD FinalPacketLength = ((PacketLength + 1) % 8 == 0) ? (PacketLength + 1) : ((((PacketLength + 1) / 8) + 1) * 8); send(*(SOCKET *)((DWORD)temp + 0x244), (const char *)EncryptedPacket, FinalPacketLength, 0); delete EncryptedPacket; } }
PHP Code:
__declspec(naked) void DetouredFunction() { BYTE *dst; BYTE *src; BYTE *key; DWORD len; __asm { pushad pushfd mov ebp, esp mov eax, [esp+0x28] mov dst, eax mov eax, [esp+0x2C] mov src, eax mov eax, [esp+0x30] mov key, eax mov eax, [esp+0x34] mov len, eax } //Hier callt ihr am besten eine seperate Funktion __asm { popfd popad sub esp, 0x08 push ebx push esi jmp Offset2 } } void HookInternalCall() { *(BYTE *)(Offset2) = 0xE9; *(DWORD *)(Offset2 + 1) = (DWORD)&DetouredFunction - Offset2 - 5; Offset2 += 5; }
PHP Code:
BYTE *dst; BYTE *src; BYTE *key; DWORD len; DWORD ReturnOffset; __declspec(naked) void DetouredFunction2() { __asm { pushad pushfd mov eax, [esp+0x24] mov ReturnOffset, eax mov eax, label1 mov [esp+0x24], eax mov eax, [esp+0x28] mov dst, eax mov eax, [esp+0x2C] mov src, eax mov eax, [esp+0x30] mov key, eax mov eax, [esp+0x34] mov len, eax popfd popad mov eax, [esp+0x10] sub esp, 0x08 jmp Offset3 } label1: __asm { pushad pushfd } //Hier callt ihr am besten eine seperate Funktion __asm { popfd popad jmp ReturnOffset } } void HookInternalCall2() { *(BYTE *)(Offset3) = 0xE9; *(DWORD *)(Offset3 + 1) = (DWORD)&DetouredFunction2 - Offset3 - 5; Offset3 += 7; }
PHP Code:
BYTE *Packet; DWORD PacketLength; __declspec(naked) void DetouredFunction3() { __asm { pushad pushfd mov edx, [ecx+0x20] mov esi, [ecx+0x14] add esi, edx mov Packet, esi mov eax, [esp+0x28] mov PacketLength, eax } //Hier callt ihr am besten eine seperate Funktion __asm { popfd popad mov eax, ecx mov edx, [eax+0x20] jmp Offset4 } } void HookInternalCall3() { *(BYTE *)(Offset4) = 0xE9; *(DWORD *)(Offset4 + 1) = (DWORD)&DetouredFunction3 - Offset4 - 5; Offset4 += 5; }
|
|
|
08/15/2009, 05:42
|
#9
|
elite*gold: 650
Join Date: Oct 2007
Posts: 353
Received Thanks: 47
|
Naja Blood findets und gibt haufenweise Tipps^^ Blood bitte hör auf damit. Du zerstörst Metin2 wenn es Wirklich einen Yanghack gibt so wie ihr ihn beschreibt^^
Mir könnt ihrs gerne sagen :P
|
|
|
08/15/2009, 05:42
|
#10
|
elite*gold: 0
Join Date: Feb 2007
Posts: 2,666
Received Thanks: 754
|
lol jetz denken die alle das wäre der hack haha =DDDDDDD
xD wegen dc's source
er zerstört doch net das game der wird warscheinlich nie an die öffentlichkeit kommn nehm ich schwer an
|
|
|
08/15/2009, 05:44
|
#11
|
elite*gold: 650
Join Date: Oct 2007
Posts: 353
Received Thanks: 47
|
Das denke ich nicht. Aber das sind haufen weise Hinweise auf eine gewisse Möglichkeit auf einen "Trick" Bzw. Bug oder vllt. sogar möglchen Hack.
Quote:
nope das wird nicht pub, ich mach lieber geld xD
|
Dann hör aber bitte auch auf Meilensteine zu setzten damit nacher noch ein Volltrottel drauf kommen kann
|
|
|
08/15/2009, 05:45
|
#12
|
elite*gold: 0
Join Date: Feb 2007
Posts: 2,666
Received Thanks: 754
|
haha ey kennst du ?
Ich bin doch nur ein egoist
Die ganze welt dreht sich um mich!
haha zu gut falco erster deutsch rappender künstler :P
Naja back to topic >.<
edit: da is doch kein tipp in keinster weisse .....
die offsets ham net viel mit dem bug/hack what ever wie ihr es nennt zu tuhn... o0...
nur im entferntesten sinne
Und der einzige tipp is halt pakets das wars ^^ aber die leute die uns kennen un vorallem bloodx wissn ;D das wir halt mit pakets arbeiten is kein geheimniss <.<
und das war einfach mal ne kurze klarstellung ;P das es doch irgendwie en yanghack gibt =P.
closen warum? die offsets könnten für manche leute noch sehr intressant sein
Back to topic
|
|
|
08/15/2009, 05:47
|
#13
|
elite*gold: 650
Join Date: Oct 2007
Posts: 353
Received Thanks: 47
|
Ja ich kenne den Song. War früher mal mein Lieblingsong.
Also das hier wird sowieso nur Spam.
Ich bin für nen Close^^ Ihr sagt ja nichts. Ich habe alles abgespeicher falls ich auch mal Ahnung davon haben werde. Fertig^^
Close? Weil das doch wirklich nur Spam wird. Morgen mittag kommen die ganzen neun Jahre alten Kids an und wollen wissen wie man an Yang kommt. Dann endet das hier im Chaos und es kommen 10000kkk Treads ob es vllt. nicht doch jemand Pub machen will, der weiß wies geht.
|
|
|
08/15/2009, 05:57
|
#14
|
elite*gold: 0
Join Date: Feb 2007
Posts: 2,666
Received Thanks: 754
|
xD ya und weiter? es weiss niemand wie es geht bis auf 2leute ....sogesehn eigentlich 1eine person xD bloodx steht der ruhm zu :P.
und da können die machen was sie wollen werden NIEMALS ran kommn ;D...
aber es is sogesehn eine berichtigung ....
selbst hier als sticky steht irgendwo yanghack gibt es nicht das wurde wiederlegt ;D .
ob ihrs glaubt oder nicht bleibt vollkommn euch überlassn xD...
ich weiss was ich gesehn hab =) und was ich sehe usw.
Achja pms werden ignoiert.... zu dem thema =)
ich bin pennen...
asu und mit denn offsets könnt ihr jetz auf pservern items erstellen o0 viel spaß an die leute die wissn wies geht
|
|
|
08/15/2009, 07:02
|
#15
|
elite*gold: 20
Join Date: Aug 2009
Posts: 800
Received Thanks: 4,031
|
ein fall von ADS ...
ihr braucht aufmerksamkeit hab ich recht?
|
|
|
Similar Threads
|
Need help with memory offsets and packet opcodes
01/09/2007 - Conquer Online 2 - 7 Replies
Im currently involved in a new botting program project, called FuckBot, which when done, will be a scirptable, multi game bot. We are moving along in development quite well, and are beginning to work on compatibility with Conquer Online. To help speed up development, i'm asking that people help contribute here, by posting memory offsets for various things, such as health, exp, level, spouse and such, everything possible, as well as packets, and their opcodes. Packet logs would be extremely...
|
All times are GMT +2. The time now is 02:51.
|
|