Fix-free forum | Прошивки принтеров и МФУ

Общение => Прошивки => Тема начата: Nextor от Март 04, 2013, 08:57:02 am

Название: SCX-3200 v8 разбор
Отправлено: Nextor от Март 04, 2013, 08:57:02 am
Всем привет. Начинаю разбор 8 версии. Нашел сигнатуру $NKF. Прошу знающих людей подсказать как распаковать. Слышал что зашифровано ксором и есть 2 таблицы 64 и 256. Но как их найти и что с ними делать - для меня пока тайна...
Название: Re: SCX-3200 v8 разбор
Отправлено: Bahri от Март 04, 2013, 10:05:22 am
You are not allowed to view links. Register or Login
Всем привет. Начинаю разбор 8 версии. Нашел сигнатуру $NKF. Прошу знающих людей подсказать как распаковать. Слышал что зашифровано ксором и есть 2 таблицы 64 и 256. Но как их найти и что с ними делать - для меня пока тайна...
советую изучать одновремено АРМ. так будет проше
Название: Re: SCX-3200 v8 разбор
Отправлено: yur788 от Март 14, 2013, 01:13:38 am
You are not allowed to view links. Register or Login
Всем привет. Начинаю разбор 8 версии. Нашел сигнатуру $NKF. Прошу знающих людей подсказать как распаковать. Слышал что зашифровано ксором и есть 2 таблицы 64 и 256. Но как их найти и что с ними делать - для меня пока тайна...

<?
// Алгоритм распаковки ядра для SCX-3200 V8
   $fn='Здесь имя файла прошивки';
   $nach_cod = 262276;
   $razm_nkf = 1769471;
   $razm_zip = 1180542;

   $abb = file_get_contents($fn); // считываем файл в переменную
   
  $tab64 = substr($abb,257688,64); //таблица для XOR
  $tab256 = substr($abb,257432,256);// таблица для подстановки
   $nkf_cod = substr($abb,$nach_cod,$razm_zip);  //вырезаем ядро
    $t64_xor = str_pad ($tab64, $razm_zip, $tab64); //заливаем переменную таблицей 64
   $xor = $nkf_cod ^ $t64_xor;//делаем XOR для ядра и переменной
      $uncode = "";
    for($i=0;$i<$razm_zip;$i++) //собираем из таблицы подстановки
 {
          $j=ord($xor{$i});
          $c=$tab256{$j};
          $uncode.=$c;
 }
    $head = substr($uncode,0,12); //отрезаем заголовок
   $compress = substr($uncode,12);//все остальное
   $decompress = gzuncompress ($compress);//распаковываем gzip'ом
 ?>