Самостоятельное декодирование dat без l2encdec - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Игровой клиент

Игровой клиент Есть вопросы по поводу редактирования dat, utx и других файлов клиента, пожалуйста, задавайте их здесь.

Ответ
Опции темы
Непрочитано 04.10.2011, 01:20   #1
Аватар для Hint
Герой

Автор темы (Топик Стартер) Самостоятельное декодирование dat без l2encdec

Скрипт, который декодирует файлы клиента (RSA и gzip). Аналог l2encdec.
В интернете описания алгоритма не нашел, поэтому пришлось разбираться самому (плюс искать ключи). Ставил хуки на gmpz_powm и gmpz_export в libgmp-3, смотрел что передает и получает l2encdec.

PHP код:
<?php

/**
 * L2 file decoder (4 october 2011).
 * @author Hint aka Ilya
 */

function decode($filename$original true)
{
  
$file = @file_get_contents($filename);
  if (!
$file) return false;
  if (
strlen($file) < 28 128) return false;
  
$head mb_convert_encoding(substr($file028), 'UTF-8''UTF-16LE');
  if (
$head != 'Lineage2Ver413') return false;
  
  
$blocks intval((strlen($file) - 28) / 128);
  if (
$blocks 1) return false;
  
  
$size $blocks 128;

  
$file substr($file28$size);
  
  if (
$original)
  {
    
$s base64_decode('l985hHLd9zfvCgzRfo0XLw/vFmGjiorh1ugpvBxuTDz8GSkt2p75AXXkbnOUoYhQtkF9A75u6idNPtHd5bXXvecswKC3HQNghlVjOIF5OgLJpn2e8rRet8CNS+MpCDzkUOaPeGe2dJMU1AUR0JvFdEVRuqhqidw4Ej3BZo/XLYM=');
    
$key gmp_init('0x' bin2hex($s));
    
$exp gmp_init('0x35');
  }
  else
  {
    
$s base64_decode('dbTW3lwBZUQGihrPElhp9D0uCfxVuLHiiVVtr5uHV2NVk0RiiLNlPaHOkch7saXBjxYyNJXFXX1ywIkKg/ab/R/ZQ06xwC8+Rnnt+kMwkxkHASnCZ8hWBNh7tluuIF3jcHrx0hCIgau1Z8Oz0GmuZ8OkxqOqk9JkE9TGYJSuIDk=');
    
$key gmp_init('0x' bin2hex($s));
    
$exp gmp_init('0x1d');
  }
  
  
$data '';
  for (
$i 0$i $blocks; ++$i)
  {
    
$block substr($file$i 128128);
    
$res gmp_powm('0x' bin2hex($block), $exp$key);
    if (!
is_resource($res)) return false;
    
$hex gmp_strval($res16);
    if (
strlen($hex) != 250) return false;
    
$s pack('H*' $hex);
    
    
$size ord($s[0]);
    if (
$size strlen($s) - 1) return false;
    
    if (
$size != 0x7c)
    {
      
$p strlen($s) - $size;
      while (
$p && $s[$p 1] != "\0") --$p;
      
$s substr($s$p$size);
    }
    else
    {
      
$s substr($s, -$size);
    }    
    
$data .= $s;
  }

  
$a unpack('L'$data);
  if (!
is_array($a) || !isset($a[1])) return false;
  
  
$size intval($a[1]);
  
$data substr($data4);
  
$result gzuncompress($data);
  if (
strlen($result) != $size) return false;
  
  return 
$result;
}

// Example
$s decode('l2.ini'true);
if (
$s === false) die('Error!');
file_put_contents('dec-l2.ini'$s);
?>
__________________
hLaPEx, Evermore, hAuthD, L2on, ...
Hint вне форума Ответить с цитированием
Непрочитано 04.10.2011, 01:46   #2
Аватар для Deazer

По умолчанию Re: Самостоятельное декодирование dat без l2encdec

Не ужели тот самый хинт ? )
Deazer вне форума Ответить с цитированием
Непрочитано 04.10.2011, 02:36   #3
Аватар для valsha
Пользователь

По умолчанию Re: Самостоятельное декодирование dat без l2encdec

да, тот самый
valsha вне форума Ответить с цитированием
Непрочитано 04.10.2011, 09:46   #4
Пользователь

По умолчанию Re: Самостоятельное декодирование dat без l2encdec

Цитата:
Сообщение от john Посмотреть сообщение
да, тот самый
тот хинт с АЧ?
hex1r0 вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 04.10.2011, 10:32   #5
Аватар для Hint
Герой

Автор темы (Топик Стартер) Re: Самостоятельное декодирование dat без l2encdec

Цитата:
Сообщение от hex1r0 Посмотреть сообщение
тот хинт с АЧ?
Сто лет там не появлялся. Тогда уж тот хинт с cheaters.com.ru, если кто еще помнит

Добавлено через 55 минут
Если бы люди не зажимали информацию (тогда, когда это не бьет по карману), то все бы мы тратили намного меньше времени впустую.

О чем я говорю:
http://www.l2wh.com/forum/showthread.php?t=1903
Нельзя было просто скопировать ключи?) Теперь мы должны искать бинарник за 24-01-2008. И речь ведь не о исходниках l2encdec.
__________________
hLaPEx, Evermore, hAuthD, L2on, ...

Последний раз редактировалось Hint; 04.10.2011 в 11:27. Причина: Добавлено сообщение
Hint вне форума Ответить с цитированием
Непрочитано 01.12.2020, 23:03   #6
Пользователь

По умолчанию Re: Самостоятельное декодирование dat без l2encdec

Постоянно bool(true) Error! на всех хрониках
BITru вне форума Ответить с цитированием
Ответ

Метки
dat, gzip, hint, l2encdec, rsa


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

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

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
L2EncDec 2.82 Lexx_a Игровой клиент 15 12.04.2010 14:27
l2encdec Для Gracia Final Naskeed Игровой клиент 1 13.08.2009 09:45


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 17:13. Часовой пояс GMT +3.

Вверх