Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Полный доступ к памяти процесса 
:(
    Опции темы
Xao
Дата 5.6.2008, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 24.12.2007

Репутация: 1
Всего: 1



Всем привет!

Мне нужно получить полный доступ к памяти процесса - чтение, запись, отслеживание событий
Получить модули стандартными средствами C# не удается, в доступе отказано:

Код

           //процесс war3.exe уже запущен
           Process war3 = Process.GetProcessesByName("war3")[0];
           //war3.Modules - отказано


Поэтому я использую АПИ (kernel32.dll), но есть проблема, я не могу получить хэндл процесса при помощи 
Код

           int m_hProcess = OpenProcess(0x001F0FFF, false, war3.Id);
           //0x001F0FFF - полный доступ(чтение, запись и т.д.)

при помощи 
Код

           GetWindowThreadProcessId(war3.MainWindowHandle, out ptrProcID);

тоже не удается получить
однако я могу получить его при помощи:
Код


        PROCESS_INFORMATION pInfo = new PROCESS_INFORMATION();
        STARTUPINFO sInfo = new STARTUPINFO();
        SECURITY_ATTRIBUTES pSec = new SECURITY_ATTRIBUTES();
        SECURITY_ATTRIBUTES tSec = new SECURITY_ATTRIBUTES();
        //PROCESS_INFORMATION, STARTUPINFO, SECURITY_ATTRIBUTES - структуры (их можно просмотреть тут: http://www.pinvoke.net/default.aspx/kernel32/CreateProcess.html)    

            const uint NORMAL_PRIORITY_CLASS = 0x0020;

            string Application = @"D:\Игры\Warcraft III\war3.exe";
            pSec.nLength = Marshal.SizeOf(pSec);
            tSec.nLength = Marshal.SizeOf(tSec);

            CreateProcess(Application, null,
            ref pSec, ref tSec, false, NORMAL_PRIORITY_CLASS,
            IntPtr.Zero, null, ref sInfo, out pInfo);


в pInfo.hProcess возвращается хэндл процесса, это позволяет читать память, писать не удается

Еще как определить начальный адрес памяти процесса и сколько всего байт и как можно отлавливать внутренние события процесса

Подскажите плз, кто что знает
Через артмани я легко меняю память процесса, а это значит, что запись возможна

PM MAIL   Вверх
Xao
Дата 6.6.2008, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 24.12.2007

Репутация: 1
Всего: 1



что никто никогда не писал трейнеры к играм?
PM MAIL   Вверх
_hunter
Дата 6.6.2008, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 2
Всего: 98



На шарпе может никто и не писал...
А так -- поищи в плюсовом разделе ReadProcessMemory...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Xao
Дата 7.6.2008, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 24.12.2007

Репутация: 1
Всего: 1



а как получить диапазон адресов памяти процесса средствами C#

Свойства процесса war3 (Process war3 = Process.GetProcessesByName("war3")[0];):

        NonpagedSystemMemorySize
        NonpagedSystemMemorySize64    
        PagedMemorySize    
        PagedMemorySize64
        PagedSystemMemorySize    
        PagedSystemMemorySize64    
        PeakPagedMemorySize    
        PeakPagedMemorySize64    
        PeakVirtualMemorySize    
        PeakVirtualMemorySize64    
        PeakWorkingSet    
        PeakWorkingSet64    
        PrivateMemorySize    
        PrivateMemorySize64    
        VirtualMemorySize    
        VirtualMemorySize64    
        WorkingSet    
        WorkingSet64    

Какое из них отвечает за начальный адрес памяти?
а вообще где можно прочитать про все эти свойства

Это сообщение отредактировал(а) Xao - 7.6.2008, 12:44
PM MAIL   Вверх
Xao
Дата 14.12.2008, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 24.12.2007

Репутация: 1
Всего: 1



Народ у кого-нибудь появились мысли по поводу этой темы? smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0430 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.