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

 eXeL@B —› Основной форум —› исследование Quake3
Посл.ответ Сообщение

Ранг: 3.9 (гость)
Активность: 0=0
Статус: Участник

Создано: 21 мая 2007 16:44
· Личное сообщение · #1

Прога: Quake3 Arena
Дебаггер: Olly
Цель: патч жизней
Проделанная работа: обнаружены необходимые локации памяти и процедуры подсчета
Проблема: процедура подсчета жизней находится вне секции кода и создается при загрузке карты. Пропатчить неудается
Вопрос: И откуда, блин, прога вытаскивает эту процедуру??



Ранг: 2.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 21 мая 2007 17:08
· Личное сообщение · #2

А нафига там что изменять если исходный код доступен???
Лично компилял.



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 21 мая 2007 17:26
· Личное сообщение · #3

Кроме того, там, кажется, на всё это коды были.

-----
Всем привет, я вернулся





Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 21 мая 2007 18:35
· Личное сообщение · #4

xinix, при single player игре пишешь give all и всё. А при сетевой игре всё на сервере.




Ранг: 85.5 (постоянный), 16thx
Активность: 0.040.05
Статус: Участник

Создано: 21 мая 2007 19:59
· Личное сообщение · #5

xinix пишет:
создается при загрузке карты. Пропатчить неудается

А что если при загрузке карты её и патчить?
т.е. встроить код в процедуру загрузки карты




Ранг: 282.8 (наставник), 24thx
Активность: 0.260
Статус: Участник
win32.org.ru

Создано: 21 мая 2007 21:38
· Личное сообщение · #6

На сколько я помню, проблемы с жизнями там не было. Помоему инъекция проходит там.

-----
may all your PUSHes be POPed!




Ранг: 10.8 (новичок)
Активность: 0=0
Статус: Участник

Создано: 22 мая 2007 13:52
· Личное сообщение · #7

Запускаем игру, жмем "skirmish", смотрим карты,
выбираем понравившуюся, например seven, запоминаем
или записываем название карты и назад, в главное меню.
Здесь опускаем консоль клавишей [~] (тильда),
очищаем от мусора до значка ] и набираем:
/devmap seven

затем нажимаем [Enter]. Поскольку мы там одни, добавляем ботов:
[Esc], далее ADD BOT, все читы через /give ... работают.

give all - получить все
give health - получить здоровье
give armor - получить броню
give quad damage - получить Quad Damage
give personal teleporter - получить телепорт
give gauntlet - получить Gauntlet
give machinegun - получить Machinegun
give shotgun - получить Shotgun
give granade launcher - получить Granade Launcher
give rocket launcher - получить Rocket Launcher
give lightning gun - получить Lightning Gun
give railgun - получить Railgun
give plasma gun - получить Plasma Gun
give bfg10k - получить BFG10K
give grappling hook - получить Grappling Hook
give ammo - получить патроны



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 22 мая 2007 15:34
· Личное сообщение · #8

у кваки своя vm, находится она в файлах qvm, имхо её ты и пытаешься пропатчить в памяти




Ранг: 103.3 (ветеран), 8thx
Активность: 0.060
Статус: Участник

Создано: 22 мая 2007 17:22
· Личное сообщение · #9

Av0id пишет:
у кваки своя vm


а им какая необходимость была VM мутить? ради кроссплатформы что ли, типа небольшого framework'a?




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 22 мая 2007 20:12
· Личное сообщение · #10

NaumLeNet, дело в том, что вся логика игры в этой VM а не в exe-шнике. Какмэк так давно делает, с quake1 начиная. В doom, IIRC, логика была в движке, а в WAD файле карта.




Ранг: 103.3 (ветеран), 8thx
Активность: 0.060
Статус: Участник

Создано: 22 мая 2007 21:36
· Личное сообщение · #11

s0larian
я понимаю про логику ) цель использовать виртуальную машину вообще - какая? любую логику можно и нативно организовать, согласись. либо это идея для кроссплатформы, либо мне не хватает тяму.




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 22 мая 2007 21:58
· Личное сообщение · #12

хм. Думается мне, для простоты изменения логики. Ибо кроссплатформенность итак реализуема за счёт С++ и OpenGL, и что там может быть непереносимого мне не понятно.Ща все игры юзают скрип двиги аля lua етц. И не только для описания npc, но и для квестов.

-----
Недостаточно только получить знания:надо найти им приложение





Ранг: 103.3 (ветеран), 8thx
Активность: 0.060
Статус: Участник

Создано: 23 мая 2007 08:15 · Поправил: NaumLeNet
· Личное сообщение · #13

The Q3VM is a virtual machine used by Quake III to run the game module. The VM is a sort of sandbox to limit the damage a rogue or malicious QVM program can wreak. Though not perfect, it certainly is much safer than full access to native machine language, which could otherwise more easily allow the spread of viruses or the corruption of system resources. In addition, Q3VM programs, similar to JVM's, are write-once run-on-many-platforms (at least for which a Q3VM interpreter or compiler exists).

(c) http://icculus.org/~phaethon/q3mc/q3vm_specs.html http://icculus.org/~phaethon/q3mc/q3vm_specs.html

+ http://en.wikipedia.org/wiki/Quake_III_Arena#Virtual_machine http://en.wikipedia.org/wiki/Quake_III_Arena#Virtual_machine
Тоже становится все ясно. Ни о какой логике не идет речь, понятное дело. Любую логику можно организовать нативно, я повторюсь.

я думаю тема закрыта. все и всем понятно )


 eXeL@B —› Основной форум —› исследование Quake3
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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