Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Someone Гость
|
Добавлено: Чт Фев 27 2003 14:37 Заголовок сообщения: Доступ к памяти чужего процесса |
|
|
Мастера! Помогите мне, а то я уже тут совсем отчаялся! =( Уже 2 недели бьюсь, никак побороть не могу! =(
Вопрос: Есть некоторый процесс (например стандартный "калькулятор"), необходимо сделать дамп памяти этого процесса! Под Вынь98 все работает, но под ХП и 2000 не работает, проблема с правами! Как мне взять своему приложению права, чтобы можно было читать память чужего процесса ("Калькулятора")???
Итак текст процедуры (вроде так):
function GetWMPath:string; var memarr:array of char; // динамический массив для памяти! hProc : THandle; MBI : MEMORY_BASIC_INFORMATION; counter,i,j : cardinal; ln : Integer; MaxAddy,temp : Cardinal; dwSize, dwAddress: cardinal; hwnd, proc_id: dword;
f: file; begin enabledebug; // вызов процедуры получения прав, смотри ниже!!!
counter :=0; SetLength(memarr, 0);
dwAddress := $400000; MaxAddy := $80000000;
hwnd:=FindWindow (pchar('SciCalc'), nil); // получаем хэндл по классу окна
GetWindowThreadProcessId (hwnd,@proc_id); hProc := OpenProcess(PROCESS_QUERY_INFORMATION, False, Proc_ID);
While (VirtualQueryEx(hProc, Pointer(dwAddress), MBI, SizeOf(MEMORY_BASIC_INFORMATION)) > 0) and (cardinal(MBI.BaseAddress) + MBI.RegionSize = counter; closefile(f);
Finalize(memarr); FreeMem(memarr); end;
А вот так я пытаюсь взять себе нужные права(НЕ РАБОТАЕТ!!!):
procedure enabledebug; var TokenHandle: THandle; dwNull: DWORD; TokenPrivilege, Tmp: TTokenPrivileges; begin try OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, TokenHandle); LookupPrivilegeValue(nil, 'SeDebugPrivilege', TokenPrivilege.Privileges[0].Luid);
with TokenPrivilege do begin PrivilegeCount := 1; Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; end;
dwNull := 0;
AdjustTokenPrivileges(TokenHandle, False, TokenPrivilege, SizeOf(TTokenPrivileges), Tmp, dwNull);
except ShowMessage('debug error!'); end; end;
Помогите, а то блин уже не знаю чего делать!!! |
|
Вернуться к началу |
|
|
Вячеслав Гость
|
Добавлено: Чт Фев 27 2003 15:48 Заголовок сообщения: Re: Доступ к памяти чужего процесса |
|
|
Учитца Вам батенька надобно ! Почитайте книжку по архитектуре NT осбенно главы посвященные памяти ключевое слово RING |
|
Вернуться к началу |
|
|
Someone Гость
|
Добавлено: Чт Фев 27 2003 16:11 Заголовок сообщения: Крик души! =( |
|
|
У меня уже голова кругом идет! Неужели Вам так сложно подсказать где конкретно находится ошибка???
Конечно, тут все, б@#$, такие умные, а помочь в реальной проблеме никто не хочет! Обращаясь на форум с конкретным вопросом обычно хотят получить конкретный ответ. А отослать фразой "поищи в инете" или "почитай книгу" каждый может!
Неужели вам это так сложно, мастера программирования, где вы? |
|
Вернуться к началу |
|
|
Вячеслав Гость
|
Добавлено: Чт Фев 27 2003 16:32 Заголовок сообщения: Re: Крик души! =( |
|
|
Ты видел когда нибудь практикующего хирурга не зающего анатомии? Я нет В XP W2000 NT4 несколько по другому ведется работа с памятью чем в W9* с этого начинается любая книга посвященная этим ОС. (которых ты не читал или читал к верху ногами в противном сучае не возник бы этот вопрос )
То что пытаешся сделать в корне не верно. |
|
Вернуться к началу |
|
|
Someone Гость
|
Добавлено: Чт Фев 27 2003 17:04 Заголовок сообщения: Re: Крик души! =( |
|
|
> Ты видел когда нибудь практикующего хирурга не зающего анатомии? > Я нет Ладно, извиняюсь, сорвалось..... Просто я уже кучу документации в инете перерыл, задавал на многих форумах этот вопрос, а мне или отвечали то, что я уже знал и пробовал, или не отвечали совсем! =(
> В XP W2000 NT4 несколько по другому ведется работа с памятью чем в W9* с этого начинается любая книга посвященная этим ОС. > То что пытаешся сделать в корне не верно. Ну вот это уже более конкретный ответ... Видимо, мне придется самому ковыряться... Ну а может какую-нть ссылку почитать подкинете? Или ссылку а ДЕЙСТВИТЕЛЬНО работающий пример(на любом языке)? |
|
Вернуться к началу |
|
|
Вячелав Гость
|
Добавлено: Пт Фев 28 2003 12:37 Заголовок сообщения: Re: Крик души! =( |
|
|
Ты пользуешь SoftIce? Знаешь принцип его работы? На сайтах посвященных вирусам полно инфы на твою тему. |
|
Вернуться к началу |
|
|
Bislan Гость
|
Добавлено: Сб Мар 01 2003 16:29 Заголовок сообщения: Fufloshniki |
|
|
Net chtob konkretno pomoch cheloveku , vskauju chush nesiosh . Sumone , esli bi on znal to pomog bi a tak nefiga neznaet i pi**** ne vse 4 storoni . Lutshe sam razberis' . |
|
Вернуться к началу |
|
|
Someone Гость
|
Добавлено: Вс Мар 02 2003 00:51 Заголовок сообщения: Точно, фуфло....... =( |
|
|
Спасибо за поддержку! Я это уже давно понял, что моя проблема довольно узкая и помочь мне мало кто может/хочет!!!
Ну и вообще этот форум какой то мутный! Тут все ответы ограничиваются парой невнятных фраз!!! Я обычно люблю просто почитать архив форума, иногда очень интересные мессаги попадаются, в ЭТОМ же форуме читать абсолютно не чего(к сожалению)!!! Так что я сваливаю на любимый http://www.rsdn.ru!!!
Искренне желаю этому форуму исправиться........ :-/ |
|
Вернуться к началу |
|
|
bss Гость
|
Добавлено: Вс Мар 02 2003 08:45 Заголовок сообщения: Re: Точно, фуфло....... =( |
|
|
на самом деле я ничего конкретного сказать немогу потому как собственных наработок по этой теме. народ тут действительно дельного мало говорит (исключение составляет форум по юникс)
что касается твоей проблемы то Win NT,XP,2000 переводят процессор в защищенный режим есть четыре кольца защиты процессора
виндосы используют только 2: нулевое и помойму третье. В нулевом кольце защиты процессора выполняется ядро и драйверы. остальные приложения в третьем.
адресоваться напрямую к памяти или регистрам какого-нибудь устройства может только приложение выполняющееся в нулевом кольце защиты.
по видосовской терминологии эти режимы называются режимом ядра и режимом приложений
в общем любое приложение адресуется к аппаратуре только посредством драйвера выполняющегося в режиме ядра. наверное тебе надо что-то почитать по написанию драйверов.
ну вот че знал сказал больше ничего не знаю |
|
Вернуться к началу |
|
|
Вячеслав Гость
|
Добавлено: Вс Мар 02 2003 12:19 Заголовок сообщения: Re: Точно, фуфло....... =( |
|
|
Тебе внятно написали в какую сторону копать еще в первом ответе! Если из под кепки не видиш второго этажа то это не значит что форум мутный! Я ради интереса набрал в поисковике WINNT RING-0 и на твою _УЗКУЮ_ тему и получил вагон линков. Что еще надо тебе для счастья? Исходник вируса под NT пишущего в чужую память? |
|
Вернуться к началу |
|
|
|