韩国官方奇迹S9的最新封包乱序处理源代码
// PacketTwister.h: interface for the PacketTwister class.
//////////////////////////////////////////////////////////////////////
#ifndef __PACKETTWISTER_H__
#define __PACKETTWISTER_H__
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class PacketTwister
{
public:
        PacketTwister(){};
        virtual ~PacketTwister(){};
        virtual void Twist(BYTE* data, int length) = 0;
        virtual void Correct(BYTE* data, int length) = 0;
};
#endif
// PacketTwisterImpl.h: interface for the PacketTwisterImpl class.
//
//////////////////////////////////////////////////////////////////////
#ifndef __PACKETTWISTERIMPL_H__
#define __PACKETTWISTERIMPL_H__
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "PacketTwistRunner.h"
class PacketTwister_1 : public PacketTwister
{
public:
        virtual void Twist(BYTE* data, int length);
        virtual void Correct(BYTE* data, int length);
        
        PacketTwister_1(){};
        virtual ~PacketTwister_1(){};
};
class PacketTwister_2 : public PacketTwister
{
public:
        virtual void Twist(BYTE* data, int length);
        virtual void Correct(BYTE* data, int length);
        PacketTwister_2(){};
        virtual ~PacketTwister_2(){};
};
class PacketTwister_3 : public PacketTwister
{
public:
        virtual void Twist(BYTE* data, int length);
        virtual void Correct(BYTE* data, int length);
        PacketTwister_3(){};
        virtual ~PacketTwister_3(){};
};
class PacketTwister_4 : public PacketTwister
{
public:
        virtual void Twist(BYTE* data, int length);
        virtual void Correct(BYTE* data, int length);
        PacketTwister_4(){};
        virtual ~PacketTwister_4(){};
};
class PacketTwister_5 : public PacketTwister
{
public:
        virtual void Twist(BYTE* data, int length);
        virtual void Correct(BYTE* data, int length);
        PacketTwister_5(){};
        virtual ~PacketTwister_5(){};
};
class PacketTwister_6 : public PacketTwister
{
public:
        virtual void Twist(BYTE* data, int length);
        virtual void Correct(BYTE* data, int length);
        PacketTwister_6(){};
        virtual ~PacketTwister_6(){};
};
class PacketTwister_7 : public PacketTwister
{
public:
        virtual void Twist(BYTE* data, int length);
        virtual void Correct(BYTE* data, int length);
        PacketTwister_7(){};
        virtual ~PacketTwister_7(){};
};
class PacketTwister_8 : public PacketTwister
{
public:
        virtual void Twist(BYTE* data, int length);
        virtual void Correct(BYTE* data, int length);
        PacketTwister_8(){};
        virtual ~PacketTwister_8(){};
};
class PacketTwister_9 : public PacketTwister
{
public:
        virtual void Twist(BYTE* data, int length);
        virtual void Correct(BYTE* data, int length);
        PacketTwister_9(){};
        virtual ~PacketTwister_9(){};
};
class PacketTwister_10 : public PacketTwister
{
public:
        virtual void Twist(BYTE* data, int length);
        virtual void Correct(BYTE* data, int length);
        PacketTwister_10(){};
        virtual ~PacketTwister_10(){};
};
...
#endif
// PacketTwistRunner.h: interface for the PacketTwistRunner class.
//
//////////////////////////////////////////////////////////////////////
#ifndef __PACKETTWISTRUNNER_H__
#define __PACKETTWISTRUNNER_H__
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <map>
#include "PacketTwister.h"
class PacketTwistRunner
{
private:
        std::map<BYTE, PacketTwister*> m_twisters;
public:
        PacketTwistRunner();
        ~PacketTwistRunner();
        PacketTwistRunner(const PacketTwistRunner& rhs) : m_twisters( rhs.m_twisters )
        {
                if (this == &rhs) return;
        };
        const PacketTwistRunner& operator=(const PacketTwistRunner& rhs)
        {
                if (this == &rhs) return *this;
m_twisters = rhs.m_twisters;
                return *this;
        };
        bool Install();
        void Twist(BYTE headCode, BYTE* data, int length);
        void Correct(BYTE headCode, BYTE* data, int length);
        void Finish();
};
#endif
本文出自 7j45 > 奇迹一条龙