Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
5 / 4 / 1
Регистрация: 03.07.2017
Сообщений: 138

Поиск значения в памяти

19.01.2019, 15:17. Показов 1773. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть такой класс:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
   enum RamResponse
    {
        NoProcces,
        Luckly,
        FindEnd
    }
    abstract class Memory
    {
        [DllImport("kernel32.dll")]
        static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);
 
        [DllImport("kernel32.dll")]
        static extern bool ReadProcessMemory(int hProcess, int lpBaseAddress, byte[] lpBuffer, int dwSize, ref int lpNumberOfBytesRead);
 
        const int PROCESS_WM_READ = 0x0010;
 
        [DllImport("kernel32.dll", SetLastError = true)]
        static extern bool WriteProcessMemory(int hProcess, int lpBaseAddress, byte[] lpBuffer, int dwSize, ref int lpNumberOfBytesWritten);
 
        const int PROCESS_VM_WRITE = 0x0020;
        const int PROCESS_VM_OPERATION = 0x0008;
 
        const int PROCESS_ALL_ACCESS = 0x1F0FFF;
        public static RamResponse ReadRam(string proccesname,Int32 adress,ref byte[] bytes)
        {
            Process[] psearch = Process.GetProcessesByName(proccesname);
 
            if(psearch.Length < 1)
            {
                return RamResponse.NoProcces;
            }
 
            Process procces = psearch[0];
 
            IntPtr processHandle = OpenProcess(PROCESS_WM_READ, false, procces.Id);
 
            int bytesRead = 0;
            byte[] buffer = new byte[24];
 
            ReadProcessMemory((int)processHandle, 0x0046A3B8, buffer, buffer.Length, ref bytesRead);
 
            bytes = buffer;
 
            return RamResponse.Luckly;
        }
 
        public static RamResponse WriteToRam(string proccesname,Int32 adress,byte[] replace)
        {
            Process[] psearch = Process.GetProcessesByName(proccesname);
 
            if (psearch.Length < 1)
            {
                return RamResponse.NoProcces;
            }
 
            IntPtr processHandle = OpenProcess(PROCESS_ALL_ACCESS, false, psearch[0].Id);
 
            int bytesWritten = 0;
 
            WriteProcessMemory((int)processHandle, 0x0046A3B8, replace, replace.Length, ref bytesWritten);
 
            return RamResponse.Luckly;
        }
 
        [DllImport("kernel32.dll", SetLastError = true)]
        static extern bool ReadProcessMemory(
          IntPtr hProcess,
          IntPtr lpBaseAddress,
          [Out] byte[] lpBuffer,
          int dwSize,
          out int lpNumberOfBytesRead
        );
 
        [DllImport("kernel32.dll", SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool CloseHandle(IntPtr hObject);
 
        public static RamResponse FindAdressArray(string proccesname, byte[] toFind, ref List<Int32> adresses)
        {
 
 
            if (adresses.Count < 1)
            {
                return RamResponse.FindEnd;
            }
 
            return RamResponse.Luckly;            
        }
    }
С помощью метода RamResponse ReadRam,я читаю определённую ячейку памяти,а с помощью WriteToRam я записую туда новое значение.Как перебрать все ячейки памяти в нужном процессе в методе RamResponse FindAdressArray?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.01.2019, 15:17
Ответы с готовыми решениями:

Поиск значения в памяти процесса
Здравствуйте, как можно осуществить поиск значения в памяти процесса?

Поиск и изменение значения в памяти(Не процесса)
Здравствуйте, я наслышан о том как тут любят кидать фекалиями в тех кто как либо делает незаконное ПО так сказать. Я же наоборот, веду...

Поиск значения в памяти.
расскажите пожалиста как сделать программу чтобы в памяти число определённое отыскивала и заменяла (вроде как magic trainer creator...

4
95 / 74 / 27
Регистрация: 13.08.2018
Сообщений: 203
19.01.2019, 19:32
win api VirtualQueryEx
0
5 / 4 / 1
Регистрация: 03.07.2017
Сообщений: 138
20.01.2019, 17:33  [ТС]
И как его использовать?
0
95 / 74 / 27
Регистрация: 13.08.2018
Сообщений: 203
20.01.2019, 17:51
Terminator1998, пример 1, пример 2
0
5 / 4 / 1
Регистрация: 03.07.2017
Сообщений: 138
20.01.2019, 18:07  [ТС]
Пишет типо не может разпознать цифры
C#
1
byte[] toFind = svalue.Text.Split().Select(s => Convert.ToByte(s, 16)).ToArray();
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.01.2019, 18:07
Помогаю со студенческими работами здесь

Поиск значения в памяти приложения ("Нет" читам!)
Здравствуйте, жители КиберФорума! Играл недавно в немало известную игру Sniper Elite(1 часть, мультиплеер), читеров оказалось хоть ж*п*й...

Поиск отрицательного значения, а так же деление, поиск максимального значения и запись в таблицу
Помогите пожалуйста дорешать две задачки: Вобщем первая задачка заключается в том, что надо сформировать массив из N чисел, их...

Сохраняю регистры в памяти, считываю из памяти - значения не совпадают
Привет! Такая проблема.. Emu8086. Записываю в регистр AX -&gt; 10b BX -&gt; 1b, записываю их в память и соответственно. Но когда я данные...

Поиск значения в другой таблице и вывод его значения (процедура)
Нужно создать процедуру которая заполняет значения в таблице автоматически. В процедуру передаётся три значения типа char(30): Название...

Поиск значения в двухмерном массиве с выводом значения соседнего индекса
Надеюсь поймут с первого раза. Имеется массив который мы получаем к примеру из файла или парсером, неважно. Назовём его $array_one Он...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru