Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Как прочитать память процесса? Добавлено: 09.02.05 12:25  

Автор вопроса:  Demon | Web-сайт: update.sugardas.lt | ICQ: 7026585 
Есть адрес в памяти процесса PID - &H13C994. Как скопировать 4-х байтное содержимое в textbox?

Ответить

  Ответы Всего ответов: 20  

Номер ответа: 1
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #1
Добавлено: 09.02.05 14:45
Ну вообще - ReadProcessMemory. А причём тут PID? Как ты его собираешся применить?

Ответить

Номер ответа: 2
Автор ответа:
 Demon



ICQ: 7026585 

Вопросов: 18
Ответов: 96
 Web-сайт: update.sugardas.lt
 Профиль | | #2
Добавлено: 09.02.05 16:16
PID- ProcessID
OpenProcess(PROCESS_READ_WRITE_QUERY, False, PID)

Ответить

Номер ответа: 3
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #3
Добавлено: 09.02.05 17:54
Ну да, если при открытии, то конечно.

Ответить

Номер ответа: 4
Автор ответа:
 Demon



ICQ: 7026585 

Вопросов: 18
Ответов: 96
 Web-сайт: update.sugardas.lt
 Профиль | | #4
Добавлено: 09.02.05 18:02
Чтобы читать память процесса его надо сначала открыть.

Ответить

Номер ответа: 5
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #5
Добавлено: 10.02.05 14:14
А ты догадливый парень :)
Не забудь потом его закрыть после чтения ;)

Ответить

Номер ответа: 6
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #6
Добавлено: 10.02.05 14:18

PID - &H13C994

 Эй, люди, у кого ещё такой PID отзовитесь пожалуйста. Человек плачет, не может из процесса прочесть. :)

Ответить

Номер ответа: 7
Автор ответа:
 Demon



ICQ: 7026585 

Вопросов: 18
Ответов: 96
 Web-сайт: update.sugardas.lt
 Профиль | | #7
Добавлено: 10.02.05 16:27
Сори не так написал, &H13C994 - адрес в памяти процесса.
Кстати его и надо закрывать после чтения (CloseHandle). Мне надо узнать, как правильно воспользоваться ReadProcessMemory.

Ответить

Номер ответа: 8
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #8
Добавлено: 10.02.05 17:16
Там после него идут параметры. Нужно их ввести слева направо через запятую.

Ответить

Номер ответа: 9
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #9 Добавлено: 10.02.05 17:21
CyRax, хватит, я уже не могу дольше смеяться.. у вас тут как разговор слепого с глухим получается;)

Ответить

Номер ответа: 10
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #10
Добавлено: 10.02.05 17:34
UU,
 А вдруг человек не знает? :) Доброта за доброту. Он меня обучит открытию процесса, а его правилам передачи параметров.

Demon писал(а):

Сори не так написал, &H13C994 - адрес в памяти процесса.
Кстати его и надо закрывать после чтения (CloseHandle).

 Значит так, у нас есть PID и адрес в памяти процесса (&H13C994), который нужно зачем то закрывать после чтения (хм, нужно будет потом поискать инфу о закрытии адресов памяти процесса).
 В задачке спрашивается, как правильно использовать ReadProcessMemory? Кто нибудь знает решение? А то меня только закрытие адреса вводит в ступор.

Ответить

Номер ответа: 11
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #11
Добавлено: 10.02.05 17:42

DECLARE FUNCTION ReadProcessMemory LIB "KERNEL32.DLL" ALIAS "ReadProcessMemory" (BYVAL hProcess AS DWORD, BYVAL lpBaseAddress AS LONG, lpBuffer AS ANY, BYVAL nSize AS DWORD, lpNumberOfBytesWritten AS LONG) AS LONG

 Пользуйся :)

Ответить

Номер ответа: 12
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #12
Добавлено: 10.02.05 17:44
Ой, что это?
ReadProcessMemory
lpNumberOfBytesWritten AS LONG

Ответить

Номер ответа: 13
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #13 Добавлено: 10.02.05 17:50
lpNumberOfBytesRead:)


 Private Sub btnRead_Click()

 Dim strTempX As String
 strTempX = "This is a string"

 MsgBox ReadMem(Me.hwnd, StrPtr(strTempX), LenB(strTempX))

 End Sub

 Public Function ReadMem(lngHandle As Long, lngAddress As Long, lngBytes As Long) As String

 Dim ProcID As Long
 Dim ProcHandle As Long
 Dim ByteVal As Long

 GetWindowThreadProcessId lngHandle, ProcID

 ProcHandle = OpenProcess(PROCESS_VM_READ, False, ProcID)

 Dim lngCount As Long
 For lngCount = 1 To lngBytes Step 2
     ReadProcessMemory ProcHandle, lngAddress + lngCount - 1, ByteVal, 1, 0&
     ReadMem = ReadMem & Chr(ByteVal)
 Next lngCount

 CloseHandle ProcHandle

 End Function

Ответить

Номер ответа: 14
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #14
Добавлено: 10.02.05 18:04
Угу, кто то поленился :)
А вообще это не имеет значения. В PB можно и так записать:

DECLARE FUNCTION ReadProcessMemory LIB "KERNEL32.DLL" ALIAS "ReadProcessMemory" (BYVAL DWORD, BYVAL LONG, ANY, BYVAL DWORD, LONG) AS LONG

Ответить

Номер ответа: 15
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #15
Добавлено: 10.02.05 18:08
А это скажешь по правилам? :)

lngHandle

 Куда правильней написать hWnd.

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам