Hack x Crack - Comunidad de Seguridad informática
Programación => Visual Basic => Mensaje iniciado por: Seyn en Enero 05, 2012, 10:12:35 pm
-
Bueno, después de tanto tiempo aquí sin aportar nada (por que no sabía absolutamente nada, pobre de mi que venía en busca de sabiduría sin poder dar nada a cambio) aporto pequeños programas.. Con comentarios para los que empiecen o quieran empezar con Visual Basic. Pongo el código fuente, y una imagen de como están organizado los Labels, Buttons y demás..
Aun que sirva poco.. De momento no sé más así pues.. De momento ésto es lo que puedo ofrecer de conocimiento, a medida vaya aprendiendo, iré haciendo más aportes.
Ésto es una broma, cutre, pero hecha para asustar, no hace nada malo, solamente sale esa pantalla diciendo que formateará C: y pasado el tiempo que se haya puesto saldrá una la imagen que se haya elegido, el codigo está hecho para que la única salida posible sea Alt + F4, o por el Administración de tareas.
Cuando el ratón se acerca al botón "Cancelar" Se mueve aleatoriamente por la pantalla de manera que no puedas llegar a alcanzarlo nunca, y la "cruz" de cerrar, está inhabilitada.
Public Class Form1
Dim salir As Boolean
Dim Contador As Byte
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Load
Me.TimerPorc.Enabled = True
Me.TimerPorc.Interval = 3
'Milisegundos.
Me.ProgressPorc.Minimum = 0
Me.ProgressPorc.Maximum = 100
Me.ProgressPorc.Step = 1
Contador = 0
End Sub
Private Sub TimerPorc_Tick(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles TimerPorc.Tick
Me.ProgressPorc.Increment(1)
'TODO Detectar el límite del contador y parar el Timer.
'Contador = contador + 1
'Me.LabelPorc.Text = "Porcentaje de formateo: " + Contador.ToString
Me.LabelPorc.Text = "Porcentaje de formateo: " + _
Me.ProgressPorc.Value.ToString() + "%"
If Me.ProgressPorc.Value = Me.ProgressPorc.Maximum Then
Me.TimerPorc.Enabled = False
'Msgbox("¡BOOOOM!")
'TODO Mostrar pantalla en negro o azul.
Form2.ShowDialog()
End If
End Sub
Private Sub Form1_FormClosing(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.FormClosingEventArgs) _
Handles MyBase.FormClosing
'Msgbox("ok")
'Sólo se cancela la salida si es el usuario el que cierra.
If salir = False Then e.Cancel = True
'If Not salir Then e.Cancel = True
'e.Cancel = Not salir
End Sub
Private Sub Button1_MouseEnter(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles Button1.MouseEnter, _
Button1.MouseMove, _
Button1.MouseHover
'MsgBox("ok")
Dim posAleatX, posAleatY As Integer
Dim AnchoP, AltoP, AnchoF, AltoF As Integer
Dim Aleatorio As Random
AnchoF = Me.Width
AltoF = Me.Height
AltoP = Screen.PrimaryScreen.Bounds.Height
AnchoP = Screen.PrimaryScreen.Bounds.Width
'MsgBox(AnchoP.ToString() + " - " + AltoP.ToString())
Aleatorio = New Random
posAleatX = Aleatorio.Next(0, AnchoP - AnchoF)
posAleatY = Aleatorio.Next(0, AltoP - AltoF)
'Me.Location.X = posAleatX
Me.Left = posAleatX
Me.Top = posAleatY
End Sub
Private Sub Button1_KeyPress(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) _
Handles Button1.KeyPress
If e.KeyChar = "q" Or e.KeyChar = "Q" Then
salir = True
Me.TimerPorc.Enabled = False
Me.Close()
End If
End Sub
End Class
(http://www.imgjoe.com/x/broma.png)
Éste es un simulador de cajero, sólo acepta que entren datos acabados en 5 o en 0, muestra los billetes que le pides en la menor cantidad posible.
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Load
MsgBox("Escribe los datos númericos sin comas")
End Sub
Private Sub ButtonRetirar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonRetirar.Click
Dim dinero, C200, R200, C100, R100, C50, R50, C20, R20, C10, R10, C5, R5 As Integer
dinero = Me.TextDineroaRetirar.Text
If Not dinero Mod 5 = 0 Then
MessageBox.Show("El número debe ser múltiplo de 5 o de 10")
Exit Sub
End If
Try
If dinero < 10 Or dinero > 3000 Then
MessageBox.Show("El rango de valores permitido es de: 10€ hasta 3.000€", _
"Error de Rago", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
C200 = dinero \ 200
R200 = dinero Mod 200
Me.LabelB200.Text = C200
C100 = R200 \ 100
R100 = R200 Mod 100
Me.LabelB100.Text = C100
C50 = R100 \ 50
R50 = R100 Mod 50
Me.LabelB50.Text = C50
C20 = R50 \ 20
R20 = R50 Mod 20
Me.LabelB20.Text = C20
C10 = R20 \ 10
R10 = R20 Mod 10
Me.LabelB10.Text = C10
C5 = R10 \ 5
R5 = R10 Mod 5
Me.LabelB5.Text = C5
Catch ex As Exception
MessageBox.Show("Error: " + ex.Message, "Error", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Private Sub ButtonBorrar_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles ButtonBorrar.Click
Me.TextDineroaRetirar.Text = ""
Me.LabelB200.Text = ""
Me.LabelB100.Text = ""
Me.LabelB50.Text = ""
Me.LabelB20.Text = ""
Me.LabelB10.Text = ""
Me.LabelB5.Text = ""
End Sub
Private Sub TextDineroaRetirar_TextChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles TextDineroaRetirar.TextChanged
Me.TextDineroaRetirar.MaxLength = 4
End Sub
Private Sub Label7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LabelB200.Click
End Sub
End Class
(http://www.imgjoe.com/x/cajeroeqe.png)
Ésto es un calendario un tanto raro, solo puedes mirar los días que ya has pasado, y el día en el que te encuentras, no puedes mirar al futuro..
Y si seleccionas un día de inicio y uno de final, te dice los días que hay entre medio.
Public Class FormCalendario
Private Sub FormCalendario_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Load
With Me.MonthCalendarCalendario
.ShowWeekNumbers = True
.MinDate = "01/01/2011"
.MinDate = "01/01/" + Date.Today.Year.ToString()
.MaxDate = Date.Today()
.MaxSelectionCount = 1
End With
Me.LabelHora.Text = Date.Now.ToLongTimeString()
'Me.TimerHora.Enabled = True
Me.TimerHora.Start()
Me.TimerHora.Interval = 1000
End Sub
Private Sub MonthCalendarCalendario_DateSelected(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.DateRangeEventArgs) _
Handles MonthCalendarCalendario.DateSelected
'Me.LabelDia.Text = e.Start
Me.LabelDia.Text = Me.MonthCalendarCalendario.SelectionStart
'Este me dará el número del día de la semana
'(el domingo es el 0 y el sábado es el 6)
'Me.LabelDS.Text = e.Start.DayOfWeek
Me.LabelDS.Text = e.Start.ToString("dddd, dd 'de' MMMM 'de' yyyy")
End Sub
Private Sub TimerHora_Tick(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles TimerHora.Tick
Me.LabelHora.Text = Date.Now.ToLongTimeString()
End Sub
Private Sub ButtonRestar_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles ButtonRestar.Click
Dim FechaIni, FechaFin As Date
Dim Resta As Long
'Accedo a las fechas seleccionadas.
'NOTA: Nos quedamos sólo con la fecha (no queremos la hora)
'Ya que "parece" no calcular bien si tiene fecha+hora.
FechaIni = Me.DateTimePickerFI.Value.ToLongDateString()
FechaFin = Me.DateTimePickerFF.Value.ToLongDateString()
DateAndTime.DateDiff(DateInterval.Day, FechaIni, FechaFin)
Me.LabelResta.Text = Resta.ToString("0 Días")
End Sub
End Class
(http://www.imgjoe.com/x/calendariti.png)
Éste es un conversor temperaturas entre grados Kelvin, grados Fahrenheit, y grados Celsius. Todo son textbox de entrada y de salida.
Public Class TxtBoxC
'Almacenará una "C", una "F" o una "K".
Dim Puntero As Char
'Evento de carga del formulario.
'Aqui podemos inicializar variables o darle a los objetos
'propiedades por código.
Private Sub TxtBoxC_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Load
'Con la palabra "Me" accedemos a todo lo que tiene el formulario.
'Maxlength fija un numero en concreto de caracteres.
Me.TextBoxC.MaxLength = 8
Me.TextBoxC.Text = "0,00"
Me.TxtBoxK.MaxLength = 8
Me.TxtBoxK.Text = "273,15"
Me.TxtBoxF.MaxLength = 8
Me.TxtBoxF.Text = "32,00"
'Propiedad del formulario que permite indiciar qué botón
'es considerado como botón aceptar cuando el usuario pulsa el "Intro".
Me.AcceptButton = Me.ButtonConvertir
End Sub
Private Sub ButtonConvertir_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles ButtonConvertir.Click
Dim Grados, Conv1, Conv2 As Double
Try
Select Case Puntero
Case "C" 'Dato de entrada Centígrados
'Si el dato en la caja de texto (string) representa
'un número, se convierte implícitamente a Double
Grados = Me.TextBoxC.Text
If Grados < -273.15 Or Grados > 3000 Then
MessageBox.Show("El rango de valores permitido es: -273.15 hasta 3.000 ºC", _
"Error de Rango", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
Me.TextBoxC.Text = "0,00"
Else
'Calcular los resultados (la conversión a las otras unidades)
Conv1 = (1.8) * Grados + 32
Conv2 = Grados + 273.15
'Mostrar resultados.
Me.TxtBoxF.Text = Conv1.ToString("#,##0.##")
Me.TxtBoxK.Text = Conv2.ToString("#,##0.##")
End If
Case "F" 'Dato de entrada Fahrenheit
Grados = Me.TxtBoxF.Text
Conv1 = (Grados) - 32 / 1.8
'Conv2 = (Grados - 32) / 1.8 + 273.15
Conv2 = Conv1 + 273.15
Me.TextBoxC.Text = Conv1.ToString("#,##0.##")
Me.TxtBoxK.Text = Conv2.ToString("#,##0.##")
Case "K" 'Dato de entrada Kelvin
Grados = Me.TxtBoxK.Text
If Grados < -459.67 Or Grados > 3000 Then
MessageBox.Show("El rango de valores permitido es: -459.67 hasta 3.000 ºC", _
"Error de Rango", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
Conv1 = Grados - 273.15
Conv2 = 9 * (Grados - 273.15) / +32
Me.TextBoxC.Text = Conv1.ToString("#,##0.##")
Me.TxtBoxF.Text = Conv2.ToString("#,##0.##")
End Select
Catch ex As Exception
MessageBox.Show("Error: " + ex.Message, "Error", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles TextBoxC.TextChanged
Puntero = "C"
End Sub
Private Sub TxtBoxF_TextChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles TxtBoxF.TextChanged
Puntero = "F"
End Sub
Private Sub TxtBoxK_TextChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles TxtBoxK.TextChanged
Puntero = "K"
End Sub
Private Sub TextboxCFK_keypress(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) _
Handles TextBoxC.KeyPress, _
TxtBoxF.KeyPress, _
TxtBoxK.KeyPress
'If e.keychar = "Q" then e.key char = ""
'if char.isletter(e.keychar) then e.keychar = ""
'If e.keychar = vbBack then
'No permitir la pulsación de caracteres si no son dígitos númericos,
'pero si permitir la tecla Retroceso.
'Problemas: Se puede pulsar mas de una "," o más de un "-".
If Not Char.IsDigit(e.KeyChar) And _
e.KeyChar <> vbBack And e.KeyChar <> "," _
And e.KeyChar <> "-" _
Then e.KeyChar = ""
End Sub
End Class
(http://www.imgjoe.com/x/conversor.png)
Éste es uno que te dice los años Bisiestos desde el año 1582 hasta el año 3000, pero es sólo en Main.
Module Module1
'TODO Situaciones a controlar:
'1- Que sean números.
'2- Que no sean años menores que 1582
'3- Que no pase del año 3000.
'4- Que el año final sea igual o mayor que el año inicial.
Sub Main()
Dim TotalBis, AnyIni, AnyFin, Resp As Integer
Dim Lista As String
'TODO Controlar los Exit Sub de los If.
'TODO Hacer el listado.
'El Do...Loop de este ejercicio es un bucle INFINITO.
'Salimos de él gracias al Exit Sub de la pregunta de salida.
Do
'Control de excepciones (errores) con Try ... Catch.
'En la zona (bloque) Try pondremos el código que puede ser
'que provoque algún tipo de error.
'En la zona o zonas (bloque) Catch es donde nosotros capturamos
'los posibles errores (excepciones).
'El tipo Exception es CUALQUIER error que se produzca en la aplicación.
Try
Do
AnyIni = InputBox("Introduce el Año Inicial de búsqueda:", "Año Inicial")
If AnyIni < 1582 Or AnyIni > 3000 Then
MsgBox("Error: El año debe estar entre 1582 y 3000.", _
MsgBoxStyle.Critical, "Error")
'Exit Sub
Else
'Sólo sale si lo hace bien.
Exit Do
End If
Loop
Do
'TODO posible uso de AnyIni en el If.
'AnyFin = InputBox("Introduce el Año Final de búsqueda:", "Año Final")
AnyFin = InputBox("Introduce el Año Inicial de búsqueda:", "Año Inicial")
If AnyFin < AnyIni Or AnyFin > 3000 Then
MsgBox("Error: El año estar entre el año inicial y 3000.", _
MsgBoxStyle.Critical, "Error")
Exit Sub
End If
If AnyIni > AnyFin Then
MsgBox("Error: El año inicial no puede superar el año final.", _
MsgBoxStyle.Critical, "Error")
'Exit Sub
Else
Exit Do
End If
Loop
TotalBis = 0
'Lista = Lista + "aaaa"
'Lista += "aaaa"
Lista = "Listado de los años Bisiestos" + vbNewLine
Lista += "Desde el año " & AnyIni & " hasta el año " & AnyFin & vbNewLine & vbNewLine
For Any = AnyIni To AnyFin
If Date.IsLeapYear(Any) = True Then
'TotalBis = TotalBis + 1
TotalBis += 1
Lista += Any.ToString(" 0 ")
End If
Next
Lista += vbNewLine + "La cantidad de años bisiestos es:" + vbTab + TotalBis.ToString()
MsgBox(Lista, MsgBoxStyle.Information, "Resultado")
'MsgBox(Date.IsLeapYear(136))
Catch ex As InvalidCastException 'Control de conversión de tipo
MsgBox("Error: El dato debe ser númerico." + vbNewLine + _
ex.Message, _
MsgBoxStyle.Critical, "Error")
Catch ex As OverflowException 'Control de desbordamiento de la variable (Integer).
'Catch ex As Exception
MsgBox("Error: El dato debe ser menor o igual que 3000." + vbNewLine + _
ex.Message, _
MsgBoxStyle.Critical, "Error")
End Try
Resp = MsgBox("¿Quieres salir?", MsgBoxStyle.YesNo Or MsgBoxStyle.Question, "Salir")
If Resp = MsgBoxResult.Yes Then
Exit Sub
'Exit Do
End If
Loop
End Sub
End Module
Bueno, pues de momento, ésto es lo que tengo, espero que alguien pueda aprovecharlo, y que sea útil.
Y me gustaría añadir, que, si alguien me pudiera enseñar el código de un keylogger simple, me haría un gran favor, por que yo me pongo delante del VB, y no sé por donde empezar, me quedo bloqueado, a aparte, no tengo el suficiente conocimiento como para poder hacerlo sin ayuda.
Muchas gracias :D
-
un keylogger en vb es muy fácil de hacer.
esto puede servirte:
http://es.scribd.com/doc/65134425/Creacion-de-Un-Keylogger-en-Vb
-
un keylogger en vb es muy fácil de hacer.
esto puede servirte:
http://es.scribd.com/doc/65134425/Creacion-de-Un-Keylogger-en-Vb
Muchas gracias de verdad :D