hacker


Ingresar con nombre de usuario, contraseña y duración de la sesión
| Portal Hacker | Editorial | Descargas | Ezine |
Inicio Ayuda Ingresar Registrarse
07 de ſeptiembre de 2008, 04:55:09
Noticias: La 1era E-Zine de CPH ya fue liberada, encuentrala
Para ver este enlace Registrate o Inicia Sesion
> aquí

+  Foros pOrtal Hacker
|-+  Programacion
| |-+  Programación en general
| | |-+  Visual Basic (Moderadores: ranefi, crypto136, ziBboh, >> s E t H <<)
| | | |-+  no logro hacer un programa polimorfico que funcione bien
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: no logro hacer un programa polimorfico que funcione bien  (Leído 165 veces)
>> s E t H <<
Moderador
*****
Desconectado Desconectado

Mensajes: 1,183


jelou guorld


Ver Perfil WWW
« : 28 de Mayo de 2008, 10:01:09 »

ok,  trato de hacer algo sencillo sin demaciados cambios (solo un string) pero solo la primera vez el programa es modificado, los "hijos" crean copias suyas sin cambios :S

alguien encuentra el error?

NOTA: hay cosas comentadas que solo las uso para saber como va el programa ya que a los hijos no se los puede depurrar desde el vb

Código:
Option Explicit

Private Sub Form_Load()
Dim Mensaje 'este es el mensaje original
Mensaje = "Esto es una prueba muy prueba alta pruebatata" 'lo establecemos
'a una cadena fija, en las siguientes versiones del ejecutable esto va a
'cambiar automaticamente (gracias a eso es polimorfico)

MsgBox Mensaje 'aca mostramos el mensaje que va a ir cambiando
'en cada generacion. si eliminamos esta linea el programa va a ir cambiando
'pero esto no se le va a mostrar al usuario, es buena forma de evadir
'las comprobaciones por hash

Dim I As Long 'lo vamos a usar de contador para los bucles

Dim Mensaje2 As String 'en los exes no se guarda una frase tal cual, si no
'que se agrega un caracter nulo (0 en ascii) entre cada caracter, que
'insertamos con chr(0). EJ:
'"H" & chr(0) & "O" & chr(0) & "L" & chr(0) & "A" & chr(0)="HOLA" en el binario

For I = 1 To Len(Mensaje) 'vamos de caracter en caracter del mensaje original
Mensaje2 = Mensaje2 & Mid(Mensaje, I, 1) & Chr(0) 'creamos el mensaje con nulos
Next I

Dim Codigo As String 'aca se va a almacenar el programa cuando lo leemos
Dim Codigo2 As String 'aca se va a almacenar el programa despues de
'reemplazar la frase

'MsgBox "open 1" 'para controlar

Dim Free As Integer 'FreeFile!
Free = FreeFile
Open App.Path & "\" & App.EXEName & ".exe" For Binary As #Free 'abrimos el archivo
Codigo = Input(LOF(Free), #Free) 'lo leemos y lo metemos en Codigo
Close #Free 'cerramos

'MsgBox "replace" 'para controlar

Dim Mensaje3 As String 'esta va a ser la nueva frase que va a mostrar el programa
Dim Caracter As Byte 'esta variable la vamos a usar para ir generando cada
'caracter de la nueva frase
For I = 1 To Len(Mensaje) 'vamos de caracter en caracter xq la nueva frase
'debe tener el mismo tamaño para evitar errores
Randomize Timer 'creamos un numero aleatorio
Caracter = Round((Rnd * (255 - 32)) + 32, 0) 'lo metemos en el rango de los ascii (0-255)
'y lo redondeamos al entero mas cercano para que no quede con coma
Mensaje3 = Mensaje3 & Chr(Caracter) & Chr(0) 'agregamos el nuevo caracter a
'mensaje3 seguido de un nulo
Next I

Codigo2 = Replace(Codigo, Mensaje2, Mensaje3)  'creamos lo que va a ser el
'nuevo programa, reemplazando dentro del programa actual la cadena "original"
'por la nueva

'MsgBox "open 2" 'para controlar

Free = FreeFile
Open App.Path & "\" & App.EXEName & " .exe" For Binary As #Free 'le agrego
'un espacio al nombre para que no se sobreescriban
Put #Free, 1, Codigo2 'ponemos el nuevo binario
Close #Free 'cerramos

'MsgBox Mensaje
'MsgBox Mensaje2
'MsgBox Mensaje3
End Sub
En línea


Para ver este enlace Registrate o Inicia Sesion
MI FIRMA Tongue



Para ver este enlace Registrate o Inicia Sesion
Indice de posts interesantes de VB... manuales, guias, dudas, etc


Para ver este enlace Registrate o Inicia Sesion
tenes ideas para el foro de VB? postealas aca


Para ver este enlace Registrate o Inicia Sesion
libreria de codigo en VB!


Para ver este enlace Registrate o Inicia Sesion
IDE's, compiladores, interpretes, etc!

LAS PREGUNTAS EN EL FORO, NO X MP!!


Para ver este enlace Registrate o Inicia Sesion
¡ENTRA EN MI BLOG O TE JUANKEO!

>> s E t H <<
Moderador
*****
Desconectado Desconectado

Mensajes: 1,183


jelou guorld


Ver Perfil WWW
« Respuesta #1 : 14 de Junio de 2008, 08:17:00 »

alguien podria contestar??
En línea


Para ver este enlace Registrate o Inicia Sesion
MI FIRMA Tongue



Para ver este enlace Registrate o Inicia Sesion
Indice de posts interesantes de VB... manuales, guias, dudas, etc


Para ver este enlace Registrate o Inicia Sesion
tenes ideas para el foro de VB? postealas aca


Para ver este enlace Registrate o Inicia Sesion
libreria de codigo en VB!


Para ver este enlace Registrate o Inicia Sesion
IDE's, compiladores, interpretes, etc!

LAS PREGUNTAS EN EL FORO, NO X MP!!


Para ver este enlace Registrate o Inicia Sesion
¡ENTRA EN MI BLOG O TE JUANKEO!

Páginas: [1] Ir Arriba Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC hacker

Juegos gratis - Articulos PHP - Juegos - Trucos - Letras - Juegos - Juegos Online