Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Разработка
Войти через OpenID

Разработка Раздел для совместной разработки/доработки программы

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 18.06.2010, 10:27   #1
Новичок
 
Аватар для arrjj
 
Регистрация: 27.05.2010
Сообщений: 26
Сказал Спасибо: 1
Имеет 13 спасибок в 11 сообщенях
arrjj пока неопределено
По умолчанию

В синтаксисе делфи нет ничего сложного. З.Ы. могу кой-какие сорсы на с++ дать.
Цитата:
if isAion and(Size>0)then pck[0]:=(pck[0] + $AE) xor $EE; // и нафига это...
Шоб Аионский трафик норм пакетхаком хавался.

Инит ключа xor
Код:
            switch(inptype)
            {
            case 0x2E://InitCrypt
                {
                    if(!in.readC())
                        QMessageBox::information(NULL, "L2M Alfa:Omg",
                                                 "Wrong protocol version can be troubles :'(");
                    for(int x=0;x<8;x+=1)
                    {
                        inxorkey[x]=in.readC();
                        outxorkey[x]=inxorkey[x];
                    }
                    xorkeyaccepted=true;
                    out.writeC(0x2b);
                    l2m_mstr a;
                    l2m_uch tmp[28];
                    for(int x=0;x<28;x+=1)
                        tmp[x]=0;
                    for(int x=0;x<14;x+=1)
                        tmp[x*2]=ulogin[x];
                    a.fromuch(tmp,28);
                    a.killzero();
                    out.writeS(&a,true);
                    out.writeC(0x00);
                    out.writeD(playOK[1]);
                    out.writeD(playOK[0]);
                    out.writeD(loginOK[0]);
                    out.writeD(loginOK[1]);
                    out.writeD(0);
                    out.writeD(0);
                    out.writeD(0);
                    sendpacket();
                }
                break;
}
Расшифровка
Код:
void l2m_packets::unxorin()
{
    l2m_uch tr=0;
    l2m_uch tr2=0;
    for(int x=0;x<in.buf.length;x+=1)
    {
        tr2=in.buf.str[x];
        in.buf.str[x]=(tr2^inxorkey[x&15])^tr;
        tr=tr2;
    }
    l2m_uint old = inxorkey[8] &0xff;
    old |= (inxorkey[9] << 8) &0xff00;
    old |= (inxorkey[10] << 0x10) &0xff0000;
    old |= (inxorkey[11] << 0x18) &0xff000000;
    old+=in.buf.length;
    inxorkey[8] = old &0xff;
    inxorkey[9] = (old >> 8) &0xff;
    inxorkey[10] = (old >> 0x10) &0xff;
    inxorkey[11] = (old >> 0x18) &0xff;
}
Шифровка
Код:
void l2m_packets::xorout()
{
    l2m_uch tr=0;
    l2m_uch tr2=0;
    for(int x=0;x<out.buf.length;x+=1)
    {
        tr2=out.buf.str[x];
        tr=tr2^outxorkey[x&15]^tr;
        out.buf.str[x]=tr;
    }
    l2m_uint old = outxorkey[8] &0xff;
    old |= (outxorkey[9] << 8) &0xff00;
    old |= (outxorkey[10] << 16) &0xff0000;
    old |= (outxorkey[11] << 24) &0xff000000;
    old+=out.buf.length;
    outxorkey[8] = old &0xff;
    outxorkey[9] = (old >> 8) &0xff;
    outxorkey[10] = (old >> 16) &0xff;
    outxorkey[11] = (old >> 24) &0xff;
}
Имхо маешся фигнёй - зачем делать то что уже есть?
__________________
#define true false//счастливой отладки суки

Последний раз редактировалось arrjj, 18.06.2010 в 10:37.
arrjj вне форума   Ответить с цитированием
За это сообщение arrjj нажился спасибкой от:
Старый 18.06.2010, 12:36   #2
Новичок
 
Аватар для ecl
 
Регистрация: 15.06.2010
Адрес: Москва
Сообщений: 11
Сказал Спасибо: 9
Имеет 1 спасибку в 1 сообщении
ecl пока неопределено
По умолчанию

Цитата:
Сообщение от arrjj Посмотреть сообщение
Имхо маешся фигнёй - зачем делать то что уже есть?
Ну во-первых у меня нет желания работать в среде делфи.
Во-вторых интересно понимать весь процесс, а не только его малую часть.

А вообще спасибо, но жду более подробных ответов.
ecl вне форума   Ответить с цитированием
Старый 18.06.2010, 13:51   #3
Новичок
 
Аватар для ecl
 
Регистрация: 15.06.2010
Адрес: Москва
Сообщений: 11
Сказал Спасибо: 9
Имеет 1 спасибку в 1 сообщении
ecl пока неопределено
По умолчанию

00 01 66 14 00 00 0A 7D 00 00 C8 27 93 01 A1 6C 31 97 01 00 00 00 01 00 00 00 это инит ключ отловленый пакетхаком

Расшифровка его
Tèï: 0x00 (KeyInit)
Pàçìåð: 26+2
Âðåìÿ ïðèõîäà: 12:46:02:465
0002 c 01: 1 (0x01)
0003 q Key: 137481903150182
000B d d: 26421192 (0x019327C8)

не понятно почему в твоем коде обрабатывается case 0x2E:

Если не трудно прокометни пожалуйста свой код русским языком что деается и зачем

P.S. ушел читать про протокол L2 thx.

Последний раз редактировалось ecl, 18.06.2010 в 14:03.
ecl вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Разработка



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 06:10.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!