Visitas por el Mundo:

Mostrando las entradas con la etiqueta Códigos Fuente de Visual Basic. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Códigos Fuente de Visual Basic. Mostrar todas las entradas

Conversor de sistemas numéricos

Bueno gente, este es un simple sistema que permite el paso de cualquiera de los cuatro sistemas (binario, octal, decimal y hexadecimal) a cualquiera de los mismos.

El código es simple y no presenta problemas...

Una pantalla del Programa:




Haz click aquí para descargar el archivo.


Bueno eso fue todo, este es el conversor de sistemas, para VB 6.0, nos vemos, chau...
Codigo:
Dim b As Integer
Const NumChars = "0123456789ABCDEF"

Rem Transforma un número en decimal
Rem S = Número (cualquier base)
Rem NumBase = Número de la Base
Rem 2=Binario, 8=Octal, 10=Decimal, 16=Hexadecimal
Rem Si hay un error, retorna -1.
Function ToDec(ByVal S As String, ByVal NumBase As Integer) As Long
Dim R As Long, I As Integer, P As Integer
R = -1
S = UCase(S)
If (NumBase = 2) Or (NumBase = 8) Or (NumBase = 10) Or (NumBase = 16) Then
R = 0
For I = 1 To Len(S)
P = InStr(NumChars, Mid(S, I, 1))
If (P = 0) Or (P > NumBase) Then
R = -1
Exit For
End If
R = R + (P - 1) * (NumBase ^ (Len(S) - I))
Next I
End If
ToDec = R
End Function


Rem Transforma un número decimal en otras bases
Rem N = Número a convertir
Rem NumBase = Número de la Base
Rem 2=Binario, 8=Octal, 10=Decimal, 16=Hexadecimal
Rem Si hay un error, retorna una cadena vacía.
Function FromDec(ByVal N As Long, ByVal NumBase As Integer) As String
Dim S As String
S = ""
If ((NumBase = 2) Or (NumBase = 8) Or (NumBase = 10) Or (NumBase = 16)) And (N >= 0) Then
Do
S = Mid(NumChars, (N Mod NumBase) + 1, 1) + S
N = Fix(N / NumBase)
Loop Until (N = 0)
End If
FromDec = S
End Function


Rem Convierte de Cualquier base a cualquier base.
Rem N = Núero a convertir
Rem fromBase = Base de origen (2, 8, 10, 16)
Rem toBase = base destino (2, 8, 10, 16)
Function Convert(ByVal N As String, ByVal fromBase As Integer, ToBase As Integer) As String
Dim Nm As Long, S As String
Nm = ToDec(N, fromBase)
If (Nm = -1) Then
S = ""
Else
S = FromDec(Nm, ToBase)
End If
Convert = S
End Function

Private Sub Command1_Click()
Text2.Text = Convert(Val(Text1.Text), Combo1.ItemData(Combo1.ListIndex), Combo2.ItemData(Combo2.ListIndex))
End Sub

Private Sub Form_Load()
b = 1

Combo1.Clear
Combo1.AddItem "Binario"
Combo1.ItemData(Combo1.ListCount - 1) = 2
Combo1.AddItem "Octal"
Combo1.ItemData(Combo1.ListCount - 1) = 8
Combo1.AddItem "Decimal"
Combo1.ItemData(Combo1.ListCount - 1) = 10
Combo1.AddItem "Hexadecimal"
Combo1.ItemData(Combo1.ListCount - 1) = 16

Combo2.Clear
Combo2.AddItem "Binario"
Combo2.ItemData(Combo2.ListCount - 1) = 2
Combo2.AddItem "Octal"
Combo2.ItemData(Combo2.ListCount - 1) = 8
Combo2.AddItem "Decimal"
Combo2.ItemData(Combo2.ListCount - 1) = 10
Combo2.AddItem "Hexadecimal"
Combo2.ItemData(Combo2.ListCount - 1) = 16

End Sub

Private Sub Timer1_Timer()
For I = 1 To 288 Step 10
Label3.Left = Label3.Left + b
If Label3.Left >= (Form1.Width - 2190) Or Label3.Left <= 120 Then b = b * -1 End If Next I End Sub


Ante cualquier inconveniente comenten explicando su duda o problema. Si se les ocurre sugerir alguna idea para mejorar este código fuente, bienvenida sea, solo haz el comentario.

Espero que les haya gustado y hayan aprendido algo nuevo en este código fuente. Saludos, LOOk_As.

KeyLogger by Pelonchas

Hola gente! aprovecho este espacio para saludarlos y presentarme. I'm Pelonchas de Posadas Misiones, llevo 20 y estoy estudiando Ing. en Inf. Bueno ya fue, paso a contar que estuve mirando el Keylogger de Chuky y me pareció que había cosas para cambiar, así es como salio una nueva versión hecha por mi. El aspecto visual casi no lo toque, cabe aclarar que si cambia el color o algo de eso es porque no veía bien en mi monitor ;)

Bueno básicamente el alma del programa de Chuky es un Timer donde se llama a la función "GetAsyncKeyState" que está dentro de la librería "User32". Esta función devuelve "-32767" en caso de que el código-carácter que se indico en el argumento de dicha función, corresponda con la tecla presionada en el teclado. (En realidad la función es mucho mas complicada que solo eso, pero la información en español es escasa o busque mal, como sea no tengo intención de describirla en profundidad).

Bueno ya tenemos el código-carácter de la tecla presionada y ahora es cuando diferimos con Chuky, el plantea la idea de mediante un "Select Case" mandar a mostrar el carácter correspondiente. Esto es muy tedioso porque hay 256 posibilidades y no estoy dispuesto a hacer cada una, entonces encontré una serie de funciones, también de "User32", que ya hacían esto. La única que pude "hacer andar" fue "MapVirtualKey" que en pocas palabras traduce el código del carácter en el carácter, valga la repetición y no la redundancia.

La otra gran diferencia con el de Chuky es que el hace una función nueva por cada carácter a mostrar, yo plantee una sola función a la que se le pasa como argumento el carácter a mostrar y lo hace.

Cambios menores:
* Me pareció que si se podía borrar lo que se “tecleaba” no cumplía la función de Keylogger, entonces opte por sacar la función “resta” que permitía borrar lo ingresado.
* Cambié las teclas para mostrar y ocultar el formulario. Ahora se hace ambas con F10.
* Para funcionar el botón “Borrar Todo” era necesario otro Timer que me pareció innecesario, opte por quitarlo (al Timer) y además incluí un MsgBox para confirmar que se quiere borrar todo.
* “ON/OFF” servían para posibilitar la copia de lo “capturado” hasta el momento, para hacerlo habilitaban y deshabilitaban la edición del TextBox. Esto me pareció malo porque se podía adulterar accidentalmente lo capturado; en fin mi idea fue eliminar esos dos botones y puse uno solo que en cualquier momento que se desee se lo puede presionar y se guardará en el Clipboard/porta papeles lo seleccionado/sombreado en el TextBox (en caso de no seleccionar nada se copia todo el contenido).
* Los botones “Prendido” y “Apagado” los fusioné en uno solo y cambié los Caption’s porque me sonaba feo ;)


Aclaración: subo dos versiones, una Simple y otra Extendida. La simple contiene lo que explique hasta ahora. La Extendida es lo mismo más todas las teclas que se pueden presionar que no traduce la función. Es decir teclas como "[F1]" "[F2]" "[Enter]" "[Esc]" también los botones del mouse, no indica la posición pero si que botón fue presionado. En la versión simple las teclas que no se pueden traducir las pone como "|".


Haz click en los link para poder descargar los archivos por separado.

________________________________________

Versión SIMPLE        |        Versión EXTENDIDA

________________________________________


Bueno creo que eso es todo lo que toqué. Espero haber sido claro y ojala se entienda que los cambios no son por creerme superior a Chuky sino que es mi versión de cómo veo la solución de este problema.

Y ahora si plagiando a Chuky: Ante cualquier inconveniente comenten explicando su duda o problema. Si se les ocurre sugerir alguna idea para mejorar este código fuente, bienvenida sea, solo haz el comentario.

Espero que les haya gustado y hayan aprendido algo nuevo en este código fuente. Saludos, Pelonchas.

Pasar de Binario a Texto Plano

Hola de nuevo. Les comento que estos últimos días no estuve mucho tiempo en la PC como para poder subir un post nuevo. Así que subo uno ahora un poco simple pero post al fin. Desde ya quiero agradecer a aquellos que en esta semana estuvieron divulgando el Blog, Y gracias a esto la comunidad ya es internacional, pasando por Colombia, Venezuela, España, Perú, República Dominicana, Guatemala, Ecuador, y Argentina. Espero que se pueda llegar a ampliar bastante la comunidad. Ahora sin más preámbulos, procedo a centrarme más en el título del post.

ALGUNAS GENERALIDADES:

Binario:
El sistema binario, en matemáticas e informática, es un sistema de numeración en el que los números se representan utilizando solamente las cifras cero y uno (0 y 1). Los ordenadores trabajan internamente con dos niveles de voltaje, por lo que su sistema de numeración natural es el sistema binario (encendido 1, apagado 0).

Código ASCII:
El código ASCII (acrónimo inglés de American Standard Code for Information Interchange — (Código Estadounidense Estándar para el Intercambio de Información), pronunciado generalmente [áski], es un código de caracteres basado en el alfabeto latino tal como se usa en inglés moderno y en otras lenguas occidentales. Fue creado en 1963 por el Comité Estadounidense de Estándares (ASA, conocido desde 1969 como el Instituto Estadounidense de Estándares Nacionales, o ANSI) como una refundición o evolución de los conjuntos de códigos utilizados entonces en telegrafía. Más tarde, en 1967, se incluyeron las minúsculas, y se redefinieron algunos códigos de control para formar el código conocido como US-ASCII.
El código ASCII utiliza 7 bits para representar los caracteres, aunque inicialmente empleaba un bit adicional (bit de paridad) que se usaba para detectar errores en la transmisión. A menudo se llama incorrectamente ASCII a otros códigos de caracteres de 8 bits, como el estándar ISO-8859-1 que es una extensión que utiliza 8 bits para proporcionar caracteres adicionales usados en idiomas distintos al inglés, como el español.


¿Cómo se relacionan el Código ASCII y el binario?

Cada caracter del Código ASCII es correspondiente a un número de referencia, por ejemplo el número de referencia de la letra minúscula "a" es 97 y se puede comprobar escribiendo en el num. pad la tecla "9" seguida por la "7" manteniendo en todo momento la tecla Alt, y soltándola cuando se hayan escrito todos los números.
También sabemos que existen hasta 255 caracteres en el código ASCII, así que se procede en representar estos números de referencia a través de código binario de 8 bit.


Haz click aquí para bajar el archivo.



Una Pantalla del Programa:



Modo de uso:
Más simple imposible, ingrese en la primer caja de texto, en sistema binario, lo que desea traducir de binario a texto plano. Presione el botón "Pasar". Y en la segunda caja de texto aparecerá el mensaje traducido a texto plano.


A tener en cuenta: Al momento de ingresar el código binario que contiene el mensaje que se desea traducir, tener en cuenta que dicho código debe ser de 8 bits cada caracter, separado por espacios, de lo contrario podrían surgir inconvenientes.



Ante cualquier inconveniente comenten explicando su duda o problema. Si se les ocurre sugerir alguna idea para mejorar este código fuente, bienvenida sea, solo haz el comentario.

Espero que les haya gustado y hayan aprendido algo nuevo en este código fuente. Saludos, Chuky.

KeyLogger by Chuky

Como su nombre lo indica un Keylogger es un programa que registra y graba la pulsación de teclas (y algunos también clicks del mouse). La información recolectada será utilizada luego por la persona que lo haya instalado. Actualmente existen dispositivos de hardware o bien aplicaciones (software) que realizan estas tareas.

Los Keyloggers físicos son pequeños dispositivos que se instalan entre nuestra computadora y el teclado. Son difíciles de identificar para un usuario inexperto pero si se presta atención es posible reconocerlos a simple vista. Tienen distintas capacidades de almacenamiento, son comprados en cualquier casa especializada y generalmente son instalados por empresas que desean controlar a ciertos empleados. Cabe aclarar que esta forma de actuar puede traer problemas legales a quien lo instala ya que registrar a un usuario mediante este accionar puede interpretarse como una violación a su privacidad. Es aquí donde cobra relevancia una política de seguridad clara, puesta por escrito y firmada por el usuario.

Con respecto a las keyloggers por software, actualmente son los más comunes, muy utilizados por el malware orientado a robar datos confidenciales o privados del usuario. Como es de imaginar, la información obtenida es todo lo que el usuario ingrese en su teclado como por ejemplo documentos, nombres de usuarios, contraseñas, números de tarjetas, PINes, etc. Esto explica el porque de su gran éxito y utilización actual ya que como sabemos el malware, cada vez más orientado al delito, puede utilizar esta herramienta para proporcionar información sensible del usuario a un atacante.


Haz click aquí para bajar el archivo.


Una Pantalla del Programa:



Modo de uso:
Para poder comenzar a grabar en la caja de texto lo que se ingresa en el teclado, primero debemos presionar en el botón de "Prendido". Luego de haber hecho esto, ya podemos ocultar la ventana para que no levante sospechas presionando la tecla "F10", de esta forma todo lo que escribamos a través del teclado, quedará registrado en la caja de texto, y para volver a verlo (restaurar la ventana), debemos presionar "F9", de esta forma observaremos que todo lo ingresado del teclado quedará registrado en dicha caja de texto, en el caso que no queramos que se sigua tomando lo que se escribe por el teclado, deberemos apretar en el botón "Apagado". Si se desea copiar el texto directamente, procedemos a presionar el botón "ON" y acto siguiente nos habilita la caja de texto para que podemos seleccionar el texto y copiarlo y pegarlo en otro lugar. Para volver a deshabilitar la caja de texto, presionamos "OFF". Con el botón "Borrar Todo", podremos establecer que el contenido de la caja de texto sea vacio o nulo. Y para finalizar, presionando en el botón "Salir", cerramos el programa.


A tener en cuenta: El programa no toma ningún caracter especial, ni tampoco diferencia mayúsculas; solo es sensible a letras minúsculas sin tilde y números. Pero leyendo un poco el código fuente lo pueden renovar y hacer que permita tomar dichos caracteres que actualmente el programa no tiene en cuenta, solo deben saber que número de activación toma cada tecla y cada conbinación de teclas, y luego solo realizar el procedimiento adecuado, es sencillo pero largo.



Ante cualquier inconveniente comenten explicando su duda o problema. Si se les ocurre sugerir alguna idea para mejorar este código fuente, bienvenida sea, solo haz el comentario.

Espero que les haya gustado y hayan aprendido algo nuevo en este código fuente. Saludos, Chuky.

Ejemplo de un Encriptador

Con la aparición de Internet y la mayor importancia que se le va dando a la información día tras día , la tecnología que antes era utilizada sólo por los Militares o Gobiernos ha cobrado mayor importancia, y por ende se ha convertido más segura gracias a los nuevos métodos de protección cada vez más difíciles o casi imposibles de derribar.

¿Que es Encriptación ?

Toda encriptación se encuentra basada en un Algoritmo, la función de este Algoritmo es básicamente codificar la información para que sea indescifrable a simple vista , de manera que una letra "A" pueda equivaler a :"5x5mBwE" o bien a "xQE9fq", el trabajo del algoritmo es precisamente determinar como será transformada la información de su estado original a otro que sea muy difícil de descifrar.

Una vez que la información arrive a su destino final, se aplica el algoritmo al contenido codificado "5x5mBwE" o bien a "xQE9fq" y resulta en la letra "A" o según sea el caso, en otra letra. Hoy en día los algoritmos de encriptación son ampliamente conocidos,es por esto que para prevenir a otro usuario "no autorizado" descifrar información encriptada, el algoritmo utiliza lo que es denominado llave ("key") para controlar la encriptación y decriptación de información. Algunos algoritmos son DES (algoritmo simétrico), AES que posiblemente suplantará a DES y uno de los más conocidos RSA (algoritmo asimétrico).

Haz click aquí para bajar el archivo.


Una Pantalla del Programa:


Modo de uso:
En la primera caja de texto introducir lo que se desea encriptar, luego presionar el botón "Encriptar", esto hará que en el segundo cuadrante aparezca el texto ya encriptado (si presionan de nuevo podrán observar que cambiará de forma aleatoria este código encriptado). Para copiar en el tercer cuadrante el texto encriptado den click en el botón "Copiar el Texto Encriptado", y para finalizar, para poder desencriptar el texto, hay que darle click al botón "Desencriptar". Para comprobar que anda el programa deben fijarse que el primer cuadrante es igual que el cuarto.


A tener en cuenta en el programa: Los únicos caracteres que toma como válidos para la encriptación son: 
- a-z (de la "a" a la "z" en minúsculas sin tildes o acentos).
- A-Z (de la "A" a la "Z" en mayúsculas sin tildes o acentos).
- "," (comas).
- "." (puntos).
- "!" (signos de admiración cerrados).
- "?" (signos de interrogación cerrados).
- 0-9 (números del "0" al "9").
- " " (espacios).


Ante cualquier inconveniente comenten explicando su duda o problema. Si se les ocurre sugerir alguna idea para mejorar este código fuente, bienvenida sea, solo haz el comentario.

Espero que les haya gustado y hayan aprendido algo nuevo en este código fuente. Saludos, Chuky.

Fuerza Chuky (versión access)

Este programa es una demostración del típico método de ataque por fuerza bruta para obtener una contraseña, en este caso este software solo lo he diseñado para poder obtener las contraseñas perdidas u olvidadas de archivos hechos en access protegidos por una contraseña.

En criptografía, se denomina ataque de fuerza bruta a la forma de recuperar una clave probando todas las combinaciones posibles hasta encontrar aquella que permite el acceso.

Dicho de otro modo, define al procedimiento por el cual a partir del conocimiento del algoritmo de cifrado empleado y de un par texto claro/texto cifrado, se realiza el cifrado (respectivamente, descifrado) de uno de los miembros del par con cada una de las posibles combinaciones de clave, hasta obtener el otro miembro del par. El esfuerzo requerido para que la búsqueda sea exitosa con probabilidad mejor que la par será 2n − 1 operaciones, donde n es la longitud de la clave (también conocido como el espacio de claves).

Otro factor determinante en el coste de realizar un ataque de fuerza bruta es el juego de caracteres que se pueden utilizar en la clave. Contraseñas que sólo utilicen dígitos numéricos serán más fáciles de descifrar que aquellas que incluyen otros caracteres como letras, así como las que están compuestas por menos caracteres serán también más fáciles de descifrar, la complejidad impuesta por la cantidad de caracteres en una contraseña es logarítmica.
Los ataques por fuerza bruta, dado que utilizan el método de prueba y error, son muy costosos en tiempo computacional.

La fuerza bruta suele combinarse con un ataque de diccionario, pero este software no es el caso, ya que si hubiera decidido hacerlo, todavía estaría cargando las palabras porque lleva mucho tiempo.


Haz click aquí para bajar el archivo.


A tener en cuenta en el programa: Para comenzar se debe seleccionar el archivo con extensión (formato) ".mdb". Luego, se debe elejir como se desea que sea la búsqueda, tildando los parámetros que se desee (con o sin espacios, con o sin números, con mayúsculas o minúsculas, o simplemente números sin letras). Y para finalizar, se da en comenzar la búsqueda.


Nota: El programa puede enlentecer demasiado el computador, así que les recomiendo no utilizar la PC mientras se encuentre corriendo el programa. Para probar la velocidad con la que ejecuta las pruebas de contraseña, les recomiendo que al archivo con extensión ".mdb" lo protegan con una contraseña simple de no más de 3 o 4 caracteres, ya que dependiendo las características de su ordenador tardará más o menos en encontrar la contraseña.


Ante cualquier inconveniente comenten explicando su duda o problema. Si se les ocurre sugerir alguna idea para mejorar este código fuente, bienvenida sea, solo haz el comentario.

Espero que les aya gustado y hayan aprendido algo nuevo en este código fuente. Saludos, Chuky.

Ta - Te - Ti

Aca posteo un código fuente demasiado simple del famoso juego de lógica Ta - Te - Ti.

El Ta - Te - Ti, también conocido como tres en linea, tres en raya, juego del gato, tatetí, triqui, tres en gallo, michi o la vieja, es un juego de lápiz y papel entre dos jugadores: O y X, que marcan los espacios de un tablero de 3×3 alternadamente.

Objetivo:
Un jugador gana si consigue tener una línea de tres de sus símbolos: la línea puede ser horizontal, vertical o diagonal.

Estrategia:
Los jugadores no tardan en descubrir que el juego perfecto termina en empate sin importar con qué juega el primer jugador, así que se podría decir que no existe la estrategia perfecta. Normalmente son los niños pequeños los que juegan al tres en raya: cuando ya han descubierto una estrategia imbatible se pasan a juegos más sofisticados, como el de puntos y cajas.

La misma simplicidad del juego de tres en raya lo hacen ideal como herramienta pedagógica para enseñar los conceptos de teoría de juegos y la rama de inteligencia artificial que se encarga de la búsqueda de árboles de juego. No es difícil escribir un programa informático que juegue perfectamente al tres en raya y que enumere las 765 posiciones esencialmente distintas o las 26.830 partidas posibles (complejidad del árbol de juego).

Una pantalla del Juego:



Haz click aquí para bajar el archivo.


A tener en cuenta en el juego: El juego se debe de jugar de a dos personas en turnos, el programa automáticamente cambia los turnos, de esta forma si acaba de hacer click en un cuadrante vacio el jugador X automáticamente el siguiente click que se haga en otro cuadrante vacio será como resultado una O. Al formar una linea de tres salta un mensaje que dice qué jugador ha ganado, y si se llenan todos los casilleros vacios, salta otro mensaje que indica que la partida ha terminado en empate. Al aceptar el mensaje, en cualquier caso de empate o de triunfo de alguno de los dos jugadores, se reinicia la pantalla, listo para volver a jugar.


Ante cualquier inconveniente comenten explicando su duda o problema. Si se les ocurre sugerir alguna idea para mejorar este código fuente, bienvenida sea, solo haz el comentario.

Espero que les aya gustado y hayan aprendido algo nuevo en este código fuente. Saludos, Chuky.

Sudoku

Aca les dejo el primer post de un código fuente hecho en Visual Basic 6.0.
El Sudoku es un pasatiempo que se popularizó en Japón en 1986, aunque es originario de Estados Unidos, y se dio a conocer en el ámbito internacional en 2005.

Objetivo:
Rellenar una cuadrícula de 9×9 celdas (81 casillas) dividida en subcuadrículas de 3×3 (también llamadas "cajas" o "regiones") con las cifras del 1 al 9 partiendo de algunos números ya dispuestos en algunas de las celdas. Aunque se podrían usar colores, letras, figuras, se conviene en usar números para mayor claridad. Lo que importa, en todo caso, es que sean nueve elementos diferenciados.

Regla Obligatoria:
No se debe repetir ninguna cifra en una misma fila, columna o subcuadrícula. Un sudoku está bien planteado si la solución es única. La resolución del problema requiere paciencia y ciertas dotes lógicas.

Ejemplo gráfico de un Sudoku:


Haz click aquí para bajar el archivo.


A tener en cuenta en el juego: En este código fuente añadí la posibilidad de escribir de distintos colores que elija el usuario, los números a completar, con la libertad de cambiar de color en el momento que el usuario disponga, haciendo así, más facil para marcar números seguros o no, para que el usuario pueda tener una distinción entre los números a colocar que desee. También he desarrollado por medio del uso y gestión de bases de datos (con el Microsoft Office Access), poder guardar distintos Sudokus, en la base de datos que se encuentra en el fichero "Sudoku by Chuky.rar", se encuentran 16 Sudokus ya cargados, con la posibilidad de crear nuevos, o ya sea editar otros ya existentes. También se dispone de distintas cajas de texto para, dependiendo de la estrategia que implemente el usuario, pueda deducir que números van en distintas casillas, o que números no pueden ir. Finalmente se puede buscar por medio de botones o una búsqueda específica, el Sudoku ya cargado que se desee.


Ante cualquier inconveniente comenten explicando su duda o problema. Si se les ocurre sugerir alguna idea para mejorar este código fuente, bienvenida sea, solo haz el comentario.

Espero que les aya gustado y hayan aprendido algo nuevo en este código fuente. Saludos, Chuky.