ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Тотальный контроль на Delphi (статья)
  #1  
Старый 30.09.2006, 15:49
Аватар для Utochka
Utochka
Постоянный
Регистрация: 21.12.2005
Сообщений: 620
Провел на форуме:
1867718

Репутация: 268


По умолчанию Тотальный контроль на Delphi (статья)

вот от нех делать решил написать статью ) если это можно так назвать.
Сразу говорю ненадо реплик типа "Да это каждый ламер знает!" "Гавно накодил!" статья была расчитана на тех кто незнает.

Ку! Сегодня я вам поведаю о том как можно за несколько десятков минут написать программу с помощью которой мы сможем отследить кто и когда включал ваш комп либо заходил в ваш профиль ).



Ну что приступим, писать мы будем на Delphi, поэтому стоит запустить именно его.



Создадим новый проект.



Для начала поясню принцип работы программы. Значит, наша программа будет запускаться в невидимом для пользователя режиме, а иначе нах тогда она нужна. После ее запуска программа будет записывать в файл некие начальные данные, а именно:



User – имя пользователя

Start Date – дата включения компьютера или входа в профиль

Start Time – время включения компьютера или входа в профиль





Ну, вот для начала хватит. После того как эти данные были внесены в наш лог, программа просто висит в процессах и ждет сообщения о ее закрытии. После того как программе приходит такое сообщение она снова обращается к нашему логу и вносит туды следующие данные:



Active – время в течении которого был включен компьютер или активен ваш профиль

Close – время закрытия профиля или выключения компьютера



А вот как будет выглядеть наш лог в целом.





Код:
<<<<< ------ New Session ----- >>>>>

  User: Иван

  Start Date: 29.09.2006

  Start Time: 17:39:14

  Active: 5:16:35

  Close: 22:55:49

  <<<<< ------ Close Session ------ >>>>>


Ну вот с принципом работы программы мы разобрались, теперь переходим непосредственно к кодингу.



Опишем несколько глобальных переменных, которые нам понадобятся в дальнейшем





Код:
var

    Form1: TForm1;

    UserName,result:string;

    UserNameLen:Dword;

    buff:TstringList;					 - буфер для временного хранения данных

    timestart:Tdatetime;			   - начало отсчета времени при включении компьютера или 

  												    входе в профиль пользователя


Такс с переменными все понятно. Следующим шагом будет написание процедуры для определения имени пользователя, под которым был совершен вход в систему







Код:
procedure user_name;

  begin

  UserNameLen:=255;

  SetLength(userName, UserNameLen);

   if GetUserName(PChar(UserName), UserNameLen) then

   Result:=Copy(UserName,1,UserNameLen - 1)

   else

   Result:='Nobody';   //пользователь не определен поэтому Nobody (нет тела =)

  end;


следующая процедура внесения начальных данных в наш лог файл, назовем ее старт





Код:
procedure start;

  begin

  buff:=Tstringlist.Create;  //создадим стринглист

  buff.LoadFromFile(‘C:\stat.txt');   //открываем файл

  buff.Add('<<<<< ------ New Session ----- >>>>>'); //запишем строку  в файл

  buff.add('User: '+result);	   // запишем имя пользователя

  buff.Add('Start Date: '+datetostr(date)); // запишем дату открытия профиля либо включения компа

  buff.add('Start Time: '+timetostr(timestart)); // время открытия профиля либо включения компа

  buff.SaveToFile(‘C:stat.txt'); // сохраним данные в файл

  buff.Free;

  end;




ну, вот теперь начальные данные у нас есть.



По событию формы FormClose пишем следующий код, который будет записывать конечные данные при закрытии программы.





Код:
buff:=Tstringlist.Create;

  buff.LoadFromFile('C:\stat.txt');

  buff.Add('Active: '+timetostr(Time-Timestart));		//время работы компьютера либо профиля

  buff.add('Close: '+timetostr(Time));						  // время выключения компьютера или выхода из профиля

  buff.Add('<<<<< ------ Close Session ------ >>>>>');

  buff.add('');				// для удобства чтения лога

  buff.SaveToFile('C:\stat.txt'); //сохраним данные


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





Код:
procedure ProcessMessages;

  var

   Msg: TMsg;

  begin

  while ProcessMessage(Msg) do;

  end;

   

  //нашу прогу закрывают

  procedure TForm1.WMQueryEndSession (var Msg : TWMQueryEndSession);

  begin

  buff:=Tstringlist.Create;

  buff.LoadFromFile('C:\stat.txt');

  buff.Add('Active: '+timetostr(Time-Timestart));

  buff.add('Close: '+timetostr(Time));

  buff.Add('<<<<< ------ Close Session ------ >>>>>');

  buff.add('');

  buff.SaveToFile('C:\stat.txt');

  Msg.Result:=1;

  end;
все функции мы написали, осталось только дать им управления, это мы сделаем по созданию нашей формы (FormCreate), ну и за одно пропишем нашу программу в автозапуск иначе она будет бесполезной )



Не забудьте внести модуль registry в раздел uses иначе вы не сможете работать с реестром!





Код:
procedure TForm1.FormCreate(Sender: TObject);

  var reg:Treginifile;

  begin

    reg:=TRegIniFile.Create('');

    reg.RootKey:=HKEY_Current_User;

    reg.WriteString('SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','Sec_bot',application.ExeName);  //прописываем в автозапуск

    reg.Destroy;

   

  timestart:=time;  //присваиваем время запуска

  user_name; //определяем имя пользователя

  start; //заносим начальные данные в файл

  end;




ну вот наша программа и готова, а да чуть не забыл последний штрих )) скрываем программу от глаз пользователя





Код:
procedure TForm1.FormActivate(Sender: TObject);

  begin

  ShowWindow(Handle,SW_HIDE);

  ShowWindow(Application.Handle,SW_HIDE);

  end;


ну, вот теперь наша программа невидима, но в процессах она есть! Скрытие программы из процессов потребовало бы включения в программу специально написанной DLL.



Осталось только откомпилить, запустить и иногда посматривать логи ) Конечно программа не идеальна и не претендует на такое звание )))) но это лишний повод стремиться к лучшему



С вами был NeX aka Neo.
Специально для Hackedpro.org
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хакер и закон! SladerNon Болталка 17 12.11.2009 09:42
(Статья) Свой брут для почты Paranoik E-Mail 12 21.02.2008 19:58
.:Join-им 2 exe-шника ручками (using Delphi):. xShreKx Авторские статьи 6 12.06.2006 16:22



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ