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
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Escribir 'A' en mi primer programa : ¿No funciona?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Escribir 'A' en mi primer programa : ¿No funciona?  (Leído 8,940 veces)
Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: Escribir 'A' en mi primer programa : ¿No funciona?
« Respuesta #10 en: 1 Enero 2011, 17:12 pm »

Bueno, me ha salido otra dudilla pequeña...
Por qué lo haceis asi ?
Código
  1. global _start
  2.  
  3. section .code
  4. _start:
  5. push ecx
  6. mov byte [esp], 041h
  7. mov eax, 0x4
  8. mov ebx, 0x1
  9. mov ecx, esp
  10. mov edx, 0x1
  11. int 80H
  12. pop ecx
  13.  
  14. mov eax, 1
  15. xor ebx, ebx
  16. int 80H
  17.  
  18.  
Primero, push y pop sobran.
Segundo, deja bytes nulos xD... (mala constumbre  :P)
Comparando, en la mia me ahorro 12 bytes al acabar toda la compilacion  :silbar: :silbar: :silbar:
Código
  1. global _start
  2.  
  3. section .code
  4. _start:
  5.  
  6. mov byte [esp], 0x41
  7. mov al, 0x4
  8. mov bl, 0x1
  9. mov ecx, esp
  10. mov dl, 0x1
  11. int 80H
  12.  
  13. mov al, 1
  14. xor ebx, ebx
  15. int 80H
  16.  

Bueno, ahora para usar el code simplemente compilo
Código:
nasm -f elf hello.s
y miro cuanto ocupa
Código:
wc -c hello
¿Correcto? Ahora eso lo uso como shellcode no?
Alguien me puede corregir xD?


En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.935


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Escribir 'A' en mi primer programa : ¿No funciona?
« Respuesta #11 en: 1 Enero 2011, 19:13 pm »

En realidad por logica push y pop no sobran, estas sobreescribiendo la direccion de retorno, que se guarda en la pila, es cierto que salis con una interrupcion del programa PERO si queres hacer eso en una funcion cuando hagas ret te vas a arrepentir. No hay bytes nulos, su valor sera el mismo que tenian antes, el unico que cambia es el que nos interesa ...


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: Escribir 'A' en mi primer programa : ¿No funciona?
« Respuesta #12 en: 1 Enero 2011, 20:00 pm »

Código
  1. mov eax, 0x4
  2.  
No tengo mucha idea de esto, pero gracias por el consejo ...
Y luego... ¿por qué no? Al moverlos asi el valor de eax puede ser cualquiera... Ahhhhhhhhh, como yo lo hago no "limpio" eax?. De la otra forma solo modifico una parte, la otra se queda igual...
Muchisimas gracias estoy apavado  perdona xD...
En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.935


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Escribir 'A' en mi primer programa : ¿No funciona?
« Respuesta #13 en: 1 Enero 2011, 20:57 pm »

La verdad es que no me habia referido a eso, ni habia visto ese cambio pero si podria ser un problema si EAX es por ejemplo 0xFFFFFFFF ...
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: Escribir 'A' en mi primer programa : ¿No funciona?
« Respuesta #14 en: 1 Enero 2011, 21:27 pm »

Aparte, solucionado esto, para hacer la shellcode tendria que compilar sin linkear...
asi?
Código:
nasm shellcode.s
y me generaria "shellcode"
luego
Código:
hexdump shellcode
y tengo mi shellcode xD no?

¿No iria esto en bugs y exploits? Lo pongo aqui porque a lo mejor para shellcode tendria que modificar algo mas no?
por ejemplo, se suele compilar...
Código
  1. BITS 32   ;Esto es lo que se cambia por segment .code, etc...
  2.  
  3. mov byte [esp], 0x41
  4. mov al, 0x4
  5. mov bl, 0x1
  6. mov ecx, esp
  7. mov dl, 0x1
  8. int 80H
  9.  
  10. mov al, 1
  11. xor ebx, ebx
  12. int 80H
  13.  
Correcto ?
Luego me tendre que repasar lo que se sobre BoF pero weno ahora mismito la shellcode jaja.
Como es?
« Última modificación: 1 Enero 2011, 21:29 pm por Sagrini » En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cómo escribir y ejecutar un programa simple Perl
Scripting
Dr.SysCrack 0 3,068 Último mensaje 19 Noviembre 2007, 03:06 am
por Dr.SysCrack
Mi primer programa en VB « 1 2 »
Programación Visual Basic
Pedro_madrid 12 5,202 Último mensaje 31 Mayo 2008, 11:56 am
por Pedro_madrid
Como escribir un programa en C (CCs) para pic 16f877a
Electrónica
BrusAngel 6 12,395 Último mensaje 2 Enero 2010, 16:27 pm
por xtermsh
Programa crashea al escribir
Ingeniería Inversa
x64core 0 1,810 Último mensaje 23 Septiembre 2012, 02:07 am
por x64core
Escribir un programa que determine si un año es bisiesto en c++
Ejercicios
luzlazul 4 10,988 Último mensaje 6 Agosto 2013, 23:05 pm
por Alien-Z
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines