Порыться в памяти.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Doctor Nestor
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 79
Зарегистрирован: 09.04.2004 (Пт) 12:02
Откуда: R-n-D

Порыться в памяти.

Сообщение Doctor Nestor » 28.07.2004 (Ср) 22:36

Возможно ли проверить фрагмент памяти на его использование программой (какой-нибудь). Короче, надо найти неинициализированную память... Никто не знает как?
Noname - это самый популярный брэнд.

Mogavk
Новичок
Новичок
Аватара пользователя
 
Сообщения: 34
Зарегистрирован: 27.07.2004 (Вт) 20:58

Сообщение Mogavk » 28.07.2004 (Ср) 22:42

Если кто будет кидать сюда ссылки по работе с паматью,то конкретно нужен линк еще на работу с паматью(Read,Write),если есть сырцы то поделитесь ими.
From Community,For Community

Doctor Nestor
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 79
Зарегистрирован: 09.04.2004 (Пт) 12:02
Откуда: R-n-D

Сообщение Doctor Nestor » 28.07.2004 (Ср) 22:52

Насчёт записи/чтения - это обсуждалось...
Ссылку не нашёл. На винте текст откапал. GSerg писал:

'Копирует 2 байта из src в dest. Возвращает 0.
Public Declare Function GetMem2 Lib "msvbvm60" (ByVal ptrToIntSrc As Long, ByVal ptrToIntDest As Long) As Long

'Копирует 4 байта из src в dest. Возвращает 0.
Public Declare Function GetMem4 Lib "msvbvm60" (ByVal ptrToLongSrc As Long, ByVal ptrToLongDest As Long) As Long

'Копирует 8 байт из src в dest. Возвращает 0.
Public Declare Function GetMem8 Lib "msvbvm60" (ByVal ptrToDDWORDSrc As Long, ByVal ptrToDDWORDDest As Long) As Long


'Записывает 2 байта в dest. Возвращает 0.
'Будет использован только LOWORD второго параметра.
Public Declare Function PutMem2 Lib "msvbvm60" (ByVal ptrToIntDest As Long, ByVal NewValue As Long) As Long

'Записывает 4 байта в dest. Возвращает 0.
Public Declare Function PutMem4 Lib "msvbvm60" (ByVal ptrToLongDest As Long, ByVal NewValue As Long) As Long

'Записывает 8 байт в dest. Возвращает 0.
Public Declare Function PutMem8 Lib "msvbvm60" (ByVal ptrToQWORDDest As Long, ByVal NewValueLowDWORD As Long, ByVal NewValueHighDWORD As Long) As Long

надеюсь это то...
Noname - это самый популярный брэнд.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.07.2004 (Ср) 22:53

Хм...
А ты вызови GlobalAlloc, она тебе кусок и вернёт. Правда, он при этом будет закреплён за тобой.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Doctor Nestor
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 79
Зарегистрирован: 09.04.2004 (Пт) 12:02
Откуда: R-n-D

Сообщение Doctor Nestor » 28.07.2004 (Ср) 22:58

Не совсем понял, как прокатит. GlobalAlloc выделяет память запрошенного размера. Мне надо ВСЮ неинициализированную память узнать. А вызывать много раз GlobalAlloc ... даже не знаю. Что посоветуешь?
Noname - это самый популярный брэнд.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.07.2004 (Ср) 23:14

Посоветую фигнёй не страдать и систему виртуальной памяти не нарушать :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Doctor Nestor
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 79
Зарегистрирован: 09.04.2004 (Пт) 12:02
Откуда: R-n-D

Сообщение Doctor Nestor » 28.07.2004 (Ср) 23:22

Твой совет над чертой или под чертой? А то, пока я все варианты переберу, состарюсь точно :D
Noname - это самый популярный брэнд.

Approximator
Постоялец
Постоялец
 
Сообщения: 572
Зарегистрирован: 26.06.2004 (Сб) 3:10

Сообщение Approximator » 29.07.2004 (Чт) 7:33

С уважением, Approximator.

Mogavk
Новичок
Новичок
Аватара пользователя
 
Сообщения: 34
Зарегистрирован: 27.07.2004 (Вт) 20:58

Сообщение Mogavk » 29.07.2004 (Чт) 14:15

Ок,спасибо
From Community,For Community

Doctor Nestor
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 79
Зарегистрирован: 09.04.2004 (Пт) 12:02
Откуда: R-n-D

Сообщение Doctor Nestor » 29.07.2004 (Чт) 16:09

Approximator , благодарю. Кажется, что надо...разбираюсь.
Noname - это самый популярный брэнд.

Approximator
Постоялец
Постоялец
 
Сообщения: 572
Зарегистрирован: 26.06.2004 (Сб) 3:10

Сообщение Approximator » 30.07.2004 (Пт) 7:44

Doctor Nestor писал(а): Approximator , благодарю.

Пожалуйста.
Кажется, что надо...разбираюсь.

Понимаю, сам интересуюсь.

Кстати, если память вдруг окажется нечитабильной и неписабильной, тогда нужно разбираться с экзешником, так как для каждого сегмента кода там протавляются биты разрешающие/запрещающие чтение/запись. Вот здесь я давал ссылки на описание PE-формата, там про это всё написано:
http://bbs.vbstreets.ru/viewtopic.php?t=8914
С уважением, Approximator.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13

    TopList