eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: -Sanchez- (+4 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Обсуждение статей —› [ punxer ] Исследование Natata Ebook Compiler Книг (версия < 3)
Посл.ответ Сообщение


Ранг: 533.8 (!)
Статус: Администратор
Создатель CRACKL@B

Создано: 22 ноября 2010 00:12 New!
Цитата · Личное сообщение · #1

Обсуждение статьи Исследование Natata Ebook Compiler Книг (версия &lt; 3)

| Сообщение посчитали полезным: slayerslayer



Ранг: 169.6 (ветеран)
Статус: Участник

Создано: 16 декабря 2010 03:24 · Поправил: gazlan New!
Цитата · Личное сообщение · #2

Программа сохраняет первые несколько ресурсов и падает

Исходный код для работы с ZLib - который не падает - можно найти прямо на оф.сайте.
Создание дерева каталогов сделано через ж... Традиция, что ли такая? (eBookRipper, например, делает это некорректно). Об алгоритмах быстрого поиска автор, вероятно, не слышал. И для чего эта чудная функция?:
Code:
  1. PCHAR prepare_path(PCHAR path)
  2. {
  3.          return NULL;
  4. }

| Сообщение посчитали полезным: slayerslayer



Ранг: 469.0 (мудрец)
Статус: Участник
[www.AHTeam.org]

Создано: 27 декабря 2010 08:16 New!
Цитата · Личное сообщение · #3

Ну и ссылку на какую либо книжку, созданную в Natata Ebook Compiler, в самой статье было бы весьма кстати...

| Сообщение посчитали полезным: TeamSMU, slayerslayer



Ранг: 169.6 (ветеран)
Статус: Участник

Создано: 27 декабря 2010 13:44 New!
Цитата · Личное сообщение · #4

KingSise пишет:
ссылку на какую-либо книжку


Такая сойдет?

$67 за 35 минут. h**p://netskom.ucoz.ru/netskom/7_67za15.rar

А еще проще взять компилятор (по всей сети валяются) и понаделать себе сколько и каких надо.


Ранг: 469.0 (мудрец)
Статус: Участник
[www.AHTeam.org]

Создано: 27 декабря 2010 14:30 New!
Цитата · Личное сообщение · #5

gazlan пишет:
А еще проще взять компилятор

Можно многое, если сильно хочется...

Если не ошибаюсь, вместе со статьей как правило принято постить линк на исследуемую софтину, ну что б сильно не напрягать читателя...

Ну а за статью в любом случае спасибо;)


Ранг: 533.8 (!)
Статус: Администратор
Создатель CRACKL@B

Создано: 27 декабря 2010 14:35 New!
Цитата · Личное сообщение · #6

gazlan пишет:
И для чего эта чудная функция?:

NOP подпрограмма

Ранг: 30.0 (посетитель)
Статус: Участник

Создано: 1 апреля 2011 02:08 · Поправил: Модератор New!
Цитата · Личное сообщение · #7

gazlan
где бы Вы напихали тут алгоритмов быстрого поиска?
И, да, статью думаю стоит довести до ума и закоммитить.

Пипец, Natata Ebook Compiler версия 3.2
Не изменилось ничего


Ранг: 169.6 (ветеран)
Статус: Участник

Создано: 2 апреля 2011 19:26 New!
Цитата · Личное сообщение · #8

punxer пишет:
где бы Вы напихали тут алгоритмов быстрого поиска?


Ну, вы же ищете метки блоков: '#1!#' ? Их может быть не один десяток - самое место для QS.

В эташе пример вывода SSF (h**p://gazlan.freetzi.com/toy_tools/ssf.rar) для какой-то книжки в Natata (h**p://w*w.multiupload.com/MSWA4TTHP6).


{ Атач доступен только для участников форума } - Natata.rar

Ранг: 30.0 (посетитель)
Статус: Участник

Создано: 4 апреля 2011 00:07 New!
Цитата · Личное сообщение · #9

gazlan
я не понимаю. а смымл. Смысл сортировки и создания дерева? Почему не по-пути

Ранг: 488.4 (мудрец)
Статус: Участник

Создано: 4 апреля 2011 00:36 New!
Цитата · Личное сообщение · #10

если не ошибаюсь. то афтор класику не любит читать. Кнут вам в помощь


Ранг: 169.6 (ветеран)
Статус: Участник

Создано: 4 апреля 2011 02:54 · Поправил: gazlan New!
Цитата · Личное сообщение · #11

punxer пишет:
Смысл сортировки


Насколько я понял (посмотрел несколько файлов из-под "tatu"), устроены эти e-books невероятно примитивно (школьнеги, поди, писали). Это просто коллекция одиночных ZIP-архивов, обрамленных тэгами '#1!#' и '#2!#' с маркерами типа содержимого и полного пути к файлу в открытом виде.

Последовательное чтение потока данных (вы это имели ввиду?) потенциально опасно если: 1. между блоками вставлена какая-то хрень, которую неизвестно как обрабатывать и 2. какой-то из блоков поврежден, так что его размер определяется неверно. При последовательном чтении потока любая подобная ошибка фатальна и требует специальных мер по ресинхронизации.

При произвольном доступе, ошибка обработки любого из блоков никак не скажется на остальных - теряется только поврежденный архив.

Цена произвольного доступа - построение _списка_ блоков (дерева там нет). Простейший способ такого построения - быстрый поиск. А дальше - по списку - как у Вл. Высоцкого: "Глядишь, всего пятерочка, а вдоль и поперек...". (http://web.ru/bards/Visotsky/part158.htm)


P.S.

[Lyrics]
Вы, почему-то, все время идете за логикой авторов программы (начиная с непонятно зачем, распаковки UPX). IMHO, это неверно. У вас перед глазами полный дамп оверлея и огромное преимущество перед авторами в полном знании всех (до бита) деталей его устройства. На кой вам кривые пути Delphi-программеров - идите к цели напрямую. Их код заведомо плох и бесполезен. Hex-редактор для вас то же, что скальпель для патологоанатома: нет ничего запретного и диагноз окончателен.
[/Lyrics]


Ранг: 169.6 (ветеран)
Статус: Участник

Создано: 4 апреля 2011 08:52 New!
Цитата · Личное сообщение · #12

Гм. Музыкой навеяло...

Добавил распаковку "Tatu" в EBU. В полном соответствии с изложенными принципами:

Code:
  1. QS for BlockStart, QS for BlockEnd, calc Ofs & Size of ZipStream, Unpack!


К сожалению, опять выяснилась несовместимость версий ZLib. Tatu использует библиотеку версии 1.1.4, EBU - 1.2.5. В редких случаях (доли процента, закономерность не установлена) некоторые файлы из книг не распаковываются или распаковываются с ошибкой. Претензии - к ZLib.


P.S.

Понятно, что Delphi - это диагноз. Но не ожидал, что до такой степени. Формат оверлея Tatu - это просто ошибка в ДНК. Даже маркеры блоков выбраны так, что QS почти бесполезен.


{ Атач доступен только для участников форума } - ebu.rar

Ранг: 30.0 (посетитель)
Статус: Участник

Создано: 5 апреля 2011 02:08 · Поправил: punxer New!
Цитата · Личное сообщение · #13

VodoleY
кнута я читаю переодически
gazlan что такое tatu

ну не знаю, возможно вы и правы, я взял однопроходный алгоритм влоб
Я точно знаю что там злиб
знаю начало и конец блока
распаковываю
есть функция определения пути сохранения и проверки на существуемость пути
сортирровка уменьшит время распаковки
наверно
и ничего краяне фолтного там не нада обрабатывать
не распаковалось не создаем
все просто
чего я пока в натате не встречал


Последовательное чтение потока данных (вы это имели ввиду?) потенциально опасно если: 1. между блоками вставлена какая-то хрень, которую неизвестно как обрабатывать и 2. какой-то из блоков поврежден, так что его размер определяется неверно. При последовательном чтении потока любая подобная ошибка фатальна и требует специальных мер по ресинхронизации.
этого нет код писался как коммент исследования. ну уж простите
[Lyrics]
Вы, почему-то, все время идете за логикой авторов программы (начиная с непонятно зачем, распаковки UPX). IMHO, это неверно. У вас перед глазами полный дамп оверлея и огромное преимущество перед авторами в полном знании всех (до бита) деталей его устройства. На кой вам кривые пути Delphi-программеров - идите к цели напрямую. Их код заведомо плох и бесполезен. Hex-редактор для вас то же, что скальпель для патологоанатома: нет ничего запретного и диагноз окончателен.
[/Lyrics]

я написал так
как сам шел


Ранг: 169.6 (ветеран)
Статус: Участник

Создано: 5 апреля 2011 02:49 · Поправил: gazlan New!
Цитата · Личное сообщение · #14

punxer пишет:
что такое tatu


Сократил Natata

; --- Appendix

О сортировке нигде речи не было. И нужды в ней нет. Говорилось о быстром поиске.

Пути там забавные. Мало того, что пишутся дважды, еще и через '/'. Допустимо, но некашерно. (http://en.wikipedia.org/wiki/Path_%28computing%29)

Что до ошибок, то даже если сам формат не предусматривает ничего лишнего между блоками, никогда нельзя поручиться за целостность файла, добытого неисповедимыми путями из глубин инета. Просто, лучше подстраховаться. (Пример в эташе).

А вообще, я как-то действительно упустил из виду, что вашей целью была не распаковка, а только исследование.

{ Атач доступен только для участников форума } - Платежные системы в Интернет.rar
 eXeL@B —› Обсуждение статей —› [ punxer ] Исследование Natata Ebook Compiler Книг (версия < 3)

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS