feanor
Posts: 624
|
PE-шники открывает и дизасм вроде показывает. Хотя да, я её в основном для ARM юзал.
|
|
08.02.2010 01:47 |
|
SAG
Posts: 173
|
создал dll позволяющую расширить список стартовых героев за счет добавления героев из кампаний. Пока добавляются Мюллих и Катерина и банятся Сильвия и Саня. Потом доделаю, чтобы список динамически расширялся.
Большое спасибо Сергею Роженко, ASM, Дьякон, Берсеркер за большую помощь в создании этой dll.
Скачать можно здесь: http://www.heroes-iii.com/files/sag_dll_v1.zip
|
|
20.02.2010 23:48 |
|
Berserker
Posts: 16657
|
|
21.02.2010 00:33 |
|
SAG
Posts: 173
|
|
23.02.2010 17:05 |
|
GhostManSD
Posts: 1054
|
После того, как увидел то, что можно творить через !!UN:C, очень хочется научиться творить такое самому. В наличии имеются Ida Pro, MASM, Asm_Ed, CodeView, Hiew, OllyDbg, Peid, QuickUnpack. Есть, как видите, многое, но навыка - ноль. Подскажите, пожалуйста, полезную литературу по данному вопросу, поскольку здесь я - даже больший нуб, чем в ERM.
Через АртМани, а потом !!UN:C уже умею менять кое-какие тексты и данные (спасибо огромное MOP'у и gamecreator'у за ценные советы). Однако этого явно недостаточно. Хочется иметь куда большие возможности. В частности, интересует методика создания новых триггеров.
Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
|
|
01.09.2010 11:57 |
|
Sav
Posts: 2180
|
Quote:В частности, интересует методика создания новых
триггеров.
Мне тоже это очень хотелось бы знать. Там вроде надо что-то менять в коде, но как найти, где и понять на что?
|
|
01.09.2010 12:45 |
|
GhostManSD
Posts: 1054
|
Насколько я понял из исходника dll для Эры, который мне предоставил MOP, отлавливается адрес и при обращении к этому адресу выполняются нужные действия.
Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
|
|
01.09.2010 12:53 |
|
Berserker
Posts: 16657
|
Так и есть. Достаточно выучить азы ассемблера. Руководства можно найти на wasm.ru, как и весь нужный интрументарий.
Суть создания "нового триггера" в Эре - это в нужном месте кода героев/вога:
- Прописать прыжок на свою функцию
- Сохранить контекст исполнения
- Сохранить параметры нового события, чтобы их можно было достать через SN:X
- Вызвать функцию вога: CallFunc с номером функции
- Вызов приведёт к вызову функции ЕРМ и т.д.
- Восстановить контекст исполнения (регистры, флаги, чаще всего только регистры через POPAD)
- Выполнить код героев/вог, затёртый нашим перехватчиком
- Совершить прыжок на продолжение кода
Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
|
|
01.09.2010 15:04 |
|
MOP
Posts: 1468
|
*Чувствует себя змеем-искусителем*
Вот длл с более подробным (откомментированным) исходником. Создаёт триггер на лечение Палаткой.
Константы взяты из исходников ЭРЫ, ибо так удобнее. Авторская процедура - 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 |
|
GhostManSD
Posts: 1054
|
Bers, огромное спасибо! А как это же через !!UN:C?
Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
|
|
01.09.2010 15:38 |
|
Berserker
Posts: 16657
|
|
01.09.2010 16:38 |
|
GhostManSD
Posts: 1054
|
Через dll даже лучше. Но здесь нужны доп. программы. Я пытался скомпилировать исходник MOP'а, заменив номера функций, но мои Турбо и Визуал Паскали выдали ошибку: ТП - что пропущен бегин, ВП -что нет файла win.vpi (ошибка 15). Может, надо через что-то еще? Хотя для файла с расширением pas что еще может быть...
Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
|
|
01.09.2010 17:06 |
|