Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - MaLkAvIaN_NeT

#1
Gracias!. Algo más práctico y rápido porque el tiempo apremia va a ser crearme un proyecto VFP con esa función, genero una nueva clave y hago un update a la tabla usuario con la clave cifrada. Tuve que dormir para despejarme  :xD
#2
Ingeniería Inversa / algoritmo de desencriptación
3 Noviembre 2015, 03:18 AM
Buenas noches tengo que acceder a un sistema VFP del cual no tienen la clave, entré a las tablas usuario y la clave se encuentra cifrada con un algoritmo que no es md5, sha1, etc.

La contraseña cifrada es la siguiente:
Citarø»ôj̇

Eh decompilado el .EXE y he encontrado la función cifrar:
Código (visualfoxpro) [Seleccionar]
PARAMETER dato, encript, long
peso = CHR(57) + CHR(51) + CHR(53) + CHR(49) + CHR(52) + CHR(50) + CHR(47) + CHR(41) + CHR(73) + CHR(99) + CHR(62) + CHR(70) + CHR(57) + CHR(51) + CHR(53) + CHR(49) + CHR(52) + CHR(50) + CHR(33) + CHR(14) + CHR(31) + CHR(90) + CHR(67) + CHR(51) + CHR(56) + CHR(90) + CHR(51) + CHR(54) + CHR(43) + CHR(74) + CHR(90) + CHR(34) + CHR(57) + CHR(42) + CHR(44) + CHR(49) + CHR(42) + CHR(60) + CHR(39) + CHR(84) + CHR(77) + CHR(75) + CHR(47) + CHR(23) + CHR(34) + CHR(54) + CHR(56) + CHR(59) + CHR(93) + CHR(34)
consta = ASC(SUBSTR(dato, 2, 1))
FOR x = 3 TO long STEP 2
     consta = consta + ASC(SUBSTR(dato, x, 1))
ENDFOR
consta = consta / 7
IF consta < 17
     consta = 17
ENDIF
FOR x = 1 TO long
     decena = VAL(SUBSTR(STR(ASC(SUBSTR(dato, x, 1))), 10, 1))
     entero = consta * VAL(SUBSTR(peso, x, 1))
     DO WHILE entero > 255
          entero = entero - 33
     ENDDO
     newchr = entero + decena + ASC(SUBSTR(dato, x, 1))
     DO WHILE newchr > 255
          newchr = newchr - 19
     ENDDO
     IF x = 1
          encript = CHR(newchr)
     ELSE
          encript = encript + CHR(newchr)
     ENDIF
ENDFOR
RETURN encript
ENDFUNC
*



Alguien puede ayudarme ha descifrar esa clave?, no he programado en el lenguaje VFP... o en todo caso decirme si se puede hacer ingeniería inversa a ese algoritmo para meterme a estudiar el lenguaje.

Gracias.
#3
copiar los items.

For Each item As Object In Me.ListBox1.Items

Me.ListBox2.Items.Add(item)

Next
#4
puedes utilizar replace
#5
Las dos opciones que pones trabajan en una sola capa

comando = "SELECT campo FROM tabla WHERE fila = " & valor

comando = "SELECT campo FROM tabla WHERE fila = @param"

es decir son sentencias que se vuelven a validar en el motor de base de datos buscando que no haya problemas de sintaxis en las consultas que se mandan como texto plano, lo  que no pasaría si trabajaras a dos capas, es decir usando los store procedures los que ya no tienen que validarse si no simplemente se ejecutan porque son estructuras de código ya definidas en la base de datos.

en el siguiente ejemplo le mandas parámetros a un store procedure que previamente tienes que tener creado en tu base de datos

    Public Function mantenimiento(ByVal cnn As SqlClient.SqlConnection, ByVal tipo As tipo_mantenimiento) As Integer
        Dim comando As New SqlClient.SqlCommand, parametro As New SqlClient.SqlParameter
        comando.Connection = cnn

        If tipo = tipo_mantenimiento.insertar Then
            comando.CommandText = "[sp_SIAF_EXPEDIENTE_Insertar]"
        End If

        comando.CommandType = CommandType.StoredProcedure

        parametro = comando.Parameters.Add("@ano_eje", SqlDbType.Char, 4)
        parametro.Value = Me.ano_eje
        parametro = comando.Parameters.Add("@expediente", SqlDbType.Char, 10)
        parametro.Value = Me.expediente
        parametro = comando.Parameters.Add("@tipo_operacion", SqlDbType.Char, 2)
        parametro.Value = Me.tipo_operacion
        parametro = comando.Parameters.Add("@modalidad_compra", SqlDbType.Char, 2)
        parametro.Value = Me.modalidad_compra
        parametro = comando.Parameters.Add("@sec_ejec", SqlDbType.Char, 6)
        parametro.Value = Me.sec_ejec

        return comando.ExecuteScalar()

    End Function
#6
es recomendable que crees el store procedure en la base de datos.
#7
le vas a dar una utilidad en especial?, o es solamente por conocimiento.
#8
yo tampoco entendí bien lo que quieres hacer.
#9
Diseño Gráfico / tipo de archivo recomendado
13 Julio 2011, 03:55 AM
Resulta que quiero meter unas imágenes escaneadas a un sistema, que tipo de archivos me recomiendan utilizar que no sea muy pesado y que sobre todo los archivos digitalizados sean visibles cuando se vuelvan a imprimir.

Que piensan del formato TIF.
#10
Software / bloquear paginas web
10 Abril 2011, 01:39 AM
hola amigos del foro, estoy buscando una forma de bloquear páginas web, se que me dirán que este tema ya ha sido tratado o que busque antes de preguntar, pero mi caso es específico: resulta que en la red en la red hay muchas pcs y se necesita centralizar el proceso de agregar paginas desde una sola pc por eso no uso los archivos host además que no me perdmite usar comodines para bloquear subdominios y rutas como www.pagina.com\pagina , opté por un proxy pero cuando este está apagado las otras pcs no pueden entrar a internet, en el router tampoco puedo porque me bloquea el acceso a todos y hay dos pcs que no tienen que tener restricciiones. alguina solucion?