Hack x Crack - Comunidad de Seguridad informática

Programación => Visual Basic => Mensaje iniciado por: Seyn en Enero 05, 2012, 10:12:35 pm

Título: Códigos Visual Basic simples.
Publicado 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.
Código: [Seleccionar]
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.

Código: [Seleccionar]
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.

Código: [Seleccionar]
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.
Código: [Seleccionar]
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.


Código: [Seleccionar]
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




Título: Re:Códigos Visual Basic simples.
Publicado por: tzspy en Enero 06, 2012, 12:06:56 am
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
Título: Re:Códigos Visual Basic simples.
Publicado por: Seyn en Enero 06, 2012, 01:12:50 am
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