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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19 20 21 22 23 24 25 26 27 28
151  Programación / Programación General / Re: programar en lenguaje maquina en: 3 Febrero 2009, 15:47 pm
Citar
Si te olvidaste de una variable al comienzo, ¡fuiste!... No se pueden manipular las direcciones de memoria como el asm las manipula. Quieres agregar algo en el medio del code, una mitad funciona y la otra no.
Porque debes arreglar los offsets. Si de un momento a otro agregas 15 bytes en medio y estabas programando en codigo de máquina, entonces todas las direcciónes posteriores se correrán 15 bytes, y sus referencias tambien.

No obstante, si haces un programa en ASM para que funcione como en C usaras pilas locales a las funciónes. y accederás con la base de la pila más el offset de la variable en la función, por lo que esas variables no darán problemas.

Citar
Entre asm y c, los programas en asm son los mas óptimos
Pero un buen programador en C sabe que es posible tener todo el acceso de bajo nivel y la rentabilidad de ASM desde C... depende que tanto lo conozcas  :rolleyes:

@krackwar: estas muy cerca  :xD
Citar
Un enesamblador funciona primero aplica las macros y remplasa las constantes
Aja...sisi, obviamente despues de hacer las inclusiones de archivos...
Citar
hace el paso de cada instruccion a byte , cada ves que se usa una variable ees sumplatada por su posicion .
Eso depende mucho del ensamblador y del modo... en binario puro sería algo muy similar a eso, pero en un ejecutable con formato se deben hacer muchas cosas más.
Los símbolos, como los Labels, son correctamente ubicados como offsets dentro del ejecutable... luego todos los offsets calculados son reemplazados por constantes literales (que es lo que encuentras al desensamblar), y entonces son ensamblados por el componente más primitivo que simplemente ensambla instrucciónes que vienen con sus operadores literales.
152  Programación / Programación General / Re: programar en lenguaje maquina en: 3 Febrero 2009, 14:05 pm
Sisi... en realidad no es nada guaau... Si miramos cualquier bootstrap, incluido el de Linux y el de Minix si mal no recuerdo (y el de VisOpSis y otros) suelen usar binario cuando aplican máscaras para probar ciertos bits... por ejemplo en la prueba de flags del registro de flags, para hacer el checkeo de microprocesador.

Un "compilador" de binario tampoco es un gran desafío... solo se agrupan los ceros y unos y se escribe un byte como unsigned char (en C) o bien como mapa de bits, o como quieran.

La verdad el hilo no tiene mucha lógica. Sería más provechoso preguntar ¿Como funciona un ensamblador?

S2
153  Programación / Programación General / Re: programar en lenguaje maquina en: 3 Febrero 2009, 03:00 am
Agarren un editor hexa y editen un bootstrap que no trae formato. Eso es escribir binario. Si hacen q un programa en C escriba un unsigned char foo=0x04 tendran un 00000100 en el archivo (verifiquen con un editor hexa). Eso hace el ensamblador, reemplazar por code binario... el resto en un EXE o un ELF es formato y depende de la especificación de formato. Vamos, estudiar un poco y todo eso es teoría básica.
Un buen ejercicio es programar un pequeño ensamblador que ensamble unas pocas instrucciónes. No es difícil... hacerlo en ASM es más desafiante  ;D. (PD: no harian nada nuevo... FASM esta escrito en FASM)

Byebye!
154  Programación / Programación General / Re: programar en lenguaje maquina en: 3 Febrero 2009, 01:00 am
Jeje...  ;D ... bueno, leamos al Capitan Crunch nuestro pionero:

http://www.webcrunchers.com/crunch/stories/homebrew.html

Aja... aca habla de lo que varios sabian. Tambien se podía (y se puede) programar en hexa. Todavia hoy podemos programar algunos controladores con un pequeño pad hexadecimal.

Llendo a tiempos más remotos las tarjetas y cintas perforadas tenían cosas como ... un compilador de FORTRAN.

Tal vez mirar el documental sobre historia de los ordenadores (creo que era del "The History Channel") vendría bien...  ;)
155  Seguridad Informática / Hacking / Re: Jugando con netcat en: 20 Enero 2009, 00:51 am
La shell es solo eso... un shell.. Debes saber transferir archivos usando la linea de comandos... o sea, conocer programas para hacerlo. Siempre lo más fácil es usar wget para descargar archivos a la PC remota, poniendo por ejemplo un server HTTP como HFS o APACHE si querés exagerar un poco.
La cosa para sacar archivos de una maquina remota es usar un server en la maquina remota y un cliente en la tuya, que sería a la inversa. Podrías ponerle un server FTP.

Eso fue un poco rápido, porque en realidad es algo que se discutio bastante en el Hilo...
156  Programación / Programación C/C++ / Re: Programación en C, Metodologia, Algoritmos y estructura de datos. en: 17 Enero 2009, 00:09 am
Mmm... de todos esos tengo una gran parte... la verdad es que hay pocos realmente buenos  :¬¬ pero ya que tengo "C++ GUI Programming With Qt 3", me interesa "C++ GUI Programming With Qt 4" ¿Tambien es de Blanchette?...

Podria ser el "C++ CookBook", pero no se... cualquier cosa intento encontrarlos en google

"Enciclopedia del Lenguaje C": Lei la de C++, esa si es muy buena referencia. Las otras son el libro de Stroustrup (C++) y las manpages de Unix (C)  :xD ... (y el K&R sagrado)

Despues les subo alguno de los que tengo... es que estoy muy ocupado con el trabajo y me limitan el acceso a paginas como Rapidshare ... ingrese con algun que otro cloak pero ya saben como es el tema de encontrar un buen proxy gratuito  :P

See'u later
157  Programación / Programación C/C++ / Re: Programación en C, Metodologia, Algoritmos y estructura de datos. en: 16 Enero 2009, 23:21 pm
Leo... todo libro de desarrollo del kernel de Linux me interesa. No se si tendre ese... creo que no. Seria un muy buen aporte  ;)
158  Programación / Programación C/C++ / Re: Programación en C, Metodologia, Algoritmos y estructura de datos. en: 16 Enero 2009, 14:26 pm
Habra que leerlo. No le confio mucho a Joyanes con C, he leido muchas atrocidades que ha escrito pero esperemos que se haya puesto las pilas con ésto y podamos sacarle algo de jugo. Aprovecho para decirles que si alguno tiene la ultima version de "Understanding the Linux Kernel", y si fuera posible una en español (al fin y al cabo leer algo en mi idioma natal de vez en cuando no haría nada mal) subanlo..!

Gracias y SaludOS

PD: ¿Porque no un link directo a rapidshare? mmm...
159  Programación / Scripting / Re: BASH mp32wav, wav2mp3 - p/linuxeros en: 22 Diciembre 2008, 17:22 pm
jaja... lo que pasa es que todos preguntan, y despues dicen "Ah!, bash es el Batch de Linux??" , y noooo.... Bueno, te explico, cada caso en bash se finaliza con ";;" y el "*)" es el caso defult.

case <variable> in
    caso1)
        <sentencias>
    ;;
    caso2)
        <sentencias>
    ;;
            .
            .
            .

    *)
        <sentencias>
    ;;
esac

160  Programación / Scripting / BASH mp32wav, wav2mp3 - p/linuxeros en: 21 Diciembre 2008, 16:33 pm
Hola amigos, hoy les dejo unos escrits ( :huh:) ... es decir scripts ( :xD) para el shell de Unix, especifya saben como icamente probados en bash. Usan ffmpeg para transformar archivos mp3 a wav y viceversa.

No es nada raro, pero es util y sirve para ver a bash en accion.

Tal vez la parte más interesante es cómo usar las expansiones de variables para crear los nombres nuevos, es decir, cambiar un holahola.wav a holahola.mp3... o tal vez a alguno le interese cómo es el tema de los colores en la consola, que ahi aparece.

Como sea, si tienen preguntas haganlas. Y no me vengan con comparar BASH con BATCH!!  >:(

Compartan ambos bajo GPLv2

Código
  1. #!/bin/bash
  2. ################################################################################
  3. # AUTOR: Dario A. Rodriguez                                                                                                                                                       #
  4. # Convierte los ficheros MP3 de un directorio a WAV usando ffmpeg                                                                                           #
  5. ################################################################################
  6.  
  7. if [ $# -eq 0 ]
  8. then
  9.  FILES=`ls --color=never ./*.mp3`;
  10. else
  11.  case $1 in
  12.    "-h")
  13.        echo "USAGE:"
  14.        echo "  mp32wav <file1.mp3> [<file2.mp3> <file3.mp3> ...]"
  15.        echo "      Transform all given files to WAV"
  16.        echo "  mp32wav -f <text_file>"
  17.        echo "      Transform all files listed in the given text file to WAV"
  18.        echo "  mp32wav"
  19.        echo "      Transform all the mp3 files in the directory to WAV"
  20.        echo "      this is case sensitive (only mp3, not MP3)"
  21.        exit 0
  22.    ;;
  23.    "-f")
  24.        FILES=`cat $2`
  25.    ;;
  26.    *)
  27.        FILES="$*"
  28.    ;;
  29.  esac
  30. fi
  31.  
  32. for fn in $FILES
  33. do
  34.  noextfn=${fn%.mp3}
  35.  newfn="${noextfn}.wav"
  36.  echo -e "\033[1m$fn\033[0m -------> \033[1m$newfn\033[0m"
  37.  ffmpeg -i $fn $newfn
  38. done
  39.  

Código
  1. #!/bin/bash
  2. ################################################################################
  3. # AUTOR: Dario A. Rodriguez                                                                                                                                                       #
  4. # Convierte los ficheros WAV de un directorio a MP3 usando ffmpeg                                                                                           #
  5. ################################################################################
  6.  
  7. if [ $# -eq 0 ]
  8. then
  9.  FILES=`ls --color=never ./*.mp3`;
  10. else
  11.  case $1 in
  12.    "-h")
  13.        echo "USAGE:"
  14.        echo "  wav2mp3 <file1.mp3> [<file2.mp3> <file3.mp3> ...]"
  15.        echo "      Transform all given files to MP3"
  16.        echo "  wav2mp3 -f <text_file>"
  17.        echo "      Transform all files listed in the given text file to MP3"
  18.        echo "  wav2mp3"
  19.        echo "      Transform all the mp3 files in the directory to MP3"
  20.        echo "      this is case sensitive (only wav, not WAV)"
  21.        exit 0
  22.    ;;
  23.    "-f")
  24.        FILES=`cat $2`
  25.    ;;
  26.    *)
  27.        FILES="$*"
  28.    ;;
  29.  esac
  30. fi
  31.  
  32. for fn in $FILES
  33. do
  34.  noextfn=${fn%.wav}
  35.  newfn="${noextfn}.mp3"
  36.  echo -e "\033[1m$fn\033[0m -------> \033[1m$newfn\033[0m"
  37.  ffmpeg -i $fn $newfn
  38. done
  39.  
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19 20 21 22 23 24 25 26 27 28
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines