Страница: 1 | 
		
		 
			   
			 
			 Люди помогите мне!!! Все знают игру Grand Theft Auto: Vice Sity, так вот мне известно что адрес памяти в котором храниться информация о количестве денег равен "0094ADC8" (без ковычек естественно) и имеет тип long.  И вот сам вопрос: Как считать данные из памяти(зная адрес и тип)? Как вписать данные в память (тоже зная адрес и тип)  
			 
			 Помоему copymemory(writememory), или что то подобное Вот эти функции: Declare Function ReadProcessMemory Lib "kernel32" (byval hProcess as long, byval lpBaseAddress as Any, byval lpBuffer as Any, byval nSize as Long, byval lpNumberOfBytesWritten as long) as long Declare Function WriteProcessMemory Lib "kernel32" (то же самое  Вот эти функции: Declare Function ReadProcessMemory Lib "kernel32" (byval hProcess as long, byval lpBaseAddress as Any, byval lpBuffer as Any, byval nSize as Long, byval lpNumberOfBytesWritten as long) as long Declare Function WriteProcessMemory Lib "kernel32" (то же самое  Я тоже пытался сделать трейнер на Vice City. Сделал только на набор паролей. А вот с памятью не получается. Считывает только Текст. Пишу Код . если у тебя получиться - тогда и мне поможешь 'модуль Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 'форма Private Sub Command1_Click() Ну, во-первых, скорее всего можно сделать вот так: Public Function ConStrToNumber(strExpression As String) As Long Dim I 'Если значение будет больше &H7fffffff, то это вызовет OverFlow '&H7fffffff = 2147483647 For I = 0 To Len(strExpression) - 1     ConStrToNumber = ConStrToNumber Or Asc(Mid$(strExpression, Len(strExpression) - I, 1)) * (256 ^ I) Next I End Function - преобразователь String в числовое значение. Другой вариант, получать данные не как String, а как байтовый массив, тогда цикл будет выглядеть как for i=0 to ubound(bArray()) ConStrToNumber=ConStrToNumber Or bArray(ubound(bArray())-i)*(256^i) next i Кстати, не пробовал загружать прямо в Long или Double? Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: Создание трайнера!!!                              
     
    
Добавлено: 19.06.03 09:47
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
     melnicov
 melnicov
      
       
  
 
    
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 5
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа: Danger2002
 Danger2002

Вопросов: 10
Ответов: 109
      
 Профиль |  | #1
       
Добавлено:  19.06.03 11:50
       
    
       
  
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа: univercal
 univercal








ICQ: 173084484 
Вопросов: 5
Ответов: 76
      
 Web-сайт:  
 Профиль |  | #2
      
Добавлено:  19.06.03 18:11
       
    
       
  
 
     ) as long
 ) as long
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа: univercal
 univercal








ICQ: 173084484 
Вопросов: 5
Ответов: 76
      
 Web-сайт:  
 Профиль |  | #3
      
Добавлено:  19.06.03 18:12
       
    
       
  
 
     ) as long
 ) as long
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа: Jen
 Jen




Вопросов: 3
Ответов: 3
      
 Профиль |  | #4
       
Добавлено:  20.06.03 00:34
       
    
       
  
 
    

  Public Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Long, lpdwProcessId As Long) As Long
  Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAcess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
  Public Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAdress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
  Public Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddess As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWriten As Long) As Long
  Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
  Public Const PROCESS_ALL_ACCESS = &HF0000 Or &H100000 Or &HFFF
  Public Const STANDARD_RIGHTS_REQUIRED = &HF0000
  Public Const SYNCHRONIZE = &H100000
  Public Const PROCESS_VM_READ = &H10
  Public Const PROCESS_VM_WRITE = &H20
Dim hWnd As Long '‘ удерживает управление, переданное функцией Find Window.
Dim pID As Long '‘ используется для хранения идентификатора процесса.
Dim pHandle As Long '‘ держит управление процессом.
Dim Znach As String * 20 'в этой переменной хранится считываемый блок памяти
hWnd = FindWindow(vbNullString, "GTA: Vice City")
If (hWnd = 0) Then
MsgBox Not window
Exit Sub
End If
GetWindowThreadProcessId hWnd, pID
pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pID)
If (pHandle = 0) Then
MsgBox "Couldn"
Exit Sub
End If
ReadProcessMemory pHandle,Адрес_Памяти, Znach, 4, 0&
CloseHandle hProcess
End Sub А если заменить, то вместо ReadProcessMemory-WriteProcessMemory
А если заменить, то вместо ReadProcessMemory-WriteProcessMemory Удачи
Удачи
		
	  
			 
	
		 
    
       
    
Номер ответа: 5 
      
Автор ответа: univercal
 univercal








ICQ: 173084484 
Вопросов: 5
Ответов: 76
      
 Web-сайт:  
 Профиль |  | #5
      
Добавлено:  21.06.03 15:01