  | 
	
		
	
	
		крах клиента(vs c++) - Общение разработчиков - Программирование для Perfect World, общение и обсуждене разработок | 
	 
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            09.05.2013, 10:35
            
            
         | 
        
             
            #16
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Разведчик  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 27.11.2012  
                
                
                
                 Сообщений: 0
                   
 Популярность: 10  
                  
	 Сказал(а) спасибо: 0  
	
		
			
				Поблагодарили 0 раз(а) в 0 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: крах клиента(vs c++)
             
             
            
        
        
        
            
               
    так кто-нибудь знает как решить мою проблему? 
Добавлено через 41 минуту
  
        
        
          
                
                
                  
                        
                          | 
                        
                        Цитата: | 
                        
                          | 
                   
                 
                 | 
                
                 | 
                
                
                
                 | 
                
                
                
                 | 
           
         
        
          
                | 
                 | 
                 | 
                
                 | 
           
          
                | 
                 | 
                
                так сам инжект - внедрение действия в игру где? 
вот предположим рабочий инжект, написан на delphi 
	Код: 
	 procedure WalkCall(aPParams:PParams);Stdcall;
var CallAddress1,CallAddress2,CallAddress3:Pointer;
    x,y,z:single;
    flying:DWORD;
begin
CallAddress1:=Pointer($00494620);
CallAddress2:=Pointer($00498290);
CallAddress3:=Pointer($00494EC0);
x:=aPParams^.x;
y:=aPParams^.y;
z:=aPParams^.z;
flying:=aPParams^.Param1;
 asm
  pushad
  mov eax, dword ptr [GA]
  mov esi, dword ptr [eax+$34]
  mov ecx, dword ptr [esi+$10BC]
  push 1
  call CallAddress1
  mov edi, eax
  lea eax, dword ptr [esp+$18]
  push eax
  push flying
  mov ecx, edi
  call CallAddress2
  mov ecx, dword ptr [esi+$10BC]
  push 0
  push 1
  push edi
  push 1
  call CallAddress3
  mov eax, dword ptr [GA]
  mov eax, dword ptr [eax+$34]
  mov eax, dword ptr [eax+$10BC]
  mov eax, dword ptr [eax+$30]
  mov ecx, dword ptr [eax+$4]
  mov eax, x
  mov dword ptr[ecx+$20], eax
  mov eax, z
  mov dword ptr[ecx+$24], eax
  mov eax, y
  mov dword ptr[ecx+$28], eax
  popad
 end;
end;
 
                 | 
                
                 | 
           
          
                
                  | 
                
                 | 
                
                  | 
           
         
         | 
   
 
	Код: 
	 
mov eax, dword ptr [GA]
  mov eax, dword ptr [eax+$34]
  mov eax, dword ptr [eax+$10BC]
  mov eax, dword ptr [eax+$30]
  mov ecx, dword ptr [eax+$4]
  mov eax, x
  mov dword ptr[ecx+$20], eax
  mov eax, z
  mov dword ptr[ecx+$24], eax
  mov eax, y
  mov dword ptr[ecx+$28], eax 
 Очень интересует, 
выделенная мною строка,мне очень интересно,а почему тут нету вызова никакой из функций ,а просто присваиваются значения ? 
     
         
        
        
        
        
        
        
        
        
            
                 
                
                    
                        Последний раз редактировалось aloned; 09.05.2013 в 11:17.
                    
                    
                        Причина: Добавлено сообщение
                    
                
             
        
        
      | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            13.05.2013, 13:45
            
            
         | 
        
             
            #17
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Разведчик  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 12.05.2013  
                
                
                
                 Сообщений: 3
                   
 Популярность: 10  
                  
	 Сказал(а) спасибо: 0  
	
		
			
				Поблагодарили 0 раз(а) в 0 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: крах клиента(vs c++)
             
             
            
        
        
        
            
               
    Ну и опять же... Что за переменная pid в функции BYTE SendPacket(PACKET* pack)? Логически понятно, что это pid процесса, но она нигде не объявлена. Ни глобально, ни внутри функции. Есть объявление переменной pid внутри структуры, но данная функция не принадлежит структуре. 
И переменные pParams, pFunc возникли из воздуха, ни объявления, ни определения, нихрена.... Вы опять же скинули не весь код... 
Вы хоть проверяйте код прежде чем его скидывать. 
 
Все эти параметры можно получить выделив память в клиенте игры при инициализации бота. 
BOOL CNewBotDlg::OnInitDialog() 
{ 
	CDialog::OnInitDialog(); 
	pid = PidbyName("elementclient.exe"); 
	INJECTOR inject; 
	inject.pid = pid; 
	 
	HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid); 
	DWORD* pfunc = (DWORD*) VirtualAllocEx(hProcess,NULL,511, MEM_COMMIT, PAGE_READWRITE); 
	inject.pFunction = pfunc; 
	inject.pParams = pfunc + 64; 
	CloseHandle(hProcess);	 
	return TRUE;   
} 
 
Я не понимаю, вы скидываете код, а он у вас разный. В первом случае функция BYTE INJECTOR::SendPacket(PACKET* pack) приадлежит структуре INJECTOR, далее вы линкуете тот же код, но функция уже не принадлежит структуре INJECTOR. 
 
Переписал программу в соответсвии с вашим кодом, вызываю функцию TargetOff(), в клиенте игры - нулевая реакция... 
 
 
Так, я тут кое-что подправил и вроде бы получилось... 
Проект OffTargetMob.rar убирает моба из таргета внизу прикреплен к сообщению...
     
         
        
        
        
            
        
        
        
        
        
        
        
        
            
                 
                
                    
                        Последний раз редактировалось Xantrax2150198; 13.05.2013 в 16:29.
                    
                    
                
             
        
        
      | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            21.05.2013, 09:46
            
            
         | 
        
             
            #18
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Разведчик  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 27.11.2012  
                
                
                
                 Сообщений: 0
                   
 Популярность: 10  
                  
	 Сказал(а) спасибо: 0  
	
		
			
				Поблагодарили 0 раз(а) в 0 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: крах клиента(vs c++)
             
             
            
        
        
        
            
               
    
  
        
        
          
                
                
                  
                        
                          | 
                        
                        Цитата: | 
                        
                          | 
                   
                 
                 | 
                
                 | 
                
                
                
                  
                        
                          | 
                        
                        
                        Сообщение от Xantrax2150198  | 
                        
                          | 
                   
                 
                 | 
                
                
                
                 | 
           
         
        
          
                | 
                 | 
                 | 
                
                 | 
           
          
                | 
                 | 
                
                Ну и опять же... Что за переменная pid в функции BYTE SendPacket(PACKET* pack)? Логически понятно, что это pid процесса, но она нигде не объявлена. Ни глобально, ни внутри функции. Есть объявление переменной pid внутри структуры, но данная функция не принадлежит структуре. 
И переменные pParams, pFunc возникли из воздуха, ни объявления, ни определения, нихрена.... Вы опять же скинули не весь код... 
Вы хоть проверяйте код прежде чем его скидывать. 
 
Все эти параметры можно получить выделив память в клиенте игры при инициализации бота. 
BOOL CNewBotDlg::OnInitDialog() 
{ 
	CDialog::OnInitDialog(); 
	pid = PidbyName("elementclient.exe"); 
	INJECTOR inject; 
	inject.pid = pid; 
	 
	HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid); 
	DWORD* pfunc = (DWORD*) VirtualAllocEx(hProcess,NULL,511, MEM_COMMIT, PAGE_READWRITE); 
	inject.pFunction = pfunc; 
	inject.pParams = pfunc + 64; 
	CloseHandle(hProcess);	 
	return TRUE;   
} 
 
Я не понимаю, вы скидываете код, а он у вас разный. В первом случае функция BYTE INJECTOR::SendPacket(PACKET* pack) приадлежит структуре INJECTOR, далее вы линкуете тот же код, но функция уже не принадлежит структуре INJECTOR. 
 
Переписал программу в соответсвии с вашим кодом, вызываю функцию TargetOff(), в клиенте игры - нулевая реакция... 
 
 
Так, я тут кое-что подправил и вроде бы получилось... 
Проект OffTargetMob.rar убирает моба из таргета внизу прикреплен к сообщению...
                 | 
                
                 | 
           
          
                
                  | 
                
                 | 
                
                  | 
           
         
         | 
   
 
Я скидывал только данные в которых могла быть ошибка,с PID все нормально,ошибка таится где-то в asm вставке
     
          
        
        
        
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            09.06.2013, 20:19
            
            
         | 
        
             
            #19
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Пехотинец  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 21.03.2012  
                
                
                
                 Сообщений: 83
                   
 Популярность: 1178  
                  
	 Сказал(а) спасибо: 18  
	
		
			
				Поблагодарили 101 раз(а) в 53 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: крах клиента(vs c++)
             
             
            
        
        
        
            
               
    
  
        
        
          
                
                
                  
                        
                          | 
                        
                        Цитата: | 
                        
                          | 
                   
                 
                 | 
                
                 | 
                
                
                
                 | 
                
                
                
                 | 
           
         
        
          
                | 
                 | 
                 | 
                
                 | 
           
          
                | 
                 | 
                
                у автора небольшой косяк с размерами массивов char там по всюду надо прибавить 1
                 | 
                
                 | 
           
          
                
                  | 
                
                 | 
                
                  | 
           
         
         | 
   
 
Зачем это? В байт-коде столько же байт сколько размерности в массиве? да. Зачем 1 лишний байт?
 
  
        
        
          
                
                
                  
                        
                          | 
                        
                        Цитата: | 
                        
                          | 
                   
                 
                 | 
                
                 | 
                
                
                
                 | 
                
                
                
                 | 
           
         
        
          
                | 
                 | 
                 | 
                
                 | 
           
          
                | 
                 | 
                
                Что у вас за версия компилятора, которая воспринимает такую строку: 
char fdata[29]="\x60...
                 | 
                
                 | 
           
          
                
                  | 
                
                 | 
                
                  | 
           
         
         | 
   
 
\x60 - это символ, не число а именно символ, эта запись значит, что здесь представлен символ (\) шестнадцатиричный код которого (х) равен 60 
 тут массив при обьявлении заполняется СТРОКОЙ из СИМВОЛОВ с нужными нам кодами, аналогично можно написать и обычную строку char fdata[29] = "ghvnklljfygd"; 
как уже правильно сказали, здесь готовый байткод с уже прописанными в него параметрами представлен в символьном представлении, по сути просто символьной строкой. Это сделанно для того, чтоб инжектился обычный массив чисел(символов), которые фактически представляют рабочий байткод функции, без передачи параметров и т.д. 
Кстати, если тут используется байт-код из темы написания бота, то скорее всего он устарел, уже столько обнов было(в том числе глобальное обновление), поэтому нужно составить его заново из рабочей функции, либо использовать инжект функции с рабочей на данный момент асм-вставкой, с передачей в поток параметров. А инжект готового байткода - это на любителя.
     
          
        
        
        
        
        
        
            
             ________________  
                ╔═╗  
║  ˑ ˑ ╬ ╬  
╚═╝
             
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
 
	
		
	
	
	
	
	
		
	
		 
		Ваши права в разделе
	 | 
 
	
		
		Вы не можете создавать новые темы 
		Вы не можете отвечать в темах 
		Вы не можете прикреплять вложения 
		Вы не можете редактировать свои сообщения 
		 
		
		
		
		
		HTML код Выкл. 
		 
		
	  | 
 
 
	 | 
	
		
	 | 
 
 
	
		
			 
			Похожие темы
		 | 
	 
	| Тема | 
	Автор | 
	Раздел | 
	Ответов | 
	Последнее сообщение | 
 
	| 
		
		[Подсказка] крах поагина
	 | 
	dsquared4 | 
	Общение и обсуждение | 
	0 | 
	23.06.2012 19:24 | 
 
	| 
		
		 Краф ремесел
	 | 
	rjhbyafh | 
	Общение и обсуждение Perfect World | 
	6 | 
	28.12.2011 13:18 | 
 
	| 
		
		 Крах плагина
	 | 
	Slavyan567890 | 
	Общение и обсуждение | 
	2 | 
	15.04.2011 14:49 | 
 
 
 
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 10:10. 
		 
	 
 
 | 
  |