Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Адреса ячеек памяти Добавлено: 04.02.09 15:21  

Автор вопроса:  Djon | Web-сайт: www.vk-book.ru
Всем привет.
У меня проблема.
Вот код
Private Type MEMORY_BASIC_INFORMATION

   BaseAddress          As Long     'Указатель на базовый адрес для указанного диапазона страниц

   AllocationBase       As Long     'Указывает на базовый адрес региона памяти.

   AllocationProtect    As Long     'Указывает на атрибуты защиты, которые были присвоены региону при его резервировании.

   RegionSize           As Long     'Задает/
'Возвращает размер диапазона памяти, который начинается по адресу BaseAddress и имеет и имеет те же самые атрибуты, что и первая страница.

   State                As Long     'Задает/Возвращает состояние страниц в указанном регионе.

   Protect              As Long     'Указывает на атрибуты защиты страниц региона памяти, начинающегося по адресу BaseAddress.

   Type                 As Long     'Указывает на тип страниц заданного региона.

End Type

'-----------------------------------------------------------------------------------------

Private meminfo         As MEMORY_BASIC_INFORMATION

Private buf             As Long         '

Private str(10000)      As String       '

Private wName           As String       '

'-----------------------------------------------------------------------------------------

Private hw              As Long         'Хэндл окна

Private PID             As Long         'Идентификатор процесса

Private GWTPI           As Long         'Возврат функции GetWindowThreadProcessId

Private hProc, hProcess         As Long         'Хэндл процесса


Private RPM             As Long         'Возврат функции ReadProcessMemory

Private dwReaded        As Long         'Кол-во прочитанных байт

Private VQE             As Long         'Возврат функции VirtualQueryEx

Private RegionAdress()  As Long         'Массив адресов регионов процесса

Private Cyc             As Long         '

Private totalReg        As Long         '

Private R               As Long         '

'------------------------------------------------------------------------------------------

Private Const PROCESS_QUERY_INFORMATION = &H400

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 Sub ScanPages()

hw = FindWindow(vbNullString, "Сапер")
 
 If hw > 0 Then
    GWTPI = GetWindowThreadProcessId(hw, PID)
    hProc = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM, 0, PID)
    VQE = VirtualQueryEx(hProc, 0, meminfo, LenB(meminfo))
    R = 0
    Erase RegionAdress()
    
    Do
        DoEvents
        R = R + 1
        ReDim Preserve RegionAdress(R)
        RegionAdress(R) = RegionAdress(R - 1) + meminfo.RegionSize
        VQE = VirtualQueryEx(hProc, RegionAdress(R), meminfo, LenB(meminfo))
        Combo4.AddItem (RegionAdress(R))
Loop While RegionAdress(R) < &H7FFEFFFF
    
Text5 = R

    CloseHandle (hProc)
    
 Else
 MsgBox "", vbCritical, ""
 End If
End Sub


Дело в том что я хочу найти все адреса всех ячеек памяти. Код выполняется но находятся почемуто не все адреса. Где я ошибся подскажите пожалуйсто

Ответить

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

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



Вопросов: 13
Ответов: 348
 Профиль | | #1 Добавлено: 05.02.09 12:31
Просто замечание:
        Private hProc, hProcess As Long 'Хэндл процесса
hProc объявлен как Variant

Ответить

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



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #2 Добавлено: 05.02.09 13:44

Offtop:
стиль форматирования в декларативной части имеет два явных преимущества
во первых прозрачный до нельзя, а во вторых можно понтоваться, что написал много много метров исходников :)

Ответить

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



Вопросов: 61
Ответов: 471
 Web-сайт: www.vk-book.ru
 Профиль | | #3
Добавлено: 05.02.09 17:50
hProc объявлен как Variant

а как нужно?

Ответить

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



Вопросов: 13
Ответов: 348
 Профиль | | #4 Добавлено: 06.02.09 11:59
Ну я думал про
"Private hProc, hProcess As Long 'Хэндл процесса "
что имелось ввиду
"Private hProc As Long, hProcess As Long 'Хэндл процесса"
 или оно же
"Private hProc As Long
Private hProcess As Long"

Ответить

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



Вопросов: 61
Ответов: 471
 Web-сайт: www.vk-book.ru
 Профиль | | #5
Добавлено: 11.02.09 14:30
Ни кто ни чего не подскажет?

Ответить

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


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #6
Добавлено: 11.02.09 20:26
А какие адреса не находятся?

Ответить

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



Вопросов: 61
Ответов: 471
 Web-сайт: www.vk-book.ru
 Профиль | | #7
Добавлено: 15.02.09 20:41
С помощью артмании я находил "счетчик времени" в "Сапере" &H100579C
А мой код этот адрес не находит.

Ответить

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


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #8
Добавлено: 15.02.09 21:17
Адрес или интервал адресов?

Ответить

Номер ответа: 9
Автор ответа:
 Djon



Вопросов: 61
Ответов: 471
 Web-сайт: www.vk-book.ru
 Профиль | | #9
Добавлено: 15.02.09 22:37
адрес

Ответить

Номер ответа: 10
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #10
Добавлено: 15.02.09 22:45
значит алгоритм крив...
не находит всмысле не читает этот адрес, или алгоритм поиска самописный не работает?

Ответить

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


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #11
Добавлено: 16.02.09 13:23
VirtualQueryEx выдает интервал адресов, а не адрес.

Ответить

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



Вопросов: 61
Ответов: 471
 Web-сайт: www.vk-book.ru
 Профиль | | #12
Добавлено: 16.02.09 18:42
Значит я запутался.
Sharp, у меня VirtualQueryEx выдаёт много значений.

Если эти числа интервал, подскажите, как из этого интервала извлеч все адреса?

Ответить

Номер ответа: 13
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #13
Добавлено: 16.02.09 18:47
гугл "VirtualQueryEx+пример" лает второй или третьей ссылку
http://wm-help.net/books-online/book/59464/59464-7.html

Ответить

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


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #14
Добавлено: 16.02.09 22:19
.BaseAddress это начало интервала, а .RegionSize его размер.

Ответить

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



Вопросов: 61
Ответов: 471
 Web-сайт: www.vk-book.ru
 Профиль | | #15
Добавлено: 18.02.09 17:17
Sharp, большое тебе спасибо.

Ответить

Страница: 1 |

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



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