Перейти к содержимому


Фотография
- - - - -

IMG архив


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 65

#21 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 14 June 2009 - 09:42

Вот не плохая документация по TFileStream.
Если очень нужно, то могу дать исходники вот этой вот программы (писал давно, расшифровки там нет):
Изображение
Но выводит список файлов и всю нужную информацию нормально.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#22 Aptyp

Aptyp

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений

Отправлено 14 June 2009 - 18:54

О давай. А то что-то у меня при попытки загнать имена в ListBox прога зависает. aptyp.mail@mail.ru
Из программиста и компьютера - дурак не компьютер.

#23 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 15 June 2009 - 07:20

Вот сама программа+исходник (обрати внимание - для Delphi 2009, работу с более старыми версиями не гарантирую, но основную идею все равно подчерпнуть можно). Процедура считывания сделана несколько по-другому.

Прикрепленные файлы


в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#24 Aptyp

Aptyp

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений

Отправлено 15 June 2009 - 11:26

Чего-то опять же зависает когда пытаюсь открыть img архив
Из программиста и компьютера - дурак не компьютер.

#25 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 15 June 2009 - 11:45

Расшифруй его сначала, просто пересохранив через SparkIV. Тебе ведь главное код написать для быстрой замены определенных файлов, добавления, удаления, переименования. Дешифровку всегда прикрутить можно.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#26 Aptyp

Aptyp

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений

Отправлено 19 June 2009 - 17:01

Отлично, увидел после пересохранения в SparkIV. Конечно лучше было бы что бы моя программа сама дешифровывала архивы. И я пока не могу разобраться как производить действия над файлами в архиве.
Из программиста и компьютера - дурак не компьютер.

#27 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 19 June 2009 - 18:13

В данный момент тебе лучше сделать cmd-интерфейс и возможность добавлять, удалять, переименовывать файлы - то, что вполне выполнимо. С расшифровкой я тебе помогу - ее надо делать отдельно в самую последнюю очередь. Текущая версия моей программы уже позволяет дешифровать архивы, но ключ введен непосредственно в сам код что не есть хорошо (надо читать из *.exe).
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#28 Aptyp

Aptyp

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений

Отправлено 21 June 2009 - 10:34

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

#29 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 22 June 2009 - 08:46

Если считать что архив уже прочитан (известны все текущие значения заголовка, описателей и оффсеты) то удаление будет выглядеть следующим образом: 1)Количество объектов уменьшается на один (значение задано в заголовке, его-то и надо менять) 2)Удаляется 16 соответствующих байт из каталога архива (можно создать новый поток памяти, копировать в него все данные из старого потока начиная с оффсета начала удаления, сместиться в новом потоке к месту, где "заканчиваются" ненужные данные и скопировать все кроме них в старый поток). 3)Удаляется нужное название из секции имен. 4)Удаляется сами данные файла Добавление делается точно так же. Если все еще не совсем понятно, то объясни на каком этапе заминка.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#30 Aptyp

Aptyp

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений

Отправлено 22 June 2009 - 12:50

Дело в том что я со Steam вообще работать не умею. Выглядит, конечно глупо, что я лезу туда куда не знаю, но так легче всего - учится на реализации поставленных задач. Я конечно сильно напрягаю, но можно немного поподробнее, пожалуйста.
Из программиста и компьютера - дурак не компьютер.

#31 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 22 June 2009 - 13:13

Я ведь давал ссылку на документацию по TFileStream (см. первое сообщение на странице).
Еще: http://docs.luksian....a9/Index10.html

Конечно я могу заняться полным написанием подобного IMG-редактора и выложить исходники, но толку в таком будет мало.
Другое дело - постарайся разобраться самостоятельно и задавай возникающие вопросы.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#32 JNikc

JNikc

    Активный участник

  • Пользователи
  • PipPipPip
  • 36 сообщений
  • Пол:Мужчина
  • Город:SPB

Отправлено 06 July 2009 - 11:54

Я тут тоже раскрутил IMG на выходных - получилась дельфи-вики статья (забил всю статью в коменты). Оформленно в виде класса и можно добавлять любую функциональность (файловые операции и т.д.). Т.к. SCO устроены похоже нетрудно, я думаю, определить работу с ними также. Вот приложу сырец:

Прикрепленные файлы



#33 MysTer92

MysTer92

    Активный участник

  • Пользователи
  • PipPipPip
  • 44 сообщений
  • Пол:Мужчина
  • Город:Кемерово

Отправлено 02 September 2009 - 00:15

То же на днях начал разбирать имг, и вот загвоздка возникла - как правильно расчитать неиспользуемое место в последнем блоке? Я его считаю так: 2048 - размер файла mod 2048 . Но это похоже неправильно, т.к. у ориг файлов неиспользуемое место больше 2048 байт Edit так тут проблема решена, зачем то надо прибавлять 8192 байт Теперь другой вопрос: что делать с первыми 4 байтами в каждом описателе? что за размер объекта и флаги? как их разделить друг от друга?

Сообщение отредактировал MysTer92: 02 September 2009 - 08:16

1994 Toyota Celica GT-Four v1.1 Download
1959 Chevrolet Corvette Download
1949 Ford F-1 Pick-Up Download
HD Cars GTA-Series Download
------
Gigabyte GA-P35-S3G, C2Q Q6600@3,16Ghz, 5Gb Hynix DDR2@880Mhz(5-5-5-18), Gainward Radeon HD4850 512mb@700/2244Mhz, Hitachi HDP725032GLA360, Philips 220CW9FB
OS: Windows 7 Build 7229 64-bit

#34 MysTer92

MysTer92

    Активный участник

  • Пользователи
  • PipPipPip
  • 44 сообщений
  • Пол:Мужчина
  • Город:Кемерово

Отправлено 03 September 2009 - 13:17

Всё проблема решена, оказывается это 4 байта, находящиеся на оффсете 8 из самого RSC файла.
1994 Toyota Celica GT-Four v1.1 Download
1959 Chevrolet Corvette Download
1949 Ford F-1 Pick-Up Download
HD Cars GTA-Series Download
------
Gigabyte GA-P35-S3G, C2Q Q6600@3,16Ghz, 5Gb Hynix DDR2@880Mhz(5-5-5-18), Gainward Radeon HD4850 512mb@700/2244Mhz, Hitachi HDP725032GLA360, Philips 220CW9FB
OS: Windows 7 Build 7229 64-bit

#35 listener

listener

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 356 сообщений
  • Пол:Мужчина
  • Город:Ft.Lauderdale


Отправлено 03 September 2009 - 18:33

Я, примерно неделю назад писал очередную штуку для работы с img (фиговину, которая сканит все img и распаковывает все ресурсы указанного типа). В ходе работы, сложилось некое новое понимание "почему так". В img могут храниться файлы plain (непакованные, как правило - просто текст) или paged и compressed (я не встречал пока файлов, которые были бы только paged или только compressed, поэтому о таком авангардизме сказать ничего не могу). Если для непакованного файла достаточно одного размера, то для пакованного - нужен и пакованный и непакованный размер. (Положить значение флагов - достаточно логично, т.к. это дас не только общий размер, но и количество блоков вместе с размером каждого блока). Т.е. первое поле должно называться dwUncompressedSize или dwFullSize. Что касается "лишних" 8192 байт - возможно, в рассчеты случайно попал заголовок архива?

Сообщение отредактировал listener: 03 September 2009 - 18:37

You think your day was surreal? Try mine.

#36 MysTer92

MysTer92

    Активный участник

  • Пользователи
  • PipPipPip
  • 44 сообщений
  • Пол:Мужчина
  • Город:Кемерово

Отправлено 04 September 2009 - 00:17

listener, а как записывать это поле для не пакованных и не для RSC ресурсов?
про то что к значению свободного места в последнем блоке надо прибавлять 8192 байта, наврятли это ошибка, по скольку сравнивал результат замены файла в спарке, опене и в своей проге, у меня не хватало 8192 байт в значении

Сообщение отредактировал MysTer92: 04 September 2009 - 00:18

1994 Toyota Celica GT-Four v1.1 Download
1959 Chevrolet Corvette Download
1949 Ford F-1 Pick-Up Download
HD Cars GTA-Series Download
------
Gigabyte GA-P35-S3G, C2Q Q6600@3,16Ghz, 5Gb Hynix DDR2@880Mhz(5-5-5-18), Gainward Radeon HD4850 512mb@700/2244Mhz, Hitachi HDP725032GLA360, Philips 220CW9FB
OS: Windows 7 Build 7229 64-bit

#37 Axel218

Axel218

    Активный участник

  • Пользователи
  • PipPipPip
  • 36 сообщений
  • Пол:Мужчина
  • Город:Астана

Отправлено 31 October 2009 - 05:36

Господа, не мог бы кто-нибудь скинуть сюда исходники AES-криптографии для Delphi? Блин, для С++ есть (благо listener в беде не оставил :) ), а вот на Delphi - перелопатил оффсайт, нихрена не нашёл :(

#38 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 31 October 2009 - 07:01

Вот исходники IMG_IV с включенной дешифровкой (и AES-библиотекой, соответственно), ключ сам поместишь в массив.

Прикрепленные файлы

  • Прикрепленный файл  IMG_IV.rar   428.96К   16 загрузок

в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#39 Axel218

Axel218

    Активный участник

  • Пользователи
  • PipPipPip
  • 36 сообщений
  • Пол:Мужчина
  • Город:Астана

Отправлено 01 November 2009 - 08:00

Оу, как много кода :huh: Спасибо!

#40 MysTer92

MysTer92

    Активный участник

  • Пользователи
  • PipPipPip
  • 44 сообщений
  • Пол:Мужчина
  • Город:Кемерово

Отправлено 08 November 2009 - 18:03

Вот у меня почему то дешифровку пришлось запихать в AesLib.pas, так как в отдельном юните процедуры из AesLib не хотели вызываться(
1994 Toyota Celica GT-Four v1.1 Download
1959 Chevrolet Corvette Download
1949 Ford F-1 Pick-Up Download
HD Cars GTA-Series Download
------
Gigabyte GA-P35-S3G, C2Q Q6600@3,16Ghz, 5Gb Hynix DDR2@880Mhz(5-5-5-18), Gainward Radeon HD4850 512mb@700/2244Mhz, Hitachi HDP725032GLA360, Philips 220CW9FB
OS: Windows 7 Build 7229 64-bit




Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных