PSX Planet: SONY PlayStation Community

PSX Planet: SONY PlayStation Community (https://psxplanet.ru/forum/index.php)
-   Общество (https://psxplanet.ru/forum/forumdisplay.php?f=410)
-   -   Группа переводчиков *KUDOS MUST DIE!* (https://psxplanet.ru/forum/showthread.php?t=3205)

DruchaPucha 17.12.2011 17:45

Ответ: Группа переводчиков *KUDOS MUST DIE!*
 
Цитата:

Сообщение от paul_met (Сообщение 135819)
А опрос никак убрать разве нельзя? Толку то от него...

Тут скорее администрация может, что-то сделать, у меня не вышло.

bahamutff 25.01.2012 13:51

Ответ: Группа переводчиков *KUDOS MUST DIE!*
 
игры перевести не трудно,попробуй свой перевод грамотно добавить в игру

DruchaPucha 25.01.2012 14:08

Ответ: Группа переводчиков *KUDOS MUST DIE!*
 
По идеи теперь тема светится не должна, опрос отключён.

MFS 18.06.2012 15:52

Ответ: Группа переводчиков *KUDOS MUST DIE!*
 
Цитата:

Сообщение от BoreS (Сообщение 15865)
ты меня правильно понял. остальное от лукавого. поинтеры - сила. а асм - ваааще!!!

Тэк-с, народ, а кто-нибудь может объяснить, где и как нужно искать эти самые поинтеры применительно к играм именно на ЗЫЧ???

paul_met 18.06.2012 23:20

Ответ: Группа переводчиков *KUDOS MUST DIE!*
 
Цитата:

Сообщение от Rotoid (Сообщение 146915)
Тэк-с, народ, а кто-нибудь может объяснить, где и как нужно искать эти самые поинтеры применительно к играм именно на ЗЫЧ???

Поинтеры обычно находятся в том файле, где располагается искомый текст, который требуется изменить или сместить. Но это далеко не всегда.
Поитеры могут быть как 4-х байные, так и 8-ми. На примере исполняемого PSX-EXE файла значение поинтера обычно вычисляется путем сложения адреса начала искомого текста и смещения. Смещение вычисляется путем вычитания из области оперативной памяти (0х18) размера заголовка (0х800). В других файлах вычисление поинтера будет иным (в зависимости от конкретной игры).
PS: Все операции по вычислению поинтеров выполняются с учётом обратного порядка байт!

ViToTiV 19.06.2012 10:15

Ответ: Группа переводчиков *KUDOS MUST DIE!*
 
Цитата:

Сообщение от paul_met (Сообщение 146930)
как 4-х байные, так и 8-ми

ты наверное хотел сказать 2-х и 4-х байтные, хотя попадались и однобайтные.

Цитата:

Сообщение от paul_met (Сообщение 146930)
с учётом обратного порядка байт!

не всегда, но в общем случае да, смотря под какую систему.

paul_met 19.06.2012 11:46

Ответ: Группа переводчиков *KUDOS MUST DIE!*
 
Цитата:

Сообщение от ViToTiV (Сообщение 146935)
ты наверное хотел сказать 2-х и 4-х байтные, хотя попадались и однобайтные.

Нет, я сказал правильно. А что ты имел ввиду я не знаю.

ViToTiV 19.06.2012 13:18

Ответ: Группа переводчиков *KUDOS MUST DIE!*
 
paul_met, 8 байт под переменную для поинтера... многовато)
хотя может ты взламываешь игры под 64-битные и выше архитектуры процессора. ???_???

paul_met 19.06.2012 13:40

Ответ: Группа переводчиков *KUDOS MUST DIE!*
 
Цитата:

Сообщение от ViToTiV (Сообщение 146938)
paul_met, 8 байт под переменную для поинтера... многовато)
хотя может ты взламываешь игры под 64-битные и выше архитектуры процессора. ???_???

Речь шла естественно только про PSX.

MFS 19.06.2012 15:56

Ответ: Группа переводчиков *KUDOS MUST DIE!*
 
Да-да, про ЗЫЧ, сэнкс, Пол_Мет, что отписался. То бишь как я понял, если текст нах-ся не в экзешнике, а где-либо еще, то поинтеры уже неизвестно как вычислить (нет никаких готовых схем)?
И что значит (0х18) и (0х800) (я нуб), где можно подробнее прочитать про хедеры?

paul_met 19.06.2012 19:17

Ответ: Группа переводчиков *KUDOS MUST DIE!*
 
Цитата:

Сообщение от Rotoid (Сообщение 146944)
И что значит (0х18) и (0х800) (я нуб), где можно подробнее прочитать про хедеры?

Это адреса в hex'е.
У меня давно витает мысль в голове написать простенькую прогу для поиска поинтеров в экзешнике. Может скоро руки до неё и дойдут...
PS: Просьба к нику транскрипцию не применять...

MFS 24.06.2012 02:10

Ответ: Группа переводчиков *KUDOS MUST DIE!*
 
Цитата:

Сообщение от paul_met (Сообщение 146952)
У меня давно витает мысль в голове написать простенькую прогу для поиска поинтеров в экзешнике. Может скоро руки до неё и дойдут...

Ох, было б офигенски! Всячески агитирую тебя поскорее это сделать=]
Цитата:

Сообщение от paul_met (Сообщение 146952)
Просьба к нику транскрипцию не применять...

Лень было язык переключать, пардон %)

paul_met 07.07.2012 22:54

Ответ: Группа переводчиков *KUDOS MUST DIE!*
 
Цитата:

Сообщение от Rotoid (Сообщение 147060)
Ох, было б офигенски! Всячески агитирую тебя поскорее это сделать=]

Беда в том, что я не так давно нашёл ещё пачку разных видов поинтеров, которые не попадают под стандартную классификацию. Так что, даже не знаю как лучше поступить. Всё-таки истину не оспоришь - к каждой игре нужен индивидуальный подход.

Kazooki 01.01.2013 15:58

Ответ: Группа переводчиков *KUDOS MUST DIE!*
 
Цитата:

Сообщение от paul_met (Сообщение 146930)
Поитеры могут быть как 4-х байные, так и 8-ми. На примере исполняемого PSX-EXE файла значение поинтера обычно вычисляется путем сложения адреса начала искомого текста и смещения. Смещение вычисляется путем вычитания из области оперативной памяти (0х18) размера заголовка (0х800).

Абрвалг сплошной. Что 18h? Какой еще заголовок? Бред какой-то.:ng_Wacko:

Цитата:

Сообщение от ViToTiV (Сообщение 146935)
хотя попадались и однобайтные.

оО это как? пример конкретный можно игра/файл?

Цитата:

Сообщение от paul_met (Сообщение 146937)
Цитата: Сообщение от ViToTiV ты наверное хотел сказать 2-х и 4-х байтные, хотя попадались и однобайтные. Нет, я сказал правильно. А что ты имел ввиду я не знаю.

ViToTiV пытался донести светлую мысль что 32 бит÷8=4 байта.
Цитата:

Сообщение от paul_met (Сообщение 148063)
Беда в том, что я не так давно нашёл ещё пачку разных видов поинтеров, которые не попадают под стандартную классификацию.

Да неужели? Примеры пожалуйста.

ViToTiV 02.01.2013 17:56

Ответ: Группа переводчиков *KUDOS MUST DIE!*
 
Цитата:

Сообщение от Kazooki (Сообщение 157526)
ViToTiV пытался донести светлую мысль что 32 бит÷8=4 байта.

так и есть, но впадлу было уже что-то объяснять)

Цитата:

Сообщение от Kazooki (Сообщение 157526)
оО это как? пример конкретный можно игра/файл?

ну конкретно игру уже не вспомню, просто шли подряд длины строк и всё, в Breath of fire 3 даже может, хотя наверное там двухбайтные, не помню уже...

lupus 04.01.2013 17:35

Ответ: Группа переводчиков *KUDOS MUST DIE!*
 
Цитата:

Сообщение от paul_met (Сообщение 146952)
Это адреса в hex'е.
У меня давно витает мысль в голове написать простенькую прогу для поиска поинтеров в экзешнике. Может скоро руки до неё и дойдут...

Было бы отлично...

Kazooki 06.01.2013 17:21

Ответ: Группа переводчиков *KUDOS MUST DIE!*
 
lupus, Cобственно зачем? Как правило рядом с блоком текста и блок указателей на него. И Хорор уже какую-то утилитку выкладывал причем с сырками.

paul_met 06.01.2013 19:59

Группа переводчиков *KUDOS MUST DIE!*
 
Цитата:

Сообщение от Kazooki (Сообщение 157526)
Абрвалг сплошной. Что 18h? Какой еще заголовок? Бред какой-то.

В чём бред то? В каждом исполняемом файле PSX-EXE имеется заголовок, в котором храниться некоторая полезная информация:
  • по адресу 0х1с - размер исполняемого файл.
  • по адресу 0х18 - в какую область оперативной памяти его загружать.
Размер заголовка можно вычислить путём вычитания из реального размера файла - размер файла без заголовка, записанный по адресу 0x1c. Как правило это размер получается равным 0х800.
Затем из значения, находящегося по адресу 0х18 вычитаем размер заголовка 0х800 и получаем наше заветное смещение.
Все операции производятся с учётом обратного порядка байт.


На счёт 8-ми байтового поинтера, то когда стандартный 4-х байтовый поинтер разбивается на части, то есть сначала идёт 2 последних байта поинтера, потом пара неизвестных мне байт, а затем 2 первых байта поинтера, впрочем после них опять неизвестная мне пара байт. Такой указатель получается 8-ми байтовым ибо по другому его нельзя классифицировать. В качестве примера можно посмотреть экзешник американской версии игры Vandal Hearts (SLUS_004.47). 8-ми байтовый поинтер, например можно найти по адресу 0х396B0 и выглядит он как "0180023CEC374224". Жирным выделены две части 4-х байтового поинтера, который в обычном случае выглядел бы как "EC370180".


На счёт нестандартных случаев точно не помню, но вроде как в игре Twisted Metal, над которой как раз и трудился товарищ lupus, были какие-то нестыковки со смещением. На сколько я помню к уже имеющему смещению прибавлялось некое второе смещение и уже тогда получался готовый 8-ми байтовый поинтер.


Цитата:

Сообщение от Kazooki (Сообщение 157825)
lupus, Cобственно зачем? Как правило рядом с блоком текста и блок указателей на него. И Хорор уже какую-то утилитку выкладывал причем с сырками.

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

Kazooki 07.01.2013 20:02

Ответ: Группа переводчиков *KUDOS MUST DIE!*
 
Цитата:

Сообщение от paul_met (Сообщение 157835)
по адресу 0х1с - размер исполняемого файл.по адресу 0х18 - в какую область оперативной памяти его загружать.Размер заголовка можно вычислить путём вычитания из реального размера файла - размер файла без заголовка, записанный по адресу 0x1c. Как правило это размер получается равным 0х800.Затем из значения, находящегося по адресу 0х18 вычитаем размер заголовка 0х800 и получаем наше заветное смещение.Все операции производятся с учётом обратного порядка байт.

О, так понятней.
Если ида не устраивает, то можнео наверно и так. Правда она иногда не правильно интерпретирует данные, но есть поиск по hex. Но я привык к PEC.
Цитата:

Сообщение от paul_met (Сообщение 157835)
На счёт 8-ми байтового поинтера, то когда стандартный 4-х байтовый поинтер разбивается на части, то есть сначала идёт 2 последних байта поинтера, потом пара неизвестных мне байт, а затем 2 первых байта поинтера, впрочем после них опять неизвестная мне пара байт. Такой указатель получается 8-ми байтовым ибо по другому его нельзя классифицировать. В качестве примера можно посмотреть экзешник американской версии игры Vandal Hearts (SLUS_004.47). 8-ми байтовый поинтер, например можно найти по адресу 0х396B0 и выглядит он как "0180023CEC374224". Жирным выделены две части 4-х байтового поинтера, который в обычном случае выглядел бы как "EC370180".

Но указывает то он на 800137EC. Так? Т.е по твоей логике длинна указателя 0180~n~EC374 будет равна 4+n и назвать его конечно можно хоть 147398-байтным. И не смущает, что поинтер выходит за пределы разрядности.

Цитата:

Сообщение от paul_met (Сообщение 157835)
Это правило к какой системе относиться? У которых в качестве носителей выступают картриджи?

---->
Цитата:

Сообщение от Rotoid (Сообщение 146915)
где и как нужно искать эти самые поинтеры применительно к играм именно на ЗЫЧ???


Цитата:

Сообщение от paul_met (Сообщение 157835)
Поинтеры могут быть где угодно (даже в другом файле в то время, как искомый текст сидит в экзешнике).

Конечно есть не стандартные случаи когда нет отдельной таблицы, а указатели идут вперемешку с кодом или другими данными. Или от опорного указателя тем или иным образом вычисляется смещение к данным. Поинтеров вообще в нативном виде может и не быть, но ведь речь шла о:
Цитата:

Сообщение от paul_met (Сообщение 146952)
У меня давно витает мысль в голове написать простенькую прогу для поиска поинтеров в экзешнике


paul_met 08.01.2013 00:18

Ответ: Группа переводчиков *KUDOS MUST DIE!*
 
Цитата:

Сообщение от Kazooki (Сообщение 157919)
Но указывает то он на 800137EC. Так? Т.е по твоей логике длинна указателя 0180~n~EC374 будет равна 4+n и назвать его конечно можно хоть 147398-байтным. И не смущает, что поинтер выходит за пределы разрядности.

Я рассматриваю это как одно целое, так как обычный 4-х байтовый поинтер разбит на части получается и идёт не в том порядке как обычно. В любом случае изменение любого байта из этих 8-ми приведёт либо к исчезновению искомого текста, либо вообще к зависону. Какой смысл привязываться к битности? От этого легче не становиться.


Ты не того процитировал - отвечал же lupus'у, а не Rotoid'у.


"Простенькая" в визуальном плане, а не в техническом. Проще говоря без навороченного GUI. Хотелось бы конечно охватить как можно больше случаев.


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

Kazooki 11.01.2013 18:42

Ответ: Группа переводчиков *KUDOS MUST DIE!*
 
В общем то да и это дикий офф. Начиная с поста Rotoid можно вынести в отдельный топик. Но на вопрос не очень то ответили.


Часовой пояс GMT +3, время: 03:40.

Перевод: zCarot
Права | Copyright ©
© PSX Planet Community 2003-2024