  | 
	
		
	
	
		ReadProcessMemory и Visual Basic - Общение разработчиков - Программирование для Perfect World, общение и обсуждене разработок | 
	 
	 
	
	
	
	
	
	
	
	
	
	
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            16.06.2014, 23:46
            
            
         | 
        
             
            #1
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Пехотинец  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 03.02.2013  
                
                
                
                 Сообщений: 60
                   
 Популярность: 10  
                  
	 Сказал(а) спасибо: 12  
	
		
			
				Поблагодарили 26 раз(а) в 12 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                ReadProcessMemory и Visual Basic
             
             
            
        
        
        
            
               
    Доброго времени суток! 
Решил я вспомнить ВБ, и понял, что на делфи мне уже легче) 
Пытался написать элементарную программку, которая бы считывала какое-либо значение по заданному адресу.
 
Прокопался несколько часов, так и ничего не добился, выдает все время ноль((
 
  
        
        
          
                
                
                  
                        
                          | 
                        
                        Цитата: | 
                        
                          | 
                   
                 
                 | 
                
                 | 
                
                
                
                 | 
           
         
        
          
                | 
                 | 
                 | 
                
                 | 
           
          
                | 
                 | 
                
                Option Explicit 
  
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long 
Private Declare Function OpenProcess Lib "Kernel32.dll" (ByVal dwDesiredAccessas As Long, ByVal bInheritHandle As Long, ByVal dwProcId As Long) As Long 
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long 
Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, _ 
    lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long 
Private Const PROCESS_ALL_ACCESS = 2035711 
__________________________________________________  _________  
Private Sub Command1_Click() 
    Dim hwnd, NoB As Long 
    Dim out As Long 
    Dim procId As Long 
    Dim procHandle As Long 
     
    hwnd = FindWindow(vbNullString, "Perfect World") 
    GetWindowThreadProcessId hwnd, procId 
    procHandle = OpenProcess(PROCESS_ALL_ACCESS, False, procId) 
    Call ReadProcessMemory(procHandle, &HC38B6C, ByVal VarPtr(out), 4, NoB) 
    Print out 
    CloseHandle procHandle 
End Sub  | 
                
                 | 
           
          
                
                  | 
                
                 | 
                
                  | 
           
         
         | 
   
 
     
         
        
        
        
        
        
        
            
             ________________  
                 Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).  |  Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). 
             
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            16.06.2014, 23:55
            
            
         | 
        
             
            #2
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Пехотинец  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 02.08.2009  
                
                
                
                 Сообщений: 57
                   
 Популярность: 417  
                  
	 Сказал(а) спасибо: 12  
	
		
			Поблагодарили 1 раз в 1 сообщении
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: ReadProcessMemory и Visual Basic
             
             
            
        
        
        
            
               
    Эмм, а чем делфи не устроил?)
     
         
        
        
        
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            17.06.2014, 01:59
            
            
         | 
        
             
            #3
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Пехотинец  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 03.02.2013  
                
                
                
                 Сообщений: 60
                   
 Популярность: 10  
                  
	 Сказал(а) спасибо: 12  
	
		
			
				Поблагодарили 26 раз(а) в 12 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: ReadProcessMemory и Visual Basic
             
             
            
        
        
        
            
               
    Да делфи устроил, бота уже доделываю, а вот стало интересно на счет бэйсика и тут такое)) 
не читает значение и всё...
     
         
        
        
        
        
        
        
            
             ________________  
                 Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).  |  Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). 
             
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            17.06.2014, 02:11
            
            
         | 
        
             
            #4
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Разведчик  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 06.10.2013  
                
                
                
                 Сообщений: 27
                   
 Популярность: 10  
                  
	 Сказал(а) спасибо: 24  
	
		
			
				Поблагодарили 12 раз(а) в 8 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: ReadProcessMemory и Visual Basic
             
             
            
        
        
        
        
        
        
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            18.06.2014, 11:02
            
            
         | 
        
             
            #5
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Пехотинец  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 03.02.2013  
                
                
                
                 Сообщений: 60
                   
 Популярность: 10  
                  
	 Сказал(а) спасибо: 12  
	
		
			
				Поблагодарили 26 раз(а) в 12 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: ReadProcessMemory и Visual Basic
             
             
            
        
        
        
            
               
    Свершилось! ) Всё-таки смог прочитать текущее значение здоровья: 
  
        
        
          
                
                
                  
                        
                          | 
                        
                        Цитата: | 
                        
                          | 
                   
                 
                 | 
                
                 | 
                
                
                
                 | 
           
         
        
          
                | 
                 | 
                 | 
                
                 | 
           
          
                | 
                 | 
                
                Private Const PROCESS_VM_READ = &H10 
Private Const PROCESS_VM_WRITE = &H20 
Private Const PROCESS_VM_OPERATION = &H8 
Private Const PROCESS_VM = PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE 
  
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Long, lpdwProcessId As Long) As Long 
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long 
Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Long, ByVal lpBuffer As Long, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long 
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long 
  
__________________________________________________  _______ 
Private Sub command1_Click() 
  Dim hWnd As Long, PId As Long, hProcess As Long, buf As Long 
 
  hWnd = FindWindow(vbNullString, "Perfect World") 
  Call GetWindowThreadProcessId(hWnd, PId) 
  
  hProcess = OpenProcess(PROCESS_VM, 0&, PId) 
   
  Call ReadProcessMemory(hProcess, &HC38B6C, VarPtr(buf), 4, 0&) 
  buf = buf + &H1C 
  Call ReadProcessMemory(hProcess, buf, VarPtr(buf), 4, 0&) 
  buf = buf + &H34 
  Call ReadProcessMemory(hProcess, buf, VarPtr(buf), 4, 0&) 
  buf = buf + &H4A8 
  Call ReadProcessMemory(hProcess, buf, VarPtr(buf), 4, 0&) 
   
  MsgBox buf 
  Call CloseHandle(hProcess) 
 
End Sub  | 
                
                 | 
           
          
                
                  | 
                
                 | 
                
                  | 
           
         
         | 
   
 
Давняя идея просто была, поиздеваться над другом и показать ему "Бота в Excell", написанного на VBA. 
перевести код бота просто, единственная заморочка была с чтением из памяти.
     
          
        
        
        
        
        
        
            
             ________________  
                 Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).  |  Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). 
             
        
        
        
        
        
            
                 
                
                    
                        Последний раз редактировалось sedrik1992; 18.06.2014 в 11:10.
                    
                    
                
             
        
        
      | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            18.06.2014, 19:33
            
            
         | 
        
             
            #6
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Пехотинец  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 02.08.2009  
                
                
                
                 Сообщений: 57
                   
 Популярность: 417  
                  
	 Сказал(а) спасибо: 12  
	
		
			Поблагодарили 1 раз в 1 сообщении
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: ReadProcessMemory и Visual Basic
             
             
            
        
        
        
            
               
    //Офтоп) Чу мелочится? напишите бота на JS и запускайте в браузере
     
         
        
        
        
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            26.07.2014, 18:02
            
            
         | 
        
             
            #7
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Разведчик  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 11.07.2014  
                
                
                
                 Сообщений: 0
                   
 Популярность: 10  
                  
	 Сказал(а) спасибо: 0  
	
		
			
				Поблагодарили 0 раз(а) в 0 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: ReadProcessMemory и Visual Basic
             
             
            
        
        
        
            
               
    Доброго времени суток! Именно с этого поста начал экспериментировать с разработкой ПО для ПВ. До этого API-функциями не пользовался. В обще данная прога что будучи сделана в Экселе, что в Визуал Студио 2008 в "Семёрке" не желает работать. Функция OpenProcess выдаёт 5 - ACCESS DENIED. Пробовал отключать UAC - функция ReadProcessMemory выдаёт ошибки, то 5 (доступ запрещён), то 6 (попытка чтения-записи в защищённую область). Пробовал запускать в ХР - всё прекрасно работает, правда комп с ХР тормозной очень. Как заставить работать прогу на "Семёрке"?
     
         
        
        
        
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            26.07.2014, 18:32
            
            
         | 
        
             
            #8
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Рыцарь-капитан  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 14.06.2012  
                
                
                
                 Сообщений: 511
                   
 Популярность: 7566  
                  
	 Сказал(а) спасибо: 4  
	
		
			
				Поблагодарили 181 раз(а) в 88 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: ReadProcessMemory и Visual Basic
             
             
            
        
        
        
            
               
    Panki-online о великий запуск от имени администратора, попробуйте использовать его ))
     
         
        
        
        
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            26.07.2014, 18:50
            
            
         | 
        
             
            #9
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Разведчик  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 11.07.2014  
                
                
                
                 Сообщений: 0
                   
 Популярность: 10  
                  
	 Сказал(а) спасибо: 0  
	
		
			
				Поблагодарили 0 раз(а) в 0 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: ReadProcessMemory и Visual Basic
             
             
            
        
        
        
            
               
    от ошибки чтения-записи в защищённую область меня это не спасает   
     
         
        
        
        
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            27.07.2014, 09:14
            
            
         | 
        
             
            #10
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Разведчик  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 06.10.2013  
                
                
                
                 Сообщений: 27
                   
 Популярность: 10  
                  
	 Сказал(а) спасибо: 24  
	
		
			
				Поблагодарили 12 раз(а) в 8 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: ReadProcessMemory и Visual Basic
             
             
            
        
        
        
            
               
    У меня не было проблем с чтением/записью памяти в VS 2013 Express . В компиляторе попробуй поставить AnyCPU и галочку "предпочтительно для 32-разрядн" , если такого нету - нужно качать новую студию.
     
         
        
        
        
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            27.07.2014, 20:19
            
            
         | 
        
             
            #11
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Рыцарь-капитан  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 14.06.2012  
                
                
                
                 Сообщений: 511
                   
 Популярность: 7566  
                  
	 Сказал(а) спасибо: 4  
	
		
			
				Поблагодарили 181 раз(а) в 88 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: ReadProcessMemory и Visual Basic
             
             
            
        
        
        
        
        
        
        
        
        
            
             ________________  
                Хотите как то отблагодарить за помощь? 
Не стесняйтесь нажимайте "Спасибо" Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  
Делаю программы на заказ, по всем вопросам в скайп: Ginrey2
             
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            02.08.2014, 22:07
            
            
         | 
        
             
            #12
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Разведчик  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 11.07.2014  
                
                
                
                 Сообщений: 0
                   
 Популярность: 10  
                  
	 Сказал(а) спасибо: 0  
	
		
			
				Поблагодарили 0 раз(а) в 0 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: ReadProcessMemory и Visual Basic
             
             
            
        
        
        
            
               
    А что, функции типа OpenProcessToken и прочую лабуду с правами доступа никто не использовал, и у всех всё получилось? Чёрт побери, Холмс, но как? Ещё неделя пролетела безрезультатно. Сейчас вот пробую получить привилегию SE_DEBUG_NAME, но функция OpenProcessToken, даже будучи применена к собственному процессу программы возвращает 0 в качестве результата и 0 же в качестве токена. И опять непонятно почему это. GetLastError заявляет об ошибке 998 (Invalid access to memory location.). Может кто знает, в чём дело?
     
         
        
        
        
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            03.08.2014, 03:51
            
            
         | 
        
             
            #13
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Разведчик  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 06.10.2013  
                
                
                
                 Сообщений: 27
                   
 Популярность: 10  
                  
	 Сказал(а) спасибо: 24  
	
		
			
				Поблагодарили 12 раз(а) в 8 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: ReadProcessMemory и Visual Basic
             
             
            
        
        
        
        
        
        
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            03.08.2014, 07:36
            
            
         | 
        
             
            #14
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Разведчик  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 11.07.2014  
                
                
                
                 Сообщений: 0
                   
 Популярность: 10  
                  
	 Сказал(а) спасибо: 0  
	
		
			
				Поблагодарили 0 раз(а) в 0 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: ReadProcessMemory и Visual Basic
             
             
            
        
        
        
            
               
    Если есть у кого Студия 13, проверьте пожалуйста этот код на нёй: 
  
        
        
          
                
                
                  
                        
                          | 
                        
                        Цитата: | 
                        
                          | 
                   
                 
                 | 
                
                 | 
                
                
                
                 | 
           
         
        
          
                | 
                 | 
                 | 
                
                 | 
           
          
                | 
                 | 
                
                Public Class Form1 
    Dim hWnd As Integer ' параметры Perfect World 
    Dim idProc As Integer 
    Dim hProc As Integer 
 
    Dim MyhWnd As Integer ' параметры текущей проги 
    Dim MyidProc As Integer 
    Dim MyhProc As Integer 
 
    Const PROCESS_ALL_ACCESS = &H1F0FFF '2035711 
    Private Const PROCESS_VM_READ = &H10 
    Private Const PROCESS_VM_WRITE = &H20 
    Private Const PROCESS_VM_OPERATION = &H8 
    Private Const PROCESS_VM = &H1F0FFF 'PROCESS_VM_OPERATION or PROCESS_VM_READ Or PROCESS_VM_WRITE 
 
    Private Sub cmdStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart.Click 
        Dim hToken As Integer             ' Handle to your process token. 
        Dim lPrivilege As Integer         ' Privilege to enable/disable 
        Dim iPrivilegeflag As Boolean  ' Flag whether to enable/disable 
        ' the privilege of concern. 
        Dim lResult As Integer            ' Result call of various APIs. 
        Dim hProcess As Integer 
 
        'MyhWnd = FindWindow(vbNullString, "Form1") 
        'GetWindowThreadProcessId(MyhWnd, MyidProc) 
        'MyhProc = OpenProcess(PROCESS_ALL_ACCESS, False, MyidProc) 
        'hProcess = MyhProc 'GetCurrentProcess 
        hProcess = GetCurrentProcess 
 
        hWnd = FindWindow(vbNullString, "Perfect World") 
        txtHandle.Text = hWnd.ToString 
        GetWindowThreadProcessId(hWnd, idProc) 
        txtIdProc.Text = idProc.ToString 
 
        lResult = OpenProcessToken(hProcess, TOKEN_ADJUST_PRIVILEGES Or _ 
                                   TOKEN_QUERY, hToken) 
        If (lResult = 0) Then 
            MsgBox("Не могу получить токен процесса. Ошибка №" & _ 
                                 GetLastError) '& Err.LastDllError) 
            'CloseHandle(hToken) 
            Exit Sub 
        End If 
 
        lResult = SetPrivilege(hToken, SE_DEBUG_NAME, True) 
        If (lResult = False) Then 
            MsgBox("Ошибка: не могу получить привилегию SE_DEBUG_NAME") 
            CloseHandle(hToken) 
            Exit Sub 
        End If 
 
        hProc = OpenProcess(PROCESS_ALL_ACCESS, False, idProc) 
        If hProc = 0 Then 
            MsgBox(GetLastError()) 
            CloseHandle(hToken) 
            Exit Sub 
        End If 
        MsgBox("hProc=" & hProc) 
        CloseHandle(hToken) 
        CloseHandle(hProcess) 
        'MsgBox(hProc) 
        'CloseHandle(hProc) 
        'Timer1.Enabled = True 
    End Sub 
 
 Private Function SetPrivilege(ByVal hToken As Integer, ByVal Privilege As String, _ 
                                    ByVal bSetFlag As Boolean) As Boolean 
 
        Dim TP As TOKEN_PRIVILEGES          ' Used in getting the current 
        ' token privileges 
        Dim TPPrevious As TOKEN_PRIVILEGES  ' Used in setting the new 
        ' token privileges 
        Dim Luid As Luid                    ' Stores the Local Unique 
        ' Identifier - refer to MSDN 
        Dim cbPrevious As Integer              ' Previous size of the 
        ' TOKEN_PRIVILEGES structure 
        Dim lResult As Integer                 ' Result of various API calls 
 
        ' Grab the size of the TOKEN_PRIVILEGES structure, 
        ' used in making the API calls. 
        cbPrevious = Len(TP) 
 
        ' Grab the LUID for the request privilege. 
        lResult = LookupPrivilegeValue("", Privilege, Luid) 
 
        ' If LoopupPrivilegeValue fails, the return result will be zero. 
        ' Test to make sure that the call succeeded. 
        If (lResult = 0) Then 
            SetPrivilege = False 
        End If 
 
        ' Set up basic information for a call. 
        ' You want to retrieve the current privileges 
        ' of the token under concern before you can modify them. 
        TP.PrivilegeCount = 1 
        TP.Privileges(0).pLuid = Luid 
        TP.Privileges(0).Attributes = 0 
        SetPrivilege = lResult 
 
        ' You need to acquire the current privileges first 
        lResult = AdjustTokenPrivileges(hToken, -1, TP, Len(TP), _ 
                                       TPPrevious, cbPrevious) 
 
        ' If AdjustTokenPrivileges fails, the return result is zero, 
        ' test for success. 
        If (lResult = 0) Then 
            SetPrivilege = False 
        End If 
 
        ' Now you can set the token privilege information 
        ' to what the user is requesting. 
        TPPrevious.PrivilegeCount = 1 
        TPPrevious.Privileges(0).pLuid = Luid 
 
        ' either enable or disable the privilege, 
        ' depending on what the user wants. 
        Select Case bSetFlag 
            Case True : TPPrevious.Privileges(0).Attributes = _ 
                       TPPrevious.Privileges(0).Attributes Or _ 
                       (SE_PRIVILEGE_ENABLED) 
            Case False : TPPrevious.Privileges(0).Attributes = _ 
                        TPPrevious.Privileges(0).Attributes Xor _ 
                        (SE_PRIVILEGE_ENABLED And _ 
                        TPPrevious.Privileges(0).Attributes) 
        End Select 
 
        ' Call adjust the token privilege information. 
        lResult = AdjustTokenPrivileges(hToken, -1, TPPrevious, _ 
                                       cbPrevious, TP, cbPrevious) 
 
        ' Determine your final result of this function. 
        If (lResult = 0) Then 
            ' You were not able to set the privilege on this token. 
            SetPrivilege = False 
        Else 
            ' You managed to modify the token privilege 
            SetPrivilege = True 
        End If 
 
    End Function 
 
End Class  | 
                
                 | 
           
          
                
                  | 
                
                 | 
                
                  | 
           
         
         | 
   
 
Содержание модуля:
 
  
        
        
          
                
                
                  
                        
                          | 
                        
                        Цитата: | 
                        
                          | 
                   
                 
                 | 
                
                 | 
                
                
                
                 | 
           
         
        
          
                | 
                 | 
                 | 
                
                 | 
           
          
                | 
                 | 
                
                 Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer 
 
    Public Declare Function CloseWindow Lib "user32" (ByVal hwnd As Integer) As Integer 
    Public Declare Function OpenIcon Lib "user32" (ByVal hwnd As Integer) As Integer 
 
    Public Declare Auto Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As IntPtr, ByRef lpdwProcessId As IntPtr) As Integer 'IntPtr 
    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd, ByVal Msg, ByVal wParam, ByVal lParam) 
 
    Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Boolean, ByVal dwProcessId As Integer) As Integer 
    Public Declare Function CloseHandle Lib "kernel32" (ByVal Hproc As Integer) 
    Public Declare Sub ReadProcessMemory Lib "kernel32" (ByVal THandle As Integer, ByVal lpBaseAddress As Integer, ByVal lpBuffer As Integer, ByVal nSize As Integer, ByVal lpNumberOfBytesReadas As Integer) 
    Public Declare Function GetLastError Lib "kernel32" () As Integer 
 
 
 
    ' Constants used for various API calls. Refer to MSDN for detailed 
    ' information about what these constants mean. 
 
    Public Const TOKEN_ADJUST_PRIVILEGES = &H20 
    Public Const TOKEN_QUERY = &H8 
    Public Const ANYSIZE_ARRAY = 1 
    Public Const PROCESS_ALL_ACCESS = &H1F0FFF 
    Public Const SE_DEBUG_NAME = "SeDebugPrivilege" 
    Public Const SE_PRIVILEGE_ENABLED = &H2 
 
    ' Structures used with various API calls. 
    ' Refer to MSDN for detailed information 
    ' about what these structures are, and how they are used. 
 
    Structure LARGE_INTEGER 
        Public lowpart As Integer 
        Public highpart As Integer 
    End Structure 
 
    Structure Luid 
        Public lowpart As Integer 
        Public highpart As Integer 
    End Structure 
 
    Structure LUID_AND_ATTRIBUTES 
        Public pLuid As Luid 
        Public Attributes As Integer 
    End Structure 
 
    Structure TOKEN_PRIVILEGES 
        Public PrivilegeCount As Integer 
        Public Privileges() As LUID_AND_ATTRIBUTES 
    End Structure 
 
    Declare Function GetCurrentProcess Lib "kernel32" () As Integer 
 
    Declare Function OpenProcessToken Lib "advapi32.dll" _ 
         (ByVal ProcessHandle As Integer, ByVal DesiredAccess As Integer, _ 
      ByVal TokenHandle As Integer) As Integer 
 
    Declare Function LookupPrivilegeValue Lib "advapi32.dll" Alias _ 
         "LookupPrivilegeValueA" (ByVal lpSystemName As String, _ 
         ByVal lpName As String, ByVal lpLuid As Luid) As Integer 
 
    Declare Function AdjustTokenPrivileges Lib "advapi32.dll" _ 
       (ByVal TokenHandle As Integer, ByVal DisableAllPrivileges As Long, _ 
       ByVal NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, _ 
       ByVal PreviousState As TOKEN_PRIVILEGES, ByVal ReturnLength As Long) As Long  | 
                
                 | 
           
          
                
                  | 
                
                 | 
                
                  | 
           
         
         | 
   
 
Ато пока я со своим инетом скачаю 13ю студию, наступят следующие выходные.
     
          
        
        
        
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            04.08.2014, 11:02
            
            
         | 
        
             
            #15
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Разведчик  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 06.10.2013  
                
                
                
                 Сообщений: 27
                   
 Популярность: 10  
                  
	 Сказал(а) спасибо: 24  
	
		
			
				Поблагодарили 12 раз(а) в 8 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: ReadProcessMemory и Visual Basic
             
             
            
        
        
        
            
               
    А вы уверены что код рабочий? 
Я вот получаю список процессов без всяких токенов.
 Простой пример:
	Код: 
	 Public Class Form1
    Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As UInteger, ByVal bInheritHandle As UInteger, ByVal dwProcessId As UInteger) As Integer
    Public Declare Function ReadProcessMemory Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As UInteger, ByVal lpBaseAddress As UInteger, ByRef lpBuffer As UInteger, ByVal nSize As UInteger, ByRef lpNumberOfBytesWritten As UInteger) As UInteger
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim i As Integer
        Dim procs As Process() = Process.GetProcesses() 'массив процессов
        For i = 0 To procs.Count - 1
            Dim MainWindowTitle As String = procs(i).MainWindowTitle 'MainWindowTitle
            If MainWindowTitle = "Perfect World" Then
                Dim Process_Id As UInteger = procs(i).MainWindowHandle
                Dim hProcess As UInteger = OpenProcess(&H1F0FF, 0, procs(i).Id) 'all access
                'ну а дальше читаем нужные значения
                Dim BA As UInteger
                ReadProcessMemory(hProcess, &HC9DFAC, BA, 4, 0) 'читаем базовый адрес
                Me.Text = BA
                Beep()
            End If
        Next
    End Sub
End Class
 Для еще большего удобства можно сеять окна пв по имени персонажа, написать класс для читания памяти во всех ее вариациях(uInteger, String, Byte...)
 
Если этот код не будет у тебя работать то выход для тебя только 1н. Идти к другу/знакомому и качать образ у него    .
     
          
        
        
        
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
 
	
		
	
	
	
	
	
		
	
		 
		Ваши права в разделе
	 | 
 
	
		
		Вы не можете создавать новые темы 
		Вы не можете отвечать в темах 
		Вы не можете прикреплять вложения 
		Вы не можете редактировать свои сообщения 
		 
		
		
		
		
		HTML код Выкл. 
		 
		
	  | 
 
 
	 | 
	
		
	 | 
 
 
	
		
			 
			Похожие темы
		 | 
	 
	| Тема | 
	Автор | 
	Раздел | 
	Ответов | 
	Последнее сообщение | 
 
	| 
		
		[Помогите!] Visual basic 6
	 | 
	sanekdnb | 
	Общение разработчиков | 
	6 | 
	22.05.2012 09:02 | 
 
	| 
		
		[Помогите!] visual basic
	 | 
	[Мозгоффский] | 
	Общение и обсуждение Perfect World | 
	12 | 
	19.02.2012 18:31 | 
 
	| 
		
		[Руководство] На Visual Basic
	 | 
	daff26 | 
	С/С++ | 
	1 | 
	29.12.2011 13:27 | 
 
 
 
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 09:56. 
		 
	 
 
 | 
  |