| Разработка и ромхакинг > Ромхакинг и программирование |
| Хакинг игры crash team racing для psx |
| << < (2/3) > >> |
| HoRRoR:
--- Цитата ---Это инициализированная переменная. Как например звук = 30. --- Конец цитаты --- Ой умник, умник. Звук - переменная в памяти, 30 - константа в файле (которая, в прочем, тоже грузится или отображается в память, которая по-хорошему должна быть read-only). |
| Mr2:
--- Цитата: HoRRoR от 05 Сентябрь 2011, 09:33:52 ---Ой умник, умник. --- Конец цитаты --- :-\ --- Цитата: HoRRoR от 05 Сентябрь 2011, 09:33:52 --- Звук - переменная в памяти, 30 - константа в файле (которая, в прочем, тоже грузится или отображается в память, которая по-хорошему должна быть read-only). --- Конец цитаты --- Виртуальна ли "Виртуальная функция"?!!! :lol: --- Цитата: TrickZter от 05 Сентябрь 2011, 08:14:28 ---Переменные существуют только в оперативной памяти. В РОМе (ROM = Read-Only Memory) или в образе диска по определению не может быть переменных. --- Конец цитаты --- А куда же по твоему грузится exe файл? --- Цитата: MARIOFAN от 05 Сентябрь 2011, 09:57:22 ---А теперь пошли разговоры профи... --- Конец цитаты --- Это очередной приступ занудства некоторых. :lol: |
| TrickZter:
--- Цитата: Mr2 от 05 Сентябрь 2011, 13:25:00 ---А куда же по твоему грузится exe файл? --- Конец цитаты --- Причём тут EXE-файл? В нём музыки не содержится. Но даже в нём нет никаких переменных, переменные создаются в оперативе во время исполнения этого EXEшника. То есть происходит это в таком порядке: 1. EXEшник грузится в оперативку. 2. EXEшник начинает исполняться. 3. В оперативе выделяется место под переменные, которые нужны программе в тот или иной момент. |
| Mr2:
--- Цитата: TrickZter от 05 Сентябрь 2011, 15:11:31 ---Причём тут EXE-файл? --- Конец цитаты --- --- Цитата: AKuHAK ---Как в артмани менять, чтобы разлочить скрытые фичи я знаю, а вот как эти изменения запихать в исходный код я без понятия (( Чтобы диск пошёл на пс1 с уже разлоченными фичами (по идее там всего пару байтов надо поменять, но всё равно непонятно куда копать. --- Конец цитаты --- --- Цитата: TrickZter от 05 Сентябрь 2011, 15:11:31 ---В нём музыки не содержится. Но даже в нём нет никаких переменных, переменные создаются в оперативе во время исполнения этого EXEшника. То есть происходит это в таком порядке: 1. EXEшник грузится в оперативку. 2. EXEшник начинает исполняться. 3. В оперативе выделяется место под переменные, которые нужны программе в тот или иной момент. --- Конец цитаты --- А если место этой переменной в оперативке определёно по месту переменной в файле? :? С твоей логикой переменной не существует даже в исходном коде. :lol:Виртуальна ли "Виртуальная функция"?!!! :lol: |
| HoRRoR:
--- Цитата ---А куда же по твоему грузится exe файл? --- Конец цитаты --- К слову, в некоторых случаях он может не грузиться вовсе, а отображаться. --- Цитата ---А если место этой переменной в оперативке определёно по месту переменной в файле? --- Конец цитаты --- Лолшто, извини? Покажи мне где ты такое видел. --- Цитата ---Виртуальна ли "Виртуальная функция"?!!! --- Конец цитаты --- Семантика слова "виртуальная" в контексте программирования чётко определена. |
| Mr2:
--- Цитата: HoRRoR от 05 Сентябрь 2011, 16:10:23 ---К слову, в некоторых случаях он может не грузиться вовсе, а отображаться. --- Конец цитаты --- --- Цитата ---Отображение файла в память (на память) — это такой способ работы с файлами в некоторых операционных системах, при котором всему файлу или некоторой непрерывной части этого файла ставится в соответствие определённый участок памяти (диапазон адресов оперативной памяти). При этом чтение данных из этих адресов фактически приводит к чтению данных из отображенного файла, а запись данных по этим адресам приводит к записи этих данных в файл. Примечательно то, что отображать на память часто можно не только обычные файлы, но и файлы устройств. --- Конец цитаты --- В некоторых. ;) И походу для PSX этот метод не подходит, если говорить о переменных. <_< --- Цитата: HoRRoR от 05 Сентябрь 2011, 16:10:23 ---Лолшто, извини? Покажи мне где ты такое видел. --- Конец цитаты --- Яж писал выше Ответ #14. В Иде.(Если ты нашёл адреса в памяти приставки, то выбери адрес в Иде и рядом увидишь адрес переменной в файле.) Явная связь переменной в исполняемом файле и переменной в памяти консоли? --- Цитата: HoRRoR от 05 Сентябрь 2011, 16:10:23 ---Семантика слова "виртуальная" в контексте программирования чётко определена. --- Конец цитаты --- Как и переменная, опаратно независима. |
| HoRRoR:
--- Цитата ---Если ты нашёл адреса в памяти приставки, то выбери адрес в Иде и рядом увидишь адрес переменной в файле. --- Конец цитаты --- Что за бред? IDA показывает адресное пространство, и это не обязательно должен быть адрес в файле. Более того, если ты правильно подгрузил экзешник в иду, то это будет никак не адрес в файле. В общем, уже шизофазия какая-то пошла. |
| Mr2:
--- Цитата: HoRRoR от 05 Сентябрь 2011, 16:43:06 ---Что за бред? IDA показывает адресное пространство, и это не обязательно должен быть адрес в файле. Более того, если ты правильно подгрузил экзешник в иду, то это будет никак не адрес в файле. --- Конец цитаты --- Ну я же пользовался своим методом. :) А ты бред,бред. :( Нашёл в начале адрес громкости звука в памяти приставки(d88a8),путём его увеличения и уменьшения. Затем ввёл этот адрес в ИДУ, и она мне показала где эта переменная хранится в файле. На картинках описана процедура. --- Цитата: HoRRoR от 05 Сентябрь 2011, 16:43:06 ---В общем, уже шизофазия какая-то пошла. --- Конец цитаты --- Можно и так назвать ромхаккинг. :lol: |
| HoRRoR:
--- Цитата ---Затем ввёл этот адрес в ИДУ, и она мне показала где эта переменная хранится в файле. --- Конец цитаты --- Ты вообще понимаешь разницу между переменной и константой? |
| Mr2:
--- Цитата: HoRRoR от 05 Сентябрь 2011, 17:30:00 ---Ты вообще понимаешь разницу между переменной и константой? --- Конец цитаты --- Если ты имеешь в виду что я меняю константу в памяти приставки, путём изменения константы в файле, то это не так, потому что ту же константу я изменяю в меню игры, уменьшая или увеличивая громкость, следовательно это уже не константа. Переменная не зависит от того где она находится в файле или в памяти приставки, она зависит от способа её использования. Запомните!!!! Господа! :) |
| HoRRoR:
Покажи мне код, который меняет эту константу. X-refs в помощь. |
| Mr2:
--- Цитата: HoRRoR от 05 Сентябрь 2011, 17:43:32 ---Покажи мне код, который меняет эту константу. X-refs в помощь. --- Конец цитаты --- Не константу, о константе говорил ты, я говорил почему она не яаляется константой. Метод работает, и меня это устраивает мне не важно какой код меняет эту переменную. Если ты под переменной понимаешь ячейку оперативной памяти то тут я бессилен. |
| HoRRoR:
Видимо, ты умнее людей, которые всё это придумали :wall: |
| Mr2:
--- Цитата: HoRRoR от 05 Сентябрь 2011, 17:56:39 ---Видимо, ты умнее людей, которые всё это придумали :wall: --- Конец цитаты --- Чёрт, да ты меня раскусил! :) |
| r57shell:
--- Цитата: Mr2 от 05 Сентябрь 2011, 16:55:02 ---Затем ввёл этот адрес в ИДУ, и она мне показала где эта переменная хранится в файле. --- Конец цитаты --- это просто место нахождения значений стартовых значений, так скажем. иногда так сканает, а иногда нет, т.к. многие в коде отдельно инициализируют. |
| Mr2:
--- Цитата: r57shell от 05 Сентябрь 2011, 18:08:49 ---это просто место нахождения значений стартовых значений, так скажем. --- Конец цитаты --- С ассемблером не особо знаком.Не знаю что там где хранится. Но как я понля это инициализированая переменная. int sound(10). --- Цитата: r57shell от 05 Сентябрь 2011, 18:08:49 ---иногда так сканает, а иногда нет, т.к. многие в коде отдельно инициализируют. --- Конец цитаты --- Буду знать, спасибо! |
| r57shell:
--- Код: ---int qwe = 10; // оно самое. int main() { int sound(10); // не так будет выглядеть, ибо в стеке. return 0; } --- Конец кода --- |
| Tempest:
Эй ребята,ребята!Хватит,может быть займемся моим вопросом,а? |
| r57shell:
может быть... (почувствуй логику) разжёвывать тебе никто не будет, только потому, что заменить быстрее чем разжевать, а раз заменить, скорее всего, не легко, то, логично, разжевывать никто не будет, так как разжевать ещё сложнее. в двух словах: 1) найти 2) достать 3) пощупать 4) найти чего вставить 5) сделать чтобы было "вставляемо" (иногда без этого шага) 6) вставить! 7) заставить работать (включить в игровой процесс) каждый из шагов может занять очень много времени, а может и ничего не занять. конкретно по этой игре, лучше всего найти того, кто это уже делал, а если такого найти не удаётся - нужно выполнять список выше ). |
| AKuHAK:
Да уж так оно всё и есть. Хотя по моему менять музыку не так уж и нужно, небольшой маленький хакинг куда интереснее. Вот к примеру разберём невозможность выбора двух одинаковых игроков: когда мы выбираем одним игроком персонажа под номером 0, то для второго он блочится - очевидно, что применяется некая маска, если её обнулить (как я пока не понял - наверное, как то связано со страшными брейкпойнтами :blush:), то мы начинаем жить в шоколаде. А уже одно это невероятно улучшит впечатление от игры, когда играешь вдвоём с кем-то, то обычно один выбирает имбового персонажа и выигрывает им только за счёт его параметров. А насколько я понял данное действие нельзя провести, не сделав предварительно хотя бы минимального разбора кода. То же самое с трассой, на которой нельзя поездить когда выбираешь двоих игроков, но в одиночку вполне можно - тоже срабатывает какая-то маска. Просто была у меня мысля, что хотя бы частичным хакингом этой игры кто-то из метров занимался - всё-таки рок-нролл рейсинг уступает ей по количеству приколов, которыми можно отжигать на трассе. |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |