| 
		
	
		 | 
		   | 
	 
 
	
	
	
	
	   Чтение из памяти | 
	 
	    
	  | 
	           | 
	 
   
	 
  
 
	
		| ivanTu | 
		
			
			
				   27.2.2015, 8:40
			 
			
			
		 | 
	 
	
		
        	 
  
        		    
  
        		Apprentice 
        		Сообщений: 128 
        		Регистрация: 2.2.2015         		Группа: Пользователи Наличность: 0         		
        		Пользователь №: 17.276 
Возраст: 27
  
        		 
        	 
        	   
        | 
       
			
			Цитата(DarkMaster @ 26.2.2015, 20:16)    У вас скорее всего есть цепочка указателей и офсеты от каждого указателя указаны. Т.е. берете адрес + офсет1, считываете значение. В значении у вас будет указатель со следующим адресом, прибавляете к нему второй офсет и т.д.
 
 Что то я никак не разберусь в последовательности действий, Уважаемый дарк покажи на пальцах, куда что и с чем, вот что есть. и кстате, тот адрес что выделен (базовый) я его вытащил из .Dll - ки процесса, и через PE tools взял его адрес, я про то что UoPilot читает адреса из dll процесса?  
			
			
					
		 | 
	 
	
		| 
			
		 | 
		
			
			
			
         	
          | 
	 
	| 
	
	 | 
 
 
	
		| DarkMaster | 
		
			
			
				   27.2.2015, 9:07
			 
			
			
		 | 
	 
	
		
        	
  
        		           
  
        		Модератор UOPilot 
        		Сообщений: 9.766 
        		Регистрация: 2.12.2008         		Группа: Супермодераторы Наличность: 30011         		
        		Пользователь №: 11.279
  
        		 
        	 
        	   
        | 
       
			
			это печальная история... Мог, но релиз не состоялся т.к. исходники были утеряны... На данный момент пилот не может запросить начальный адрес блока дллки. Вся адресация у него только общая на процесс. С PE tools дело не имел, только с артмани. Надеюсь правильно вас понял, что адресация идет от начала дллки, но что-то больно цифры тогда большие. Если адресация все-таки общая на процесс, а судя по адресам это так, то схему я уже выше описывал. В данном случае это будет выглядеть примерно так: Код set #a 0x2B7BAF00 + 0x204 readmem #b #a D // В #b должен в данном случае упасть адрес 2BF033F70 // от вернувшегося адреса необходимо расчитать смещение set #b #b + 0x3A4 readmem #c #b D set #c #c +0x418 readmem #d #c D и т.д. Учтите, что значения при выводе в лог для отладки будут десятичными а не хексом. Для удобства можно использовать: Код // Вообще очень странная лапша из адресов. Обычно вперед-назад указатели не прыгают, а идут только вперед. Сообщение отредактировал DarkMaster - 27.2.2015, 9:07 
			
			
  -------------------- 
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____ Контакт актуален, подпись актуальна. 
					
		 | 
	 
	
		| 
			
		 | 
		
			
			
			
         	
          | 
	 
	| 
	
	 | 
 
 
	
		| DarkMaster | 
		
			
			
				   27.2.2015, 23:25
			 
			
			
		 | 
	 
	
		
        	
  
        		           
  
        		Модератор UOPilot 
        		Сообщений: 9.766 
        		Регистрация: 2.12.2008         		Группа: Супермодераторы Наличность: 30011         		
        		Пользователь №: 11.279
  
        		 
        	 
        	   
        | 
       
			
			Цитата Можете подсказать как оптимизировать можно, если это возможно?
  По сути никак. Можно создать массив с офсетами, потом засунуть все это в цикл for, но меньше оно вряд ли станет, только при этом еще и станет черт ногу сломит. Было бы оно длинее раза в 2, то был бы смысл хоть какой-то. Можно вынести в подпрограмму и загнать в хвост, чтобы глаза не мозолило. Посмотрите gosub.  
			
			
  -------------------- 
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____ Контакт актуален, подпись актуальна. 
					
		 | 
	 
	
		| 
			
		 | 
		
			
			
			
         	
          | 
	 
	| 
	
	 | 
 
 
	
		| DarkMaster | 
		
			
			
				   5.3.2015, 11:27
			 
			
			
		 | 
	 
	
		
        	
  
        		           
  
        		Модератор UOPilot 
        		Сообщений: 9.766 
        		Регистрация: 2.12.2008         		Группа: Супермодераторы Наличность: 30011         		
        		Пользователь №: 11.279
  
        		 
        	 
        	   
        | 
       
			
			Цитата Если ставлю строку "S" то выдает так же 0 не понимаю в чем дело
  Ну причем тут S? Откуда она вообще взялась? Цитата используйте строковую переменную, а не числовую. Цитата добавил в команды 'readmem' и 'writemem' операции с числами с плавающей запятой Цитата F:float = 4b  
			
			
  -------------------- 
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____ Контакт актуален, подпись актуальна. 
					
		 | 
	 
	
		| 
			
		 | 
		
			
			
			
         	
          | 
	 
	| 
	
	 | 
 
 
	
		| DarkMaster | 
		
			
			
				   5.3.2015, 13:03
			 
			
			
		 | 
	 
	
		
        	
  
        		           
  
        		Модератор UOPilot 
        		Сообщений: 9.766 
        		Регистрация: 2.12.2008         		Группа: Супермодераторы Наличность: 30011         		
        		Пользователь №: 11.279
  
        		 
        	 
        	   
        | 
       
			
			Не совсем так. Если я правильно понимаю логику пилота, а здесь она не совсем адекватная, то все сравнение идет посимвольно кодами символов. Т.е. берем строку, лезем в ascii таблицу, переводим все символы в коды.  http://www.cdrummond.qc.ca/cegep/informat/...ages/ASCII1.GIFТ.е. у нас получится вместо: 8.98880291 56 46 56 56 56 48 50 57 49 Далее из этого числа по одной цифре идет сравнение. Символ точки меньше значения цифры и это видимо как-то обрабатывается. Вообще трогать страшно. В общем и целом делать так крайне не рекомендую, это ну уж очень не корректно. Используйте trunc или round для приведения к целочисленному типу. Код if 9.0 > 9     log + else     log - end_if Уже косяк. Сообщение отредактировал DarkMaster - 5.3.2015, 13:01 
			
			
  -------------------- 
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____ Контакт актуален, подпись актуальна. 
					
		 | 
	 
	
		| 
			
		 | 
		
			
			
			
         	
          | 
	 
	| 
	
	 | 
 
 
 
	
		 | 
		   | 
	 
 
	1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0) 
	Пользователей: 0  
 
        				  
  | 
 |