elitepvpers

elitepvpers (https://www.elitepvpers.com/forum/)
-   Metin2 PServer Guides & Strategies (https://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/)
-   -   fix (https://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/784483-fix.html)

tim66613 10/13/2010 19:34

fix
 
.....

SOD666 10/13/2010 19:35

1'st


Danke vielmals für deine Arbeit!!!!!!

.SpecialZ# 10/13/2010 19:36

Der einzig reale fix des erstellers.


Vielen dank, Tim !

Hoffentlich hören diese leechings und sells nun auf.

#SoFaar. 10/13/2010 19:36

Hatte ich schon vorher...
Trotz. danke & der einzige wahre der sowas schafft

gruß

Perfection- 10/13/2010 19:37

muss für die datei hier der client verschlüsselt seien??

LordMampf2 10/13/2010 19:38

Danke Tim, dass du auch noch den Usern hilfst die keinen großen Server haben!

.Lol 10/13/2010 19:38

IS-Lager auch gefixxt?

tim66613 10/13/2010 19:38

Quote:

Originally Posted by .Xero (Post 7219594)
muss für die datei hier der client verschlüsselt seien??

Nein, da ich keinen Verschlüsseler public sehen will, funktioniert diese .dll nur mit den unverschlüsselten Pack-Archiven.

Kind Regards Tim

Ownii* 10/13/2010 19:38

schade aber naja ^^
kriegst trotzdem en thx

SOD666 10/13/2010 19:38

gibt ja noch das IS lager selbst zu fixxen ;)

stage66 10/13/2010 19:39

er klappt aber igrendwie nicht ?? also der startet das garnicht macht kein fensterauf
mfg stage

DaaRkk 10/13/2010 19:39

Quote:

Die von mir erstellte .exe wird hierfür benötigt. Verteilen werde ich diese hier nicht, da sie das eigentl. Client-Executable als Resource enthält.
d.h?

iLikeYou::3 10/13/2010 19:39

THX !!!

Perfection- 10/13/2010 19:39

danke tim ,aber dein verschlüsseler war hier eh schonmal public gewesen ^^

DaaRkk 10/13/2010 19:41

Quote:

Originally Posted by .Xero (Post 7219640)
danke tim ,aber dein verschlüsseler war hier eh schonmal public gewesen ^^

It was a fake.

stage66 10/13/2010 19:41

ich kann das spiel aber nicht startetn brauche ja die exe :D^^
wer is so lieb und schick sie mir ? wer icq oder skype hat :D? pn me bitte bekomtm thx aufjeden fall :D

tim66613 10/13/2010 19:42

Quote:

Originally Posted by ℓσℓ (Post 7219596)
Dankeschön aber für mich wäre es lieber es selbst zu fixxen.

Code:

void PythonNetworkStream::Initialize()
{
    STORM_STATIC_ASSERT(sizeof(TPacketSafeBoxItemSet) == 40);

    uint8_t* RecvSafeBoxSetPacketAddr = reinterpret_cast<uint8_t*>(0x41E530);

    DetourClassFunc(RecvSafeBoxSetPacketAddr, reinterpret_cast<const uint8_t*>(&RecvSafeBoxSetPacket_Hook), GetAsmInstrLength(RecvSafeBoxSetPacketAddr, 8));
}

Code:

char __stdcall PythonNetworkStream::RecvSafeBoxSetPacket_Hook(PythonNetworkStream* self)
{
    TPacketSafeBoxItemSet packet;
    if (!self->Recv(&packet, sizeof(TPacketSafeBoxItemSet)))
        return 0;

    metin2_vc_client::packet_item itemData;

    itemData.itemVnum = packet.m_itemVnum;
    itemData.itemCount = packet.m_itemCount;
    memcpy(itemData.itemMetinSockets, packet.m_itemMetinSockets, sizeof(uint32_t) * 3);
    memcpy(itemData.attributes, packet.m_itemAttributes, sizeof(metin2_vc_client::packet_item_attribute) * 7);

    // NOOOOO, assembly
    void (__stdcall* CPythonSafebox__SetItemData)(uint32_t slotIndex, const void* data) = (void (__stdcall* )(uint32_t, const void*))0x467500;
    const void* safeboxSingleton = *(void **)0x61C370;
    asm("movl %0, %%ecx" : : "m" (safeboxSingleton));
    CPythonSafebox__SetItemData(packet.m_itemIndex, &itemData);

    (reinterpret_cast<uint8_t*>(self))[1322] = 1; // Refresh Safebox
    return 1;
}

Der alte Code hätte auch funktioniert ...

Kleine Dokumentation:
packet_item ist der Name der struct im Metin2 Client (laut .map)
CPythonNetworkStream ist der Name der MainStream-Klasse im Client (Char- und World-Server)
CNetworkStream ist der Name der allgemeinen Socket-Klasse im Client (diese enthält auch den Encryption/Decryption Code).

Kind Regards Tim

.Zander 10/13/2010 19:42

nice!
Funktioniert es mit dem Modifiziertem 2010er Client der hier pub is ( von xIvan4ikx)?
mfg
Zander

Perfection- 10/13/2010 19:42

ja nur es geht wirklich habe es damit gepackt und ich kann es danach mit keinem anderen entpacker mehr entpacken und auch wen das cmd fenster aufgeht steht auch das es von Tim66613 ist

SOD666 10/13/2010 19:44

Quote:

Originally Posted by tim66613 (Post 7219674)
Code:

void PythonNetworkStream::Initialize()
{
    STORM_STATIC_ASSERT(sizeof(TPacketSafeBoxItemSet) == 40);

    uint8_t* RecvSafeBoxSetPacketAddr = reinterpret_cast<uint8_t*>(0x41E530);

    DetourClassFunc(RecvSafeBoxSetPacketAddr, reinterpret_cast<const uint8_t*>(&RecvSafeBoxSetPacket_Hook), GetAsmInstrLength(RecvSafeBoxSetPacketAddr, 8));
}

Code:

char __stdcall PythonNetworkStream::RecvSafeBoxSetPacket_Hook(PythonNetworkStream* self)
{
    TPacketSafeBoxItemSet packet;
    if (!self->Recv(&packet, sizeof(TPacketSafeBoxItemSet)))
        return 0;

    metin2_vc_client::packet_item itemData;

    itemData.itemVnum = packet.m_itemVnum;
    itemData.itemCount = packet.m_itemCount;
    memcpy(itemData.itemMetinSockets, packet.m_itemMetinSockets, sizeof(uint32_t) * 3);
    memcpy(itemData.attributes, packet.m_itemAttributes, sizeof(metin2_vc_client::packet_item_attribute) * 7);

    // NOOOOO, assembly
    void (__stdcall* CPythonSafebox__SetItemData)(uint32_t slotIndex, const void* data) = (void (__stdcall* )(DWORD, const void*))0x467500;
    const void* safeboxSingleton = *(void **)0x61C370;
    asm("movl %0, %%ecx" : : "m" (safeboxSingleton));
    CPythonSafebox__SetItemData(packet.m_itemIndex, &itemData);

    (reinterpret_cast<uint8_t*>(self))[1322] = 1; // Refresh Safebox
    return 1;
}

Der alte Code hätte auch funktioniert ...

Kind Regards Tim


Könntest du vllt. noch einen Tipp geben bei dem Itemshop-Lager aber das Itemshop-Lager selbst nonpub lassen?

stage66 10/13/2010 19:46

hmm will woll keiner helfen

#EroX 10/13/2010 19:47

WTF!

Für was haben wir dan ne Lagertruhe esrstellt -,-

Aber naja. thx<3

fg Afro

Hermes2012 10/13/2010 19:51

Danke tim kann dieses ganze

Verkaufen von exen/programmen/ etc die einem garnicht selbst gehören nicht leiden

BL00DSTYL3 10/13/2010 19:52

danke :P gute Arbeit^^

stage66 10/13/2010 19:52

hmm also keiner will helfen thx

Bayolein 10/13/2010 19:53

Quote:

Originally Posted by stage66 (Post 7219812)
hmm also keiner will helfen thx

Wenn dus noch 10 mal
wiederholst gibts auch
kein besseres Ergebnis

.SpecialZ# 10/13/2010 19:53

Quote:

Originally Posted by Hermes2012 (Post 7219797)
Danke tim kann dieses ganze

Verkaufen von exen/programmen/ etc die einem garnicht selbst gehören nicht leiden

Ich denke hier geht´s weniger ums "mögen", sondern eher um den Fakt das es eine art von Diebstahl ist.

Er hat das ganze ding unter Copyright - Wenn du sein Auto stehlen würdest könnte dich exakt die selbe Strafe treffen. Pixel hin oder her.

Greetings !

syηтaχ 10/13/2010 19:53

Quote:

Originally Posted by tim66613 (Post 7219674)
Code:

void PythonNetworkStream::Initialize()
{
    STORM_STATIC_ASSERT(sizeof(TPacketSafeBoxItemSet) == 40);

    uint8_t* RecvSafeBoxSetPacketAddr = reinterpret_cast<uint8_t*>(0x41E530);

    DetourClassFunc(RecvSafeBoxSetPacketAddr, reinterpret_cast<const uint8_t*>(&RecvSafeBoxSetPacket_Hook), GetAsmInstrLength(RecvSafeBoxSetPacketAddr, 8));
}

Code:

char __stdcall PythonNetworkStream::RecvSafeBoxSetPacket_Hook(PythonNetworkStream* self)
{
    TPacketSafeBoxItemSet packet;
    if (!self->Recv(&packet, sizeof(TPacketSafeBoxItemSet)))
        return 0;

    metin2_vc_client::packet_item itemData;

    itemData.itemVnum = packet.m_itemVnum;
    itemData.itemCount = packet.m_itemCount;
    memcpy(itemData.itemMetinSockets, packet.m_itemMetinSockets, sizeof(uint32_t) * 3);
    memcpy(itemData.attributes, packet.m_itemAttributes, sizeof(metin2_vc_client::packet_item_attribute) * 7);

    // NOOOOO, assembly
    void (__stdcall* CPythonSafebox__SetItemData)(uint32_t slotIndex, const void* data) = (void (__stdcall* )(uint32_t, const void*))0x467500;
    const void* safeboxSingleton = *(void **)0x61C370;
    asm("movl %0, %%ecx" : : "m" (safeboxSingleton));
    CPythonSafebox__SetItemData(packet.m_itemIndex, &itemData);

    (reinterpret_cast<uint8_t*>(self))[1322] = 1; // Refresh Safebox
    return 1;
}

Der alte Code hätte auch funktioniert ...

Kleine Dokumentation:
packet_item ist der Name der struct im Metin2 Client (laut .map)
CPythonNetworkStream ist der Name der MainStream-Klasse im Client (Char- und World-Server)
CNetworkStream ist der Name der allgemeinen Socket-Klasse im Client (diese enthält auch den Encryption/Decryption Code).

Kind Regards Tim

@ Tim66613

woher haste den Code Auszug würde mich intressieren ^^.

MfG -Eazy-

Ownii* 10/13/2010 19:53

Ich finds auch mies das andere die arbeit von tim releasen und nicht einmal tim fragen...
bei mia klappts zwar nicht der öffnet fenster nicht glaube weiß auch worans liegt aber naja ^^

Megaload 10/13/2010 19:55

Ich kann mich nur bei Tim entschuldigen das ich es versucht habe zu vk aber dann diverse angebote Abgelehnt habe "Einzelnde Personen können selbst befragt werden".

Es tut mir Leid Tim.

Mit freundlichen Grüßen und ein Big Sry
Megaload

Hermes2012 10/13/2010 19:56

Ja hast recht
 
Quote:

Originally Posted by HardCoreBo0n (Post 7219822)
Ich denke hier geht´s weniger ums "mögen", sondern eher um den Fakt das es eine art von Diebstahl ist.

Er hat das ganze ding unter Copyright - Wenn du sein Auto stehlen würdest könnte dich exakt die selbe Strafe treffen. Pixel hin oder her.

Greetings !


Ich mein ist ja schon ganz schön dreißt ein programm von nem anderen zu nehmen und verkaufen zu wollen wenn einer unbediengt ein prog verkaufen will soll er es auch selber scripten und nicht die bemühungen von nem anderen verkaufen

vpser 10/13/2010 20:00

İ need .exe for this dll

Perfection- 10/13/2010 20:03

frage geht es in ivan seinem client?? den habe es da reingepackt und es ging nicht

tim66613 10/13/2010 20:03

Quote:

Originally Posted by -Eazy- (Post 7219823)
@ Tim66613

woher haste den Code Auszug würde mich intressieren ^^.

MfG -Eazy-

Aus meinem Source....

Z:\svn\metin2client\Code\Tools\2010ClientHelper\sr c\PythonNetworkStream.cpp

Kind Regards Tim

[PixeL] 10/13/2010 20:05

Quote:

Originally Posted by .Xero (Post 7220000)
frage geht es in ivan seinem client?? den habe es da reingepackt und es ging nicht

Die Frage hast du dir damit wohl selbst beantwortet.

syηтaχ 10/13/2010 20:05

@ tim66613

wie hast du heraussgefunden was man fixxen muss ?
Achja noch eine Frage was für Programmiersprachen beherrscht du ?

MfG -Eazy- :)

DaaRkk 10/13/2010 20:05

Quote:

Originally Posted by .Xero (Post 7220000)
frage geht es in ivan seinem client?? den habe es da reingepackt und es ging nicht

You need a Portable Executable File.

Hermes2012 10/13/2010 20:06

jo interessiert mcih auch was für programmiersprachen beherscht du

stage66 10/13/2010 20:07

also kann man nix damit an fangen wenn man die exe / portable Executable file nicht hat?? ... na toll so sehr gefreund ;D naja

tim66613 10/13/2010 20:07

Quote:

Originally Posted by -Eazy- (Post 7220041)
@ tim66613

wie hast du heraussgefunden was man fixxen muss ?
Achja noch eine Frage was für Programmiersprachen beherrscht du ?

MfG -Eazy- :)

Ich hab' die beiden Client-Versionen verglichen.
Und da ich mich schon etwas länger mit dem Metin2 Client beschäftige war der Rest ein Kinderspiel.

Ich beherrsche neben C++, ECMAScript (AS[2,3], JS) sowie PHP und HTML (eigentl. keine Programmiersprache)

Kind Regards Tim


All times are GMT +2. The time now is 11:09.

Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.