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