Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Доступ к памяти чужего процесса

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
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 пишущего в чужую память?
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

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


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...