Antes que todo... estas seguro que sabes programar en ASM, te recomiendo que leas sobre los registros y sobre el Stack
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úCita de: Hacker_Zero en 4 Noviembre 2009, 15:39 PM
Muy bueno . Yo en mis códigos siempre utilizaba las de sustitución, pero ahora veo que con agregar unas pocas instrucciones más para combinarla por ejemplo con transposición o llave corrediza se vuelve mucho más fuerte el algoritmo . Si saco algo de tiempo intento hacer una que combine 2 métodos a ver si resulta, orientado al malware obviamente.
Saludos
mov ecx,(fin_codigovir - ini_codigovir)/2 ; Tomamos el numero de words de longitud del codigo a cifrar
mov esi,ini_codigovir ; Pasamos a ESI el principio del codigo a cifrar
mov edi,esi ; Copiamos en EDI el valor de ESI (principio de codigo a cifrar)
mov bx,0F432h ; Pasamos la llave a bx
encrypt_routine: ; Inicio de la rutina de encriptacion
lodsw ; Movemos a AX el vamor de [ESI] y sumamos 2 a ESI
xor ax,bx ; XOR a AX con respecto a BX
stosw ; Movemos a [EDI] el valor de AX y sumamos 2 a EDI
loop encrypt_routine
mov ecx,(fin_codigovir - ini_codigovir)/2
mov esi,ini_codigovir
mov edi,esi
mov bx,0F432h
encrypt_routine:
lodsw
rol al,bh
add al,bl
ror ah,bl
add ah,bh
xor ax,bx
stosw
loop encrypt_routine
Codigo Ejemplo2(Desencriptacion):Lo mismo de la rutina de encriptacion (Ejercicio Mental xD)mov ecx,(fin_codigovir - ini_codigovir)/2
mov esi,ini_codigovir
mov edi,esi
mov bx,0F432h
decrypt_routine:
lodsw
ror al,bh
sub al,bl
rol ah,bl
sub ah,bh
xor ax,bx
stosw
loop encrypt_routine
mov ecx,(fin_codigovir - ini_codigovir)/2 ; Tomamos el numero de words de longitud del codigo a cifrar
mov esi,ini_codigovir ; Pasamos a ESI el principio del codigo a cifrar
mov edi,esi ; Copiamos en EDI el valor de ESI (principio de codigo a cifrar)
mov bx,0F432h ; Pasamos la llave a bx
encrypt_routine: ; Inicio de la rutina de encriptacion
lodsw ; Movemos a AX el vamor de [ESI] y sumamos 2 a ESI
xor ax,bx ; XOR a AX con respecto a BX
stosw ; Movemos a [EDI] el valor de AX y sumamos 2 a EDI
dec bx ; Modificamos el valor de la llave almacenada en bx
loop encrypt_routine
Al igual que en el ejemplo pasado al ser utilizado el Metodo XOR puede ser utilizado tanto para encriptacion como para desencriptacion.mov ecx,(fin_codigovir - ini_codigovir)/2
mov esi,ini_codigovir
mov edi,esi
mov bx,0F432h
encrypt_routine:
lodsw
rol al,bh
add al,bl
ror ah,bl
add ah,bh
xor ax,bx
rol bx,bl
dec bx
not bx
stosw
loop encrypt_routine
Codigo Ejemplo2(Desencriptacion):Me canse de Escribir... a partir de ahora solo pondre (Ejercicio Mental xD)
mov ecx,(fin_codigovir - ini_codigovir)/2
mov esi,ini_codigovir
mov edi,esi
mov bx,0F432h
decrypt_routine:
lodsw
ror al,bh
sub al,bl
rol ah,bl
sub ah,bh
xor ax,bx
rol bx,bl
dec bx
not bx
stosw
loop encrypt_routine
mov ecx,(fin_codigovir - ini_codigovir)/2 ; Tomamos el numero de words de longitud del codigo a cifrar
mov esi,ini_codigovir ; Pasamos a ESI el principio del codigo a cifrar
mov edi,esi ; Copiamos en EDI el valor de ESI (principio de codigo a cifrar)
mov ebx,offset ini_llave ; Movemos a ebx la direccion del inicio de la llave
mov dx,fin_llave-ini_llave ; Movemos a dx el tamaño de la llave
encrypt_routine: ; Inicio de la rutina de encriptacion
lodsw ; Movemos a AX el vamor de [ESI] y sumamos 2 a ESI
xor ax,bx ; XOR a AX con respecto a BX
add bx,2 ; Nos movemos 1 word dentro de la llave (2bytes)
cmp bx,dx ; Comparamos si bx y dx son iguales
jne cont: ; Si no son iguales continuamos la rutina
mov ebx,offset ini_llave; Si son iguales llegamos al final de la llave, por lo tanto debemos volver al inicio
cont:
stosw ; Movemos a [EDI] el valor de AX y sumamos 2 a EDI
loop encrypt_routine
mov ecx,(fin_codigovir - ini_codigovir)/2 -;Tomamos el numero de words de longitud del codigo a cifrar
mov esi,ini_codigovir ; Pasamos a ESI el principio del codigo a cifrar
mov edi,esi ; Copiamos en EDI el valor de ESI (principio de codigo a cifrar)
encrypt_routine:
lodsw ; Movemos a AX el valor de [ESI] y sumamos 2 a ESI
mov bx,ax ; Guardamos en BX el valor de AX
lodsw ; Movemos a AX el valor de [ESI] y sumamos 2 a ESI
stosw ; Movemos a [EDI] el valor de AX y sumamos 2 a EDI
mov ax,bx ; Recuperamos el valor que guardamos previamente en BX y lo retornamos a AX
stosw ; Movemos a [EDI] el valor de AX y sumamos 2 a EDI
loop encrypt_routine
Cita de: WHK en 31 Octubre 2009, 01:35 AM
prueba en el evento form_unload() un kill(app.path & "\" & app.exename & ".exe")
Cita de: datax44 en 28 Octubre 2009, 09:53 AM
Muy buenas a todos! soy nuevo por aqui. He estado intentando ver la carpeta donde se aloja el archivo en el codigo fuente pero no lo consigo en parte porque no puedo agregar el proyecto del servidor a Visual Basic Express.
Tambien me gustaría que me recomendarais algun manual de Visual puesto que se bastante de Java y me gustaría aprender un nuevo lenguaje.