March 28, 2024, 17:16
bigger smaller reset     1020px Wide width Full width Reset   * *

Gildor's Forums

  Homepage Facebook Read news on Twitter Youtube channel Github page
Welcome, Guest. Please login or register.
Did you miss your activation email?

« previous next »
Print
Author Topic: нужен совет по поводу .xxx файлов. хочу отредактировать в хэкс  (Read 8263 times)
Gildor
Administrator
Hero Member
*****
Posts: 7978



View Profile WWW
« Reply #15 on: June 06, 2014, 10:31 »

Это не получится сделать без смещения всех объектов в файле.
Logged
HEAM-WNQ
Newbie
*
Posts: 13


View Profile
« Reply #16 on: June 09, 2014, 04:43 »

Это не получится сделать без смещения всех объектов в файле.
знаю, но это не проблема.  сначала первый объект сдублирую в конец потока данных. затем после преобразований таблицы сдвину поток объектов нечиная со второго на исходные адреса, и остаётся только поменять в таблице экспорта ссылку на смещённый в конец первый объект. на старом месте первого объекта будет дырка, но я думаю это не страшно.
« Last Edit: June 09, 2014, 04:52 by HEAM-WNQ » Logged
HEAM-WNQ
Newbie
*
Posts: 13


View Profile
« Reply #17 on: June 10, 2014, 00:53 »

Вот например строка из таблицы экспорта файла CHAR_Kitana_C.xxx

которая отвечает за файл внутри архива
CHAR_Kitana_C\CHAR_RetroNinja_Female_MK2\Meshes\RetroNinja_Female_MK2.SkeletalMesh
в таблице имён этим названиям соответствуют следующие значения:
SkeletalMesh=1562
CHAR_RetroNinja_Female_MK2=378
Meshes=1232
RetroNinja_Female_MK2=1451
теперь вернёмся к строке из таблицы экспорта.
1. значение 9F FD A7 соответстует адресу начала файла RetroNinja_Female_MK2.SkeletalMesh в архиве CHAR_Kitana_C.xxx, т. к. через инжектор я установил, что начало файла там 00 A7 FD 9F
2. значение AB 05 отвечает за имя файла, т.к.  если перевернуть будет 05 AB, что переводя в десятичную систему соответствует 1451
но вот где здесь кодируется расширение файла и имена папок я так и не понял. можете помочь разобраться?
« Last Edit: June 10, 2014, 02:26 by HEAM-WNQ » Logged
Gildor
Administrator
Hero Member
*****
Posts: 7978



View Profile WWW
« Reply #18 on: June 10, 2014, 11:31 »

Уже сотню раз наверное писал. Это не архивы, и внутри них - не файлы. И расширений у них нет. Это я для облегчения своего исследования написал утилиту, которая представляет пакет в виде архива и извлекает оттуда объекты ... "Расширение" в данном случае - класс объекта.
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7978



View Profile WWW
« Reply #19 on: June 10, 2014, 11:58 »

Советую обратить внимание на эту тему:
http://www.gildor.org/smf/index.php/topic,1425.msg16834.html#msg16834
не знаю, простое ли это совпадение, но одновременно с вами пошла подобная тема на английском языке, по той же самой игре.
Logged
HEAM-WNQ
Newbie
*
Posts: 13


View Profile
« Reply #20 on: June 10, 2014, 16:38 »

совпадение) я уже давно разобрался с таблицей имён. там всё гораздо проще. а вот с таблицей экспорта...

вы сказали "Расширение" в данном случае - класс объекта. в моём случае я так понимаю это SkeletalMesh? можете подсказать как он закодирован в строке в примере?

и как я понимаю из сказанного Вами выше, имена CHAR_RetroNinja_Female_MK2 и Meshes (названия папок в дириктории CHAR_Kitana_C\CHAR_RetroNinja_Female_MK2\Meshes\RetroNinja_Female_MK2.SkeletalMesh) в данной строке вообще нигде не закодированы? т.е. в каждой строке таблицы экспорта содержится только название объекта (порядковый номер имени в таблице имён), класс, и ссылка на адрес начала потока данных?
« Last Edit: June 10, 2014, 16:41 by HEAM-WNQ » Logged
Gildor
Administrator
Hero Member
*****
Posts: 7978



View Profile WWW
« Reply #21 on: June 10, 2014, 20:18 »

Интересное совпадение Smiley Может где-то на другом сайте-форуме тему подняли?

На класс объекта идёт ссылка из таблицы экспорта. Сами классы идут как объекты в таблице импорта (классы как бы импортятся из других пакетов, в основном из engine.u). Посмотрите ini-файлы, сгенерённые extract.exe, думаю станет понятно.
Logged
HEAM-WNQ
Newbie
*
Posts: 13


View Profile
« Reply #22 on: June 10, 2014, 22:45 »

Может где-то на другом сайте-форуме тему подняли?

может кто-то и поднял, но с английским у меня туго поэтому я не с ними)

спасибо) теперь всё прояснилось.
получается в каждой строке таблицы экспорта содержится только название объекта (порядковый номер имени в таблице имён), класс (порядковый номер в таблице импорта) и ссылка на адрес начала потока данных. больше там ничего полезного нет? из-за чего при запуске может выдать ошибку? а то ведь там ещё много неизвестных байт?
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7978



View Profile WWW
« Reply #23 on: June 10, 2014, 23:00 »

Для MK структура ObjectExport сериализуется вроде так:

Code:
ClassIndex
SuperIndex
PackageIndex
ObjectName
Archetype
ObjectFlags  // int64
SerialSize
SerialOffset
ComponentMap // TMap<FName, int>
ExportFlags
Guid //
Logged
Print 
« previous next »
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Leviathan design by Bloc | XHTML | CSS