| 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: 16786
 
 |  | 
	| 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: 16786
 
 | 
			| 
 
				Так и есть. Достаточно выучить азы ассемблера. Руководства можно найти на 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: 16786
 
 |  | 
	| 01.09.2010 16:38 |  | 
	
		| GhostManSD   
   Posts: 1054
 
 | 
			| 
 
				Через dll даже лучше. Но здесь нужны доп. программы. Я пытался скомпилировать исходник MOP'а, заменив номера функций, но мои Турбо и Визуал Паскали выдали ошибку: ТП - что пропущен бегин, ВП -что нет файла win.vpi (ошибка 15). Может, надо через что-то еще? Хотя для файла с расширением pas что еще может быть...
			 
 Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
 |  | 
	| 01.09.2010 17:06 |  |