Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Изменение памяти процесса


Автор: Xao 2.2.2008, 03:15
Всем привет!
Мне надо сделать программку, которая бы считывала память нужного мне процесса и меняла определенные значения там
процесс я нашел, а как дальше менять его память, подскажите плз?

Автор: marcusmae 2.2.2008, 13:45
Xao, читать чужую память скорее всего будет позволено, а вот писать - Вы получите Access Violation.

Автор: Void 2.2.2008, 14:10
http://msdn2.microsoft.com/en-us/library/ms680553(VS.85).aspx/http://msdn2.microsoft.com/en-us/library/ms681674(VS.85).aspx
Вызывать через P/Invoke. Чтобы работало, нужны соответствующие привилегии.

Автор: Xao 2.2.2008, 16:10
marcusmae
ну вот программа artmoney, она же может менять значения в памяти


Void
какие должны быть привелегии?
права админа?

я скачал pinvoke отсюда http://www.pinvoke.net , там 3 файла установил только pInvoke VS addin, но у меня VS 2008, а есть еще VS 2005 C# Express и ни там и ни там ничего не  изменилось

Автор: mr.DUDA 2.2.2008, 16:58
Xao, на pinvoke.net только примеры объявления WinAPI-функций в C#/VB.NET и их вызова. То же самое в какой-то форме делает add-in.

Автор: Xao 3.2.2008, 01:43
mr.DUDA
хорошо тогда объясните плз, что такое P/Invoke

определение функции
Код

[DllImport("kernel32.dll")]
static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress,
   byte [] lpBuffer, UIntPtr nSize, out IntPtr lpNumberOfBytesWritten);

это и есть P/Invoke?

а как добавить pinvoke в VS, который с сайта http://www.pinvoke.net 

Автор: mr.DUDA 3.2.2008, 12:50
Цитата(Xao @  3.2.2008,  00:43 Найти цитируемый пост)
это и есть P/Invoke?

Вызов такой функции будет использовать p/invoke (Platform Invoke, вызов функций специфичных для платформы - в данном случае WinAPI).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)