Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2016, 20:38   #1
BPro
Пользователь
 
Регистрация: 03.05.2016
Сообщений: 11
По умолчанию [MASM32] Поиск в памяти процесса

Доброго времени суток.Перелопатил гугл ,но ответа так и не нашел ,каким образом реализовать поиск в памяти процесса на masm`e.

Вот пример кода на шарпе:


Код:

 public static void SearchProcessMemory(Process process)
        {
            var sys_info = new SYSTEM_INFO();
            GetSystemInfo(out sys_info);
            var proc_min_address = sys_info.minimumApplicationAddress;
            var proc_max_address = sys_info.maximumApplicationAddress;
            var proc_min_address_l = (long)proc_min_address;
            var proc_max_address_l = (long)proc_max_address;

            var processHandle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_WM_READ, false, process.Id);
            var mem_basic_info = new MEMORY_BASIC_INFORMATION();
            var bytesRead = 0; 

            while (proc_min_address_l < proc_max_address_l)
            {
                VirtualQueryEx(processHandle, proc_min_address, out mem_basic_info, 28); 

                if (mem_basic_info.Protect == PAGE_READWRITE && mem_basic_info.State == MEM_COMMIT)
                {
                 
                    byte[] buffer = new byte[mem_basic_info.RegionSize];
                    ReadProcessMemory((int)processHandle, mem_basic_info.BaseAddress, buffer, mem_basic_info.RegionSize, ref bytesRead);
                    FindCC(buffer, process.ProcessName, proc_max_address_l);
                }

             
                proc_min_address_l += mem_basic_info.RegionSize;
                proc_min_address = new IntPtr(proc_min_address_l);

                if (mem_basic_info.RegionSize == 0)
                {
                    break;
                    mem_basic_info.RegionSize = 4096; 
                }
            }
BPro вне форума Ответить с цитированием
Старый 14.11.2016, 20:59   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Так же, тут используются только винапи функции
p51x вне форума Ответить с цитированием
Старый 15.11.2016, 20:36   #3
Ethereal2
Пользователь
 
Регистрация: 17.02.2013
Сообщений: 26
По умолчанию

В книге
"Windows via C/C++" Jeffrey Richter, Christopher Nasarre
14-й программный пример (VMMap который) посвящен именно этому делу.

Последний раз редактировалось Ethereal2; 15.11.2016 в 20:40.
Ethereal2 вне форума Ответить с цитированием
Старый 15.11.2016, 20:38   #4
Ethereal2
Пользователь
 
Регистрация: 17.02.2013
Сообщений: 26
По умолчанию

Примеры из книги качаются отсюда
http://www.wintellect.com/DevCenter/...sPlus-Code.zip

Хотя может я не так понял что именно тебе нужно. Но может в соответствующей главе этой книги и в этом 14-м примере ты найдешь нужную тебе информацию.

поиск в памяти процесса
Var.1.) поиск процесса где - в памяти
Var.2.) поиск непонятно чего где - в памяти процесса
Люблю так сформулированные вопросы.

Последний раз редактировалось Ethereal2; 15.11.2016 в 20:52.
Ethereal2 вне форума Ответить с цитированием
Старый 16.11.2016, 08:22   #5
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

BPro, а где же функция FindCC? Или как раз с её реализацией трудности?
vadimych вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск строки в памяти процесса Alexan-Dwer Общие вопросы Delphi 7 28.08.2016 15:09
Оперативная память и WinAPI (поиск строки в памяти процесса) Кирилл Романов Win Api 5 12.05.2015 22:44
Чтение памяти процесса (поиск адресов) xRamzeSx Общие вопросы Delphi 0 12.01.2014 13:10
Поиск в памяти процесса Mr_ViK Общие вопросы Delphi 5 27.08.2012 21:38
Поиск сигнатуры в памяти процесса Crystallon Общие вопросы Delphi 8 26.09.2011 23:01