AIM 7 использует файл .aba - нужно его распаковать - PullRequest
1 голос
/ 20 сентября 2009

После AIM 7 beta 2, а теперь и в AIM 7 beta 6, и GM - AIM начал использовать новый формат файла .aba для хранения файлов. Раньше файлы находились в папке, к которой мы могли получить доступ. программные файлы, однако из-за «повышения производительности», AOL решила поместить их в этот файл .aba. Этот файл нельзя извлечь с помощью winRAR или любого другого универсального экстрактора, который я пробовал.

Есть ли способ извлечь его? Кто-то сказал мне, что он был уверен, что файл .aba использует ZLIB. Но никто не может подтвердить это. Кто-то на другом сайте собирался использовать AIM для извлечения файлов и чтения их, но никогда этого не делал.

Надеюсь, умные люди здесь могут понять, как их извлечь. В частности, я бы хотел, чтобы в нем находился файл bl.dtd. Если вы откроете файл в блокноте, вы увидите, что он содержит в основном бред, но также перечисляет файлы в нем, включая этот файл.

Нет необходимости сжимать его обратно в файл aba, как только они будут извлечены - но если это возможно - это не помешает.

Вы можете скачать файл .aba здесь: http://www.filedropper.com/en-us

Большое спасибо!

1 Ответ

2 голосов
/ 20 сентября 2009

Этот "ЧРЕЗВЫЧАЙНО БЫСТРЫЙ И Грязный (1)" PHP-код извлекает файлы JPG, PNG, GIF и gz-сжатые текстовые файлы из этого файла, находя некоторые магические строки ... Текст декодируется и изображения отображаются ...

(1) «Быстро и грязно» - это термин, используемый в ссылка на все, что легко способ обойти или «Ляп». Его использование популярно среди программисты, которые используют его для описания грубое решение или программирование реализация, которая несовершенна, не элегантный или иным образом неадекватный, но которая решает или маскирует проблему под рукой, и, как правило, быстрее и легче поставить на место, чем правильно решение. (Википедия)

<code><?php
    $PNG_SIG = "\x89PNG\x0D\x0A\x1A\x0A";
    $PNG_EOF = "IEND\xAE\x42\x60\x82";
    $GIF_SIG = "GIF89a";

    $aba = file_get_contents('en-us.aba');
    $pngs = explode($PNG_SIG, $aba);
    foreach ($pngs as $i=>$png) {
      if ($i>0) {
        $extra = explode($PNG_EOF, $png);
        $img = base64_encode($PNG_SIG.$extra[0].$PNG_EOF);
        echo '<img src="data:image/png;base64,'."\n".$img.'" />';
        echo "\n";
        if ($extra[1]!='') {
          if (substr($extra[1], 0, 6)==$GIF_SIG) {
            $gifs = $extra[1];
            $gifs = explode($GIF_SIG, $gifs);
            foreach ($gifs as $j=>$gif) {
              if ($j>0) {
                $img = base64_encode($GIF_SIG.$gif);
                echo '<img src="data:image/gif;base64,'."\n".$img.'" />';
                echo "\n";
              }  
            }
          }
          else {
            $gz = @gzuncompress($extra[1]);
            if ($gz!==false) {
              echo "<pre>\n";
              echo htmlspecialchars($gz);
              echo "
\ п "; } еще { $ jpg = base64_encode ($ extra [1]); echo 'image'; echo "\n"; } } } } } ?>

The results:

альтернативный текст http://img132.imageshack.us/img132/280/83168934.png

альтернативный текст http://img62.imageshack.us/img62/6541/32497869.png

...