Current time: 23.03.2024, 17:51 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Исследование героев
» туториал(ы)
Author Message
feanor Offline

Posts: 622
Post: #16

PE-шники открывает и дизасм вроде показывает. Хотя да, я её в основном для ARM юзал.
08.02.2010 01:47
Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1467
Post: #17

(07.02.2010 20:37)Дьякон Wrote:  Иду конечно тоже не плохо иметь. Но думаю тебе и Оли хватит пока.
Отвечая в столь же романтическом ключе: эту девушку я снял. Поизвращаемся, если она согласна. 148 Тем более, есть несколько вполне чётких целей...


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
11.02.2010 14:17
Find all posts by this user Quote this message in a reply
SAG Offline

Posts: 173
Post: #18

создал dll позволяющую расширить список стартовых героев за счет добавления героев из кампаний. Пока добавляются Мюллих и Катерина и банятся Сильвия и Саня. Потом доделаю, чтобы список динамически расширялся.
Большое спасибо Сергею Роженко, ASM, Дьякон, Берсеркер за большую помощь в создании этой dll.
Скачать можно здесь: http://www.heroes-iii.com/files/sag_dll_v1.zip
20.02.2010 23:48
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16449
Post: #19

SAG, для паблика более интересен адрес массива с героями и принцип.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
21.02.2010 00:33
Find all posts by this user Quote this message in a reply
SAG Offline

Posts: 173
Post: #20

массив по адресу $699538)^+$4DF18
исходники (меняются Оррин Валеска) http://collabedit.com/display?id=15964
23.02.2010 17:05
Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 622
Post: #21

Благодарю!
23.02.2010 21:26
Find all posts by this user Quote this message in a reply
GhostManSD Offline

Posts: 1054
Post: #22

После того, как увидел то, что можно творить через !!UN:C, очень хочется научиться творить такое самому. В наличии имеются Ida Pro, MASM, Asm_Ed, CodeView, Hiew, OllyDbg, Peid, QuickUnpack. Есть, как видите, многое, но навыка - ноль. Подскажите, пожалуйста, полезную литературу по данному вопросу, поскольку здесь я - даже больший нуб, чем в ERM.
Через АртМани, а потом !!UN:C уже умею менять кое-какие тексты и данные (спасибо огромное MOP'у и gamecreator'у за ценные советы). Однако этого явно недостаточно. Хочется иметь куда большие возможности. В частности, интересует методика создания новых триггеров.


Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
01.09.2010 11:57
Visit this user's website Find all posts by this user Quote this message in a reply
Sav Offline

Posts: 2180
Post: #23

Quote:В частности, интересует методика создания новых
триггеров.
Мне тоже это очень хотелось бы знать. Там вроде надо что-то менять в коде, но как найти, где и понять на что?
01.09.2010 12:45
Find all posts by this user Quote this message in a reply
GhostManSD Offline

Posts: 1054
Post: #24

Насколько я понял из исходника dll для Эры, который мне предоставил MOP, отлавливается адрес и при обращении к этому адресу выполняются нужные действия.


Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
01.09.2010 12:53
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16449
Post: #25

Так и есть. Достаточно выучить азы ассемблера. Руководства можно найти на wasm.ru, как и весь нужный интрументарий.
Суть создания "нового триггера" в Эре - это в нужном месте кода героев/вога:
  • Прописать прыжок на свою функцию
  • Сохранить контекст исполнения
  • Сохранить параметры нового события, чтобы их можно было достать через SN:X
  • Вызвать функцию вога: CallFunc с номером функции
  • Вызов приведёт к вызову функции ЕРМ и т.д.
  • Восстановить контекст исполнения (регистры, флаги, чаще всего только регистры через POPAD)
  • Выполнить код героев/вог, затёртый нашим перехватчиком
  • Совершить прыжок на продолжение кода


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
01.09.2010 15:04
Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1467
Post: #26

*Чувствует себя змеем-искусителем*

Вот длл с более подробным (откомментированным) исходником. Создаёт триггер на лечение Палаткой.
Константы взяты из исходников ЭРЫ, ибо так удобнее. Авторская процедура - HOOK_tent.
Как пользоваться триггером - написано здесь.


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
01.09.2010 15:15
Find all posts by this user Quote this message in a reply
GhostManSD Offline

Posts: 1054
Post: #27

Bers, огромное спасибо! А как это же через !!UN:C?


Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
01.09.2010 15:38
Visit this user's website Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1467
Post: #28

Научил плохому...
Через UN:C это фактически и не делается. Просто я для тех, у кого даже ЭРА не стоит, делаю новые события с помощью записи командой UN:C в неиспользуемые игрой участки памяти того же самого ассемблерного кода. Вот те два события (пост-HL и вход в экран города) я записал, кажется, в неиспользуемую после загрузки exe сод-таблицу Трансформатора Скелетов.
Ответ: учить асм, больше никак.


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
(This post was last modified: 01.09.2010 16:09 by MOP.)
01.09.2010 16:04
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16449
Post: #29

MOP, спасибо за пример. Довольно чётко. Разве что "PTR DS:" лишние...


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
01.09.2010 16:38
Find all posts by this user Quote this message in a reply
GhostManSD Offline

Posts: 1054
Post: #30

Через dll даже лучше. Но здесь нужны доп. программы. Я пытался скомпилировать исходник MOP'а, заменив номера функций, но мои Турбо и Визуал Паскали выдали ошибку: ТП - что пропущен бегин, ВП -что нет файла win.vpi (ошибка 15). Может, надо через что-то еще? Хотя для файла с расширением pas что еще может быть...


Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
01.09.2010 17:06
Visit this user's website Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group