elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Personal Algorythm + Source
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Personal Algorythm + Source  (Leído 7,425 veces)
cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: Personal Algorythm + Source
« Respuesta #10 en: 6 Diciembre 2009, 09:57 am »

xD asi si es divertido


En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
illuminat3d

Desconectado Desconectado

Mensajes: 231



Ver Perfil WWW
Re: Personal Algorythm + Source
« Respuesta #11 en: 6 Diciembre 2009, 12:57 pm »

JAJAJA Me arrastraron por los suelos  :-X
Un poco más y vienen a mi casa me pegan dos bofetadas y me dicen esto está maaall... (es broma xD)
Esto me aclarará varias cosas.

Saludos!



En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Personal Algorythm + Source
« Respuesta #12 en: 6 Diciembre 2009, 14:40 pm »

Vaya, leyendo discuciones entre 2 profesionales expertos en la materia se aprende mucho, ahora mirare 3 veces mi codigo antes de postearlo  :xD

No sabia que se podia hacer un for con valor inicial que contenta una variable (for i = a + 1)

En cuanto a los bucles, todavia no entendi el problema (igual ya vere en la "practica" ;))

Asi que bueno, gracias por estas "Lecciones" maravillosas  ;-) ;-)
En línea

seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Personal Algorythm + Source
« Respuesta #13 en: 8 Diciembre 2009, 17:27 pm »

Primero que nada, esto no es para ofender ni nada por el estilo pero me parecio constructivo el hecho de mencionar o resaltar algunas cosas de este source.

Me tome la livertad de descargar esto para ver de que se trataba y el porque de los comentarios y decidi hacer este mini review porque hay muchas cosas que no tienen sentido.

Primero, para el que se pregunta que es esto? es simplemente un "Substitution cipher" o quiere serlo.

Vamos a destripar el source =D

Código:
 For x = 0 To 75
  If txtChr(x).Text = Chr(34) Then MsgBox "No se permite el carácter " & Chr(34), vbCritical, Me.Caption: txtChr(x).BackColor = &H8080FF: Exit Sub
 Next x

En la funcion principal encontramos esto que es simplemente un check para ver si algun textbox tiene como texto comillas.

Esto no tiene absolutamente sentido por que se puede validar dinamicamente con el evento Validate del textbox.

Código:
Private Sub txtChr_Validate(Index As Integer, Cancel As Boolean)
    If txtChr(Index) = """" Then
        MsgBox "No se permite el carácter " & Chr(34), vbCritical, Me.Caption
        Cancel = True
    End If
End Sub

Código:
 For a = 0 To 75
  For x = 0 To 75
   If a <> x Then
    If txtChr(a).Text = txtChr(x).Text Then
     txtChr(a).BackColor = &H8080FF
     txtChr(x).BackColor = &H8080FF
    ElseIf Len(txtChr(a).Text) > 1 Then
     txtChr(a).BackColor = &H8080FF
    ElseIf Len(txtChr(x).Text) > 1 Then
     txtChr(x).BackColor = &H8080FF
    End If
   End If
  Next x
 Next a
 

Aca esta el de la discoridia!!! Bien, este es uno de los que menos sentido tiene, son dos loops anidados que tienen como objetivo verificar si algun textbox tiene un texto con mas de un caracter y si hay dos textos repetidos.

Primero que nada, para que verificar si algun textbox tiene mas de un caracter? simplemente se pone la propiedad MaxLength = 1 y listo.

Una aclaracion aca para ░▒▓BlackZeroҖ▓▒░ en estos dos loops anidados se esta comparando una matriz con sigo misma por ende se van a producir tantas coliciones como objetos haya, en este caso 76.

Vamos con los elementos duplicados, mi pregunta es, vale la pena pasar por el proceso de "validacion" una y otra vez?  cuando todo esto se puede hacer on the fly?

Por ejemplo podriamos usar una coleccion para ver si el elemento existe y validarlo con el evento validate, algo asi.

Código:

Dim cChars As New Collection

Private Sub txtChr_Validate(Index As Integer, Cancel As Boolean)
    
    If LenB(txtChr(Index)) = 0 Then Exit Sub
    
    If txtChr(Index) = """" Then
        MsgBox "No se permite el carácter " & Chr(34), vbCritical, Me.Caption
        Cancel = True
        Exit Sub
    End If
    
    If Exists(txtChr(Index)) Then
        MsgBox "El carácter esta en uso", vbCritical, Me.Caption
        Cancel = True
        Exit Sub
    End If
        
End Sub

Private Function Exists(ByVal sChar As String) As Boolean
    On Error GoTo Err_Exists
    cChars.Add sChar, sChar
    Exit Function
Err_Exists:
    Exists = True
End Function


Este es para verificar si se produjo un error durante la validacion.....
Código:
 For a = 0 To 75
  If txtChr(a).BackColor = &H8080FF Then Exit Sub
 Next a

totalmente innecesario, se puede tener un flag en la validacion y evitar esto, no hay necesidad de utilizar un loop en lo absoluto.


Código:
 With CD
    .DialogTitle = "Guardar modulo .bas en..."
    .Filter = "Modulo bas (.bas) | *.bas"
    .ShowSave
 End With

Este...bueno lo podriamos perdonar pero esta mal implementado tambien.

Al principio de la funcion se resetea el filename " CD.FileName = """ luego se abre el dialogo y se valida con esto "If CD.FileName <> "" Then" ... NO, el common dialog tiene una propiedad que se llama CancelError y esta ahi para poder determinar si se cancelo o no.

Bien estamos llegando al cuore de la funcion, el generador de algoritmos...

no lo pego completo poque no me entra ni en 3 paginas.

Código:
  Open CD.FileName For Output As #File
   Print #File, "'Algoritmo de cifrado creado por [Personal Algorythm]"
   Print #File, ""
   Print #File, "Public Function Encrypt(Data As String, Pass As String) As String"
   Print #File, " Dim pPass As String"
   Print #File, "  pPass = " & Chr(34) & Text77.Text & Chr(34)
   Print #File, "  If Pass = pPass Then"
   Print #File, "   If InStr(Data," & Chr(34) & 0 & Chr(34) & ") Then Data = Replace(Data," & Chr(34) & 0 & Chr(34) & "," & Chr(34) & txtChr(0).Text & Chr(34) & ")"  ' Numeros
   Print #File, "   If InStr(Data," & Chr(34) & 1 & Chr(34) & ") Then Data = Replace(Data," & Chr(34) & 1 & Chr(34) & "," & Chr(34) & txtChr(61).Text & Chr(34) & ")"


Que demonios es esto? simplemente un template de la funcion principal que se parcha con los nuevos valores.

Mas alla de que todo esto se podria reducir a unas 5 lineas de codigo... vamos a lo interesante

Esto es simplemente substitucion de caracteres pero hay algo llamativo en como esta implementado. Vamos a sacar un pedazo del algoritmo generado y a ver que pasa.

   If InStr(Data, "0") Then Data = Replace(Data, "0", "1")
   If InStr(Data, "1") Then Data = Replace(Data, "1", "T")

Este es mi texto original: 01
Vamos a "encriptarlo" ..
Primer paso reeemplazamos los 0s con 1s
nos queda algo asi 11
segundo paso reeemplazamos los 1s con Ts
Resultado: TT

Como tarea para el hogar les dejo intentar recobrar el texto original

   If InStr(Data, "1") Then Data = Replace(Data, "1", "0")
   If InStr(Data, "T") Then Data = Replace(Data, "T", "1")

PD: si alguno se esta preguntando que funcion cumple el password en todo esto... simplemente mera decoracion.





ojala esto sirva para mejorar el codigo en el futuro, ya que aca hay gente que sabe, no es como otros foros que nadie sabe nada y si posteas cualquier cosa todos te filicitan y alaban y ni les importa si es bien o no.
En línea

ssccaann43 ©


Desconectado Desconectado

Mensajes: 792


¬¬


Ver Perfil
Re: Personal Algorythm + Source
« Respuesta #14 en: 8 Diciembre 2009, 18:29 pm »

Jajajajaja... Lo que pense escribir, seba lo hizo graficamente...! Jajaja...

Grande Cobein!!! Grande..!!!
En línea

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"
APOKLIPTICO


Desconectado Desconectado

Mensajes: 3.871


Toys in the attic.


Ver Perfil
Re: Personal Algorythm + Source
« Respuesta #15 en: 8 Diciembre 2009, 18:59 pm »

Aparte, sin ofender, el algoritmo lo puede crackear cualquiera que haya leido el escarabajo de oro de Edgar Allan Poe en un rato y con un papel y un lapiz, un simple algoritmo de sustitucion puede ser atacado y crackeado con un analisis de frecuencias. Investigá sobre algoritmos de cifrado simetricos/asimetricos, con contraseña, con llave y tambien lee sobre hashes.

Un abrazo
APOKLIPTICO
En línea

AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Personal Algorythm + Source
« Respuesta #16 en: 8 Diciembre 2009, 23:00 pm »

Sólo para meter la cuchara....

Podrías usar el password para hacer un "corrimiento" cíclico. El cual, sumado a la sustitución, puede hacer las cosas un poco más interesantes.

Aunque, aún sigue siendo algo bastante "crackeable"...  :P

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines