Дмитрий DarkByte Москин

Мой блог, да.
logo

GitS 2013 Teaser - What the hell is Keming?

Опубликовано 13.01.2013 автором Дмитрий Москин
What the hell is Keming?
Find key the. (File)


Смотрим на файл, видим 7z архив (на самом деле xz, но магия плагинов Total Commander позволяет забить), распаковываем, получаем файл "[Content]". Этот файл распаковывается как gz архив, получается файл 43 со странным содержимым. Часть данных запакована, часть в открытом виде.

Если посмотреть на открытые данные, то видно, что в файле 43 есть tar архив с несколькими файлами, но куски tar файла расположены не в правильном порядке (в файле 1 html документ, тег html сначала закрывается, а потом открывается). Возвращаемся к файлу "[Content]".

Поиск в файле по сигнатуре gz (1F8B08089B) показал 100 соответствий. Среди имён файлов, в других архивах, встречаются: 38, 45, 16, 67, 30... Что подтверждает теорию о том, что в файле несколько кусков, и они перемешаны. Пишем скрипт, который разделяет файл на отдельные арихвы.

<?php
$data=file_get_contents('[Content]');
$gz="\x1F\x8B\x08\x08\x9B";
$r=0;
while(true){
$pos=strpos($data,$gz,1);
if($pos===false){
if(!$data)break;
$pos=strlen($data);
}
$nfile=substr($data,0,$pos);
$data=substr($data,$pos);
file_put_contents($r.'.gz',$nfile);
$r++;
}
?>


Получаем файлы 0.gz - 99.gz, распаковываем. Получаем файлы 00-89 и 9000-9009, это куски tar архива. Объедением их в алфавитном порядке.
cat * > arch.tar


Распаковываем файл arch.tar, и видим в папке keming несколько файлов: index.html adjective.woff interjection.woff preposition.woff pronoun.woff. В html файле ничего особенного не находим, а woff файлы шрифтов конвертируем в не сжатый формат ttf. В файле interjection.ttf находим флаг:
key{7351c2a3c100cf0168e1e9fb842e5938cbfb34bb8175c6d0075bbf50c0388576f4a1de8c485408a9d43602aabc2e7d217f78eea2aa01077fcb5a99ba390a21c8}