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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Soluciones para cifrar mi propio codigo fuente
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Soluciones para cifrar mi propio codigo fuente  (Leído 3,577 veces)
DarkSeer

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Soluciones para cifrar mi propio codigo fuente
« en: 23 Mayo 2017, 22:57 pm »

Código
  1. ;AYUDENME POR FAVOR
  2. ;Lo que quiero lograr con este programa es que se encripte a si mismo
  3. ;Pero no logro hacerlo T_T Si hay otra forma de hacerlo serian tan amables de
  4. ;Explicarme SOLUCIONES A MI PROBLEMA
  5. ;Por lo que he visto cuando intenta abrirse a si mismo solo lo permite
  6. ;en modo lectura y no en modo escritura - -- y en modo lectura no
  7. ;puedo usar la función (0x5a) = mmap
  8.  
  9. global _start
  10. section .text
  11. _start:
  12. pop eax ;argc
  13. pop ebx ;argv[0] => programa
  14. mov eax,0x5 ;sys_open
  15. xor ecx,ecx ;O_RDONLY => modo lectura
  16. xor edx,edx
  17. int 0x80
  18.  
  19. mov ebx,eax
  20. mov eax,0x13 ;sys_lseek
  21. xor ecx,ecx
  22. mov edx,0x2 ;final del fichero
  23. int 0x80
  24.  
  25. ;eax => contiene el tamaño del dichero
  26.  
  27. mov ecx,eax ;contador para el loop
  28. lea esi,[_start + ebp] ;direccion donde empieza
  29. sub esi,0x60 ;apunte al principio del fichero
  30.  
  31. cifrar:
  32. ;Por lo que he visto aqui el programa no tiene permisos de 'w'
  33. ;Lo he intentado usando la interrupcion '0x5a' pero no pasa nada
  34. ;a otros programas los puede cifrar pero asi mismo no puedo
  35.  
  36. mov byte[esi],0xff ;0xff es la llave
  37. inc esi
  38. loop cifrar
  39.  
  40. mov eax,0x1
  41. xor ebx,ebx
  42. int 0x80


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex


« Última modificación: 24 Mayo 2017, 01:47 am por engel lex » En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.348


Ver Perfil
Re: Soluciones para cifrar mi propio codigo fuente
« Respuesta #1 en: 24 Mayo 2017, 04:00 am »

¿Qué crees que es la protección de procesos????.
- Si un programa en memoria y ejecutándose pudiera modificarse alegremente, los problemas de seguridad serían enormes.

- De todos modos, incluso escribiendo drivers propios, existen límites y complicaciones:

- ¿Puede una báscula pesarse a sí misma?
- ¿..qué si tienes en la pila una serie de retornos y a la vuelta se deben hacer los correspondientes POPs?... tu código cifrado, ahora sería rescrito e indescifrable por tí mismo.
- ¿..qué si el registro IP, está apuntando a la instrucción pongamos 9999, y tu te empeñas en cambiar la dirección 9999?... supongamos que la consigues cambiar... ahora que se ejecutará...? ¿Cómo seguir cifrando el resto del programa cuando el algoritmo de cifrado, ya ha sido sobrescrito, las instrucciones que se encargan de cifrarlo ( y que ya están cifradas)?

- Supongamos que aún así se consiguiera cifrar por completo el programa... hemos dicho que el programa está ejecutando la instrucción 9999, pero el procesador, que como sabes (o deberías saber), tiene una cascada de instrucciones en diferentes estados (esto es, la 9999, se está ejecutando, pero la 10000 y la 10001 y... también, de hecho hay varias instrucciones que mientras una se está ejecutando, están en diferentes fases de la decodificación... incluso hay instrucciones que se ejecutan en paralelo, aunque nosotros las vemos o consideramos que se ejecutan en serie... si hay un salto, desde luego, se rompe la cascada que es despreciada... pero que pasaría con esas instrucciones que ya están fuera de nuestro control?. Bueno, al menos ya te indico que para descartarlas, deberías hacer un salto, para que sean descartadas, pero cómo hacer un salto y a dónde, si el código ha sido rescrito, por un contenido cifrado, quién le da las siguientes órdenes si ya no existen?

- Vamos un paso más allá, y olvidemos también la pipeline... Si hubieras logrado 'cifrar' todo tu programa, y estábamos en que la siguiente instrucción posterior a la 9999, empieza a decodificarse... No crees que no habrá modo de saber que sucederá?. Dando por cierto... que es cifrado y no simplemente remplazo de código 'sano' por otro 'malicioso', es decir si realmente es cifrado, el contenido en memoria para ser ejecutado, será pseudoaleatorio, luego el procesador puede 'volverse loco', impredecible.... podrías incluso borrar el disco sin darte cuenta, lo menos grave es que el cifrado se decodificara curiosamente como un bucle for, con un incremento del contador de 0, es decir un bucle infinito... en fin, aún suponiendo que nada te impidera cifrarlo tal como tu quieres, el resultado sería impredecible...

...y eso que soy generoso y doy por bueno, que solo quieras cifrarlo, y no remplazarlo por código   ::)>:D ::) >:D

Para terminar, ¿podrías decirme cuál es el objetivo de cifrar un ejecutable (en ejecución) en memoria y no en disco????


« Última modificación: 24 Mayo 2017, 04:06 am por NEBIRE » En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.465


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Soluciones para cifrar mi propio codigo fuente
« Respuesta #2 en: 24 Mayo 2017, 04:25 am »

Hola!

No programo ASM en linux pero creo que esto te puede ser útil: http://asm.sourceforge.net/articles/smc.html

Saludos!
En línea

MCKSys Argentina

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

xv0


Desconectado Desconectado

Mensajes: 1.026



Ver Perfil
Re: Soluciones para cifrar mi propio codigo fuente
« Respuesta #3 en: 25 Mayo 2017, 20:08 pm »

Lo que sucede es que la sección text esta protegida contra escritura, lo que significa que no podras modificar ningun valor de esa sección en ejecucion.

Puedes modificar la flag de la sección text para que se pueda escribir, si estas en linux echale un vistazo con readelf y veras los permisos de las secciones etc...

Coloca el code en la sección data mismo, esta si se puede modificar en ejecucion, pero vijila a que se pueda ejecutar, si no al hacer la llamada o el salto, te dara una violacion de segmento.

Un saludo.
En línea

DarkSeer

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Soluciones para cifrar mi propio codigo fuente
« Respuesta #4 en: 30 Mayo 2017, 06:05 am »

gracias por sus comentarios me sirvio de mucho ( soluciones mi problema )


· No se debe escribir en mayúsculas
>aquí las reglas del foro
-Engel Lex
« Última modificación: 31 Mayo 2017, 23:53 pm por engel lex » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Codigo fuente para aprender
Programación Visual Basic
Rosss 4 2,344 Último mensaje 22 Febrero 2006, 13:28 pm
por MaLkAvIaN_NeT
codigo fuente de un nuke para msn « 1 2 3 »
Programación Visual Basic
vodka 26 8,127 Último mensaje 21 Marzo 2006, 00:53 am
por Kpax
codigo fuente, para descargar
Programación Visual Basic
-thanatos- 6 3,813 Último mensaje 26 Diciembre 2006, 10:13 am
por -thanatos-
Como cifrar el código fuente de mi sitio Web
Seguridad
stefani04 5 10,567 Último mensaje 8 Junio 2011, 01:19 am
por barbieturico
Soluciones para lanzar tu propio servicio de almacenamiento en la nube privado
Noticias
wolfbcn 0 2,856 Último mensaje 6 Octubre 2013, 22:37 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines