Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];

Вниз

Как правильно организовать контроль за запускаемыми файлами?   Найти похожие ветки 

 
SkySpeed   (2006-10-20 23:19) [0]

Необходимо на машине организовать контроль за запускаемыми файлами/программами.

В книжке по реестру прочёл что существует интересный параметр AppInit_DLLs, находящийся здесь: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows

И если в данный параметр добавить имя DLL - файла, то при каждом запуске файла, данная DLL-ка будет запускаться

Моя DLL:

library CORP;

uses
 SysUtils,
 Classes;

{$R *.res}

const
filepath="E:\histapps.txt";

var
s:TStringList;
a:String;
z:Integer;

begin
if ParamCount>0 then
begin
 s:=TStringList.Create;
 try
  s.LoadFromFile(filepath);
 except
 end;
  a:="";
  for z:=1 to ParamCount do
   a:=a+ParamStr(z);

  s.Add(DateToStr(Date)+" : "+TimeToStr(Time)+" : "+a);
  s.SaveToFile(filepath);

  s.Free;
end;
end.


После помещения данной DLL в папку Windows или System32, большинство имён запускаемых файлов без ошибок добавляются в файл E:\histapps.txt, НО некоторые программы (Delphi, Internet Explorer...) запускаются с двумя ошибками...

Как избежать или предотвратить эти ошибки? ХЕЛП!


 
Ketmar ©   (2006-10-20 23:44) [1]

>[0] SkySpeed 20-Oct-2006, 23:19
>запускаются с двумя ошибками...
текст которых слишком секретен, чтобы его пубиликовать. читай секретный ответ: "....................................."


 
SkySpeed   (2006-10-21 00:18) [2]


> Ketmar ©   (20.10.06 23:44) [1]
> >[0] SkySpeed 20-Oct-2006, 23:19
> >запускаются с двумя ошибками...
> текст которых слишком секретен, чтобы его пубиликовать.
> читай секретный ответ: "................................
> ....."

Шутник....

Например, при запуске ИЕ выскакивают:

1 ошибка:

"iexplore.exe - Ошибка приложения" - заголовок окна

Текст окна:
Инструкция по адресу "0x7c918fea" обратилась к памяти по адресу "0x00000010". Память не может быть "written".

"ОК" -- завершение приложения
"Отмена" -- отладка приложения

2 ошибка:

"iexplore.exe - Ошибка приложения" - заголовок окна

Текст окна: Инструкция по адресу "0x0038a775" обратилась к памяти по адресу "0x0000000c". Память не может быть "written".

"ОК" -- завершение приложения
"Отмена" -- отладка приложения


 
Ketmar ©   (2006-10-21 00:22) [3]

верно выскакивает. потому как подобную DLL на Delphi написать проблематично. в общем случае: нельзя использовать ничего, кроме ntdll.dll и kernel32.dll. ну, разве только advapi32.dll ещё. для чего надо коцать системные модули. осилишь?


 
Ketmar ©   (2006-10-21 00:22) [4]

кстати, приложения, которые не грузят user32.dll твой модуль не получат.


 
SkySpeed   (2006-10-21 00:28) [5]


> Ketmar ©   (21.10.06 00:22) [3]
> верно выскакивает. потому как подобную DLL на Delphi написать
> проблематично. в общем случае: нельзя использовать ничего,
>  кроме ntdll.dll и kernel32.dll. ну, разве только advapi32.
> dll ещё. для чего надо коцать системные модули. осилишь?
>

М-да... проблематично однако...


> Ketmar ©   (21.10.06 00:22) [4]
> кстати, приложения, которые не грузят user32.dll твой модуль
> не получат.

Мне хотя бы основные приложения фиксировать


 
Ketmar ©   (2006-10-21 00:33) [6]

>[5] SkySpeed 21-Oct-2006, 00:28
>Мне хотя бы основные приложения фиксировать
а чем не подходит периодическое снятие снапшотов работающих процессов? по-уму тут вообще надо драйвер писать, кстати. %-)


 
SkySpeed   (2006-10-21 00:37) [7]


> Ketmar ©   (21.10.06 00:33) [6]
> >[5] SkySpeed 21-Oct-2006, 00:28
> >Мне хотя бы основные приложения фиксировать
> а чем не подходит периодическое снятие снапшотов работающих
> процессов? по-уму тут вообще надо драйвер писать, кстати.
>  %-)

При снятии снапшотов, будет необходимо сравнивать предыдущий снапшот с текущим и выбирать новые приложения и файлы
Намного быстрее будет если фиксировать каждое запускаемое приложение


 
Ketmar ©   (2006-10-21 00:42) [8]

>Намного быстрее будет если фиксировать каждое запускаемое
>приложение
ни разу не быстрее. медленней. и лишний, кстати, расход памяти -- потому что кое-кто не удосужился даже IMAGEBASE прописать.


 
SkySpeed   (2006-10-21 00:47) [9]

What is the ImageBase?


 
Ketmar ©   (2006-10-21 00:48) [10]

$IMAGEBASE, F1.


 
Eraser ©   (2006-10-21 00:56) [11]

> [5] SkySpeed   (21.10.06 00:28)

http://kladovka.net.ru/index.cgi?pid=board&rid=369


 
Ketmar ©   (2006-10-21 00:58) [12]

>[11] Eraser(c) 21-Oct-2006, 00:56
ты таки маньяк со своим WMI. %-)


 
Eraser ©   (2006-10-21 02:24) [13]

> [12] Ketmar ©   (21.10.06 00:58)

как говорится "у кого что.." :) просто недавно столкнулся вплотную с wmi, вот и советую )


 
Чапаев ©   (2006-10-21 08:28) [14]

> потому как подобную DLL на Delphi написать проблематично.
Писал. Работала.


> ну, разве только advapi32.dll ещё

%-) Вот тут как раз была проблема. При попытке GetUserName() такое начиналось...


 
Ketmar ©   (2006-10-21 08:37) [15]

>[14] Чапаев(c) 21-Oct-2006, 08:28
>> потому как подобную DLL на Delphi написать проблематично.
>Писал. Работала.
дык это... уровень "начинающих", вообще-то. потому и поясняю так же. я ж не сказал "нельзя". %-)

>> ну, разве только advapi32.dll ещё
>%-) Вот тут как раз была проблема. При попытке GetUserName(
>) такое начиналось...
я её упомянул только из-за работы с реестром. и потому, что системные модуля всё равно её притянут. %-)


 
Жуков Олег   (2006-10-21 15:36) [16]

Вот ещё интересный параметр
HKEY_CLASSES_ROOT\exefile\shell\open\command

там по умолчанию "%1" %*. Если поменять %1 на твою программу, то вместо исходного приложения будет запускаться именно она, а путь к исходному приложению может быть параметром.


 
Ketmar ©   (2006-10-21 17:30) [17]

>[16] Жуков Олег 21-Oct-2006, 15:36
>запускаться именно она, а путь к исходному приложению
>может быть параметром.
только для ShellExecute().



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.048 c
4-1153140375
Roobee1
2006-07-17 16:46
2006.12.03
Перехват данных на LPT


15-1163143166
Орион
2006-11-10 10:19
2006.12.03
Служба тех. поддержки американского хостинга


2-1163434889
Кевларвестов Семен
2006-11-13 19:21
2006.12.03
Ошибка при компиляции/билде из-за RegQueryValueEx


15-1163157805
Elen
2006-11-10 14:23
2006.12.03
Конвертация 3D


1-1161334225
alexvan
2006-10-20 12:50
2006.12.03
Вопрос по TCustomDBGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский