Сейчас на форуме: (+5 невидимых)

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


Ранг: 536.4 (!), 171thx
Активность: 0.660.13
Статус: Администратор
Создатель CRACKL@B

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

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

-----
Всем не угодишь


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


Ранг: 170.1 (ветеран), 96thx
Активность: 0.090.01
Статус: Участник

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

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

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


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


Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

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

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

-----
-=истина где-то рядом=-


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


Ранг: 170.1 (ветеран), 96thx
Активность: 0.090.01
Статус: Участник

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

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


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

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

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




Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

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

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

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

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

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

-----
-=истина где-то рядом=-





Ранг: 536.4 (!), 171thx
Активность: 0.660.13
Статус: Администратор
Создатель CRACKL@B

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

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

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

-----
Всем не угодишь




Ранг: 30.0 (посетитель), 4thx
Активность: 0.030.01
Статус: Участник

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

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

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




Ранг: 170.1 (ветеран), 96thx
Активность: 0.090.01
Статус: Участник

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

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


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

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


a0d5_02.04.2011_EXELAB.rU.tgz - Natata.rar



Ранг: 30.0 (посетитель), 4thx
Активность: 0.030.01
Статус: Участник

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

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



Ранг: 488.1 (мудрец), 272thx
Активность: 0.350
Статус: Участник

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

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

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....





Ранг: 170.1 (ветеран), 96thx
Активность: 0.090.01
Статус: Участник

Создано: 04 апреля 2011 02:54 · Поправил: gazlan
· Личное сообщение · #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]




Ранг: 170.1 (ветеран), 96thx
Активность: 0.090.01
Статус: Участник

Создано: 04 апреля 2011 08:52
· Личное сообщение · #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 почти бесполезен.


fc32_03.04.2011_EXELAB.rU.tgz - ebu.rar



Ранг: 30.0 (посетитель), 4thx
Активность: 0.030.01
Статус: Участник

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

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

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


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

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




Ранг: 170.1 (ветеран), 96thx
Активность: 0.090.01
Статус: Участник

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

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


Сократил Natata

; --- Appendix

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

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

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

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

6571_04.04.2011_EXELAB.rU.tgz - Платежные системы в Интернет.rar


 eXeL@B —› Обсуждение статей —› [ punxer ] Исследование Natata Ebook Compiler Книг (версия < 3)
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати