nezabudkin, VORON гамал именно на нем, просо после первой смены шифрации ее удалось ломануть, а потом они что-то накрутили там + VORON больше не пытался =)
шифровка/дешифровка траффика давно решена в волкере. на каждом сервере существует , так называемый , Token - открытый ключ шифрования траффика и в самом боте эта муть давно работает ... так что на серверах, где разрешен торговый бот админы сами выкладывают Token для народа
Наткнулся в WPF на одну занимательную штуку - олгоритмы шифрования/дешифрования траффика. решил выложить ( может кто разберется) Оффтоп
Код HTML:
library tstdll5;
uses FastMM4, SysUtils, Windows;//, Classes;
type
HWND = type LongWord;
DWORD = LongWord;
UINT = LongWord;
// демонстрационная DLL tstdll5.dll используется в скрипте 'demo_la2-endecGS-5.fsc'
// содержит ф-ции автоопределения трафика LA2 и де/кодирование трафика LA2 GS.
//
var /// ВНИМАНИЕ!!! Глобальные переменные ОБЩИЕ для всех соединений использующих эту DLL !!!
global_i : integer;
global_j : integer;
// ...
function StrPosLen(const Str1, Str2: PChar; Str1Len, Str2Len: dword): PChar; assembler;
// StrPosLen - ищет вхождение одного массива байт в другом, с заданной длиной.
// Str2 ищется в Str1
asm
// EAX - Str1, EDX - Str2, ECX - Str1Len, str2 - sub
PUSH EDI
PUSH ESI
PUSH EBX
OR EAX,EAX // Str1
JE @@2 // если строка Str1 пуста - на выход
OR EDX,EDX // Str2 - подстрока
JE @@2 // если строка Str2 пуста - на выход
MOV EBX,[ESP+14H] // Str2Len - подстрока
SUB ECX,EBX // ECX == разница длин строк : Str1 - Str2
JBE @@2 // если длина подсроки больше длины строки - выход
DEC EBX // Str2Len-1
MOV EDI,EAX // EDI - начало строки Str1
@@1: MOV ESI,EDX // ESI - смещение строки Str2
LODSB // загужаем первый символ подстроки в AL
REPNE SCASB // ищем этот символ в строке EDI
JNE @@2 // если символ не обнаружен - на выход
MOV EAX,ECX // сохраним разницу длин строк
PUSH EDI // запомним текущее смещение поиска
MOV ECX,EBX
REPE CMPSB // побайтно сравниваем строки
POP EDI
MOV ECX,EAX
JNE @@1 // если строки различны - ищем следующее совпадение первого символа
LEA EAX,[EDI-1]
JMP @@3
@@2: XOR EAX,EAX
@@3: POP EBX
POP ESI
POP EDI
end;
function Trafic_Detector(pc1 : pchar; pc1_le : integer) : integer; stdcall;
var
_gAbsNumPkt, TrafType, tPDecode, tKeyType, Protocol, isLS, isGS : pInteger;
_dFromServ : boolean;
_key, _Buff : pchar;
_key_le : integer; // размер буфера ключа
_key_sz : pInteger; // указатель на реальный размер ключа (в буфере)
_Buff_le : integer; // размер буфера пакета
ss : shortstring;
i : integer;
begin
// Внимание! не путайте переменные с указателями на переменные =)
result := -1;
try
// установим указатели на соответствующие переменные
// (FormatPck('dddddddbdcb',[_gAbsNumPkt, TrafType, tPDecode, tKeyType, Protocol, isLS, isGS, _kci, i2 , _dFromServ, _dBuff]);)
//
_gAbsNumPkt := pInteger(pc1); // указатели на переменные...
TrafType := pInteger(pc1+4);
tPDecode := pInteger(pc1+8);
tKeyType := pInteger(pc1+12);
Protocol := pInteger(pc1+16);
isLS := pInteger(pc1+20);
isGS := pInteger(pc1+24);
_key_le := pInteger(pc1+28)^; // указатель на размер буфера ключа
_key := pc1+32; // указатель на буфер ключа
_key_sz := pInteger(pc1+32+_key_le); // указатель на размер ключа в буфере ключа
_dFromServ := pByte(pc1+32+_key_le+4)^ <> 0;
_Buff_le := pInteger(pc1+32+_key_le+5)^; // размер буфера пакета (тут рамер буфера пакета равен фактическому размеру пакета, так как изменять сам пакет не будем ...)
_Buff := pc1+32+_key_le+9; // указатель на буфер пакета
//
// Определим тип трафика (в этом примере нас интересует только LA2)
//
if (TrafType^ = 0) and (_gAbsNumPkt^ = 1) then begin
case _Buff_le of
$0B,$9B,$AB,$BA: begin
TrafType^:= 2; // LA2
isLS^ := 1; // LS
if _Buff_le = $0B then tKeyType^ := 1 else tKeyType^ := 2; // это для LS, пока не потребуется
end;
$107: begin
TrafType^ := 2; // LA2
isGS^ := 1; // GS
end;
$07: begin
TrafType^ := 2; // LA2
isGS^ := 2; // GS
end;
else if _Buff_le >= $107 then begin // более надежный способ определить LA2 GS
ss := #$05#$52#$05#$54#$07#$51#$51#$55#$07#$02#$53#$53#$00#$52#$05#$52;
if StrPosLen(_Buff, @ss[1], _Buff_le, 16) <> nil then begin
// если найдена строчка '.R.T.QQU..SS.R.R' (древний рим епть =) тогда это гейм сервер ла2.
TrafType^ := 2; // LA2
isGS^ := 2; // GS
end;
end;
end;
//
if isGS^ > 0 then Protocol^ := pInteger(_Buff+3)^; // берем номер протокола GS
end;
//
// определим ключ GS:
//
if (_gAbsNumPkt^ = 2) then
if (TrafType^ = 2) and (isGS^ > 0) and _dFromServ then begin
if (_Buff_le = 12) then tKeyType^ := 1; // 12 байтный пакет - тип 1. GSDecodeJ (90% l2j)
if (_Buff_le = 16) then tKeyType^ := 2; // 16 байтный пакет - тип 2. GSDecode (sub-off servers)
if (_Buff_le = $1A) then tKeyType^ := 3; // часть фри серверов Interlude
if (_Buff_le = $1C) then tKeyType^ := 3; // часть фри серверов Interlude
if (_Buff_le = $15) then tKeyType^ := 3; // официальные сервера Interlude (на данный момент)
if (tKeyType^ > 0) and (_key_le >= 16) then begin
CopyMemory(_key, _Buff+4, 16);
if tKeyType^ < 3 then begin
ss := #$A1#$6C#$54#$87;
CopyMemory(Pchar(_key+4), @ss[1], 4); // C4/C5/псевдо интерлюд.
_key_sz^ := 8;
end;
if tKeyType^ = 3 then begin
ss := #$C8#$27#$93#$01#$A1#$6C#$31#$97;
CopyMemory(_key+8, @ss[1], 8); // интерлюд.
_key_sz^ := 16;
end;
end;
end;
result := pc1_le;
except
result := -2;
end;
end;
function DeXorGS(buff : pchar; buff_sz : integer; key : pchar; key_sz, keytype : integer) : integer; stdcall;
var i,j : integer;
b1,b2 : byte;
begin
result := 0;
// стандартный алгоритм XOR декодирования GS la2
if (key_sz = 0) or (buff_sz = 0) then exit;
b1 := 0; j := 0;
for i := 2 to buff_sz-1 do begin
b2 := byte(buff[i]);
buff[i] := char(b2 xor byte(key[j]) xor b1);
b1 := b2;
Inc(j,1);
if j >= key_sz then j := 0;
end;
case keytype of
1: if key_sz > 3 then Inc(pint(key)^, buff_sz-2);
2: if key_sz > 7 then Inc(pint64(key)^, buff_sz-2);
3: if key_sz > 15 then Inc(pint64(key+8)^, buff_sz-2);
end;
end;
function EnXorGS(buff : pchar; buff_sz : integer; key : pchar; key_sz, keytype : integer) : integer; stdcall;
var i,j : integer;
b1 : byte;
begin
result := 0;
// стандартный алгоритм XOR декодирования GS la2
if (key_sz = 0) or (buff_sz = 0) then exit;
b1 := 0; j := 0;
for i := 2 to buff_sz-1 do begin
buff[i] := char((byte(buff[i]) xor byte(key[j]) xor b1));
b1 := byte(buff[i]);
Inc(j,1);
if j >= key_sz then j := 0;
end;
case keytype of
1: if key_sz > 3 then Inc(pint(key)^, buff_sz-2);
2: if key_sz > 7 then Inc(pint64(key)^, buff_sz-2);
3: if key_sz > 15 then Inc(pint64(key+8)^, buff_sz-2);
end;
end;
{экспортируем ф-ции}
exports Trafic_Detector, DeXorGS, EnXorGS;
begin
end.
может, получится соорудить нечто подобное для пакет хака.
ЗЫ: желательно с привязкой к токену сервера , тогда головняков с дешифровкой трафика не будет вообще
LunaticCalm, Хоть один здраво мыслящий человек!! а мы то тут год фигней страдаем, алгоритмы перебираем, а ответ прост до безобразия - найти токен и все в ожуре.
In reply to the man asking about situs idn play terpercaya, slot termudah menang, buat akun togel resmi, slot casino indonesia, casino togel, prediksi togel sgp, www togel hk, daftar situs judi online, rekomendasi situs judi terbaik, judi terpercaya di indonesia, situs agen toto, game idn, I highly recommend this breaking news on asian toto casino tips or slot bank bca, situs agen slot, slot streaming, pasaran togel slot, slot togel terbaru, cara main slot judi, situs judi poker, poker kami, link slot terbaru, situs judi online terbaik, hasil togel online, ovo poker, bearing in mind this read what he said about asian toto casino url as well as situs casino online terpercaya, situs judi toto, power slot, bo togel terbesar di indonesia, keluaran angka sgp hari ini, situs idn live, angka togel keluaran hari ini, situs togel dan slot, situs terbaru, judi online 24 jam, deposit slot dana, togel hk togel, bearing in mind this what do you think for Asian Toto Casino forum which is also great. Also, have a look at this additional reading on asian toto casino details which is worth considering with deposit bonus slot, angka jitu togel, situs slot judi, situs slot tembak ikan, angka togel harian, game slot88 online, prediksi togel hari, link slot live, angka togel hongkong hari ini, main game slot online, xmas slot, idn poker online, alongside all this best asian toto casino details on top of slot login dana, akun togel terlengkap, hasil singapura hari ini, judi slot yang resmi, promo slot online, these details about alongside all bandar togel, cara main togel online, tembak ikan uang asli, aplikasi togel slot terpercaya, situs togel pasaran hongkong terpercaya, and a knockout post about for good measure. Check more @ Awesome Asian Toto Casino Tips c5b331_