LinuxParty
NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
En las entregas anteriores hemos visto
cómo escribir código inyectable y cómo inyectar nuestro código en otros
binarios sirviéndonos de diversos trucos. La siguiente fase lógica -la
activación- ya no consistirá sólo en saltar a nuestra rutina inyectada,
si no también el devolverle el control al código original y no levantar
sospechas.

La idea general será la siguiente: debemos encontrar algún puntero al
que el ELF intente saltar en todo su tiempo de ejecución, ejecutar el
código inyectado y devolver el control al puntero original. Esto se
conoce popularmente como hooking: reemplazamos la dirección a la
que cierto programa debe saltar en cierto momento para ejecutar nuestro
código, y devolver el control a la dirección original a la que se quería
llamar.
uando los sistemas operativos eran más
burdos y no había APIs específicas para registrar más de un manejador
para determinado evento del sistema, lo que las aplicaciones
-normalmente controladores de dispositivo- hacían era guardar la
dirección del manejador original, sustituir la dirección por la de un
manejador propio y saltar después a la dirección guardada. Así se podían
tener dos manejadores para la misma interrupción aunque el sistema no
soportase nativamente una característica así. Un ejercicio muy clásico
de Sistemas Operativos años antes era engancharse a la interrupción del
teclado para hacer que a cada pulsación la CPU emitiese un pitido, muy
vintage todo.
Obviamente, surgen algunas complicaciones. Por ejemplo, el código que
estaba antes espera encontrar en la pila ciertas cosas (esto implica que
tanto a la entrada como a la salida del código enganchado, el %esp
debe permanecer inalterado, aunque entre tanto hagamos virguerías con
él). Con los registros pasa lo mismo, por regla general debemos dejarlos
como estaban (a menos que queramos hacer explícitamente algún cambio en
el comportamiento del código que viene después). Son problemas
atajables, pero que hay que tener en cuenta.
Continúa en "Security by Default", indicar que la página tiene un script que funciona bastante mal, por lo menos en Firefox.
Continúa en "Security by Default", indicar que la página tiene un script que funciona bastante mal, por lo menos en Firefox.

-
Programación
- Google dona Windowbuilder, CodePro Para Eclipse
- 12 plugins de Eclipse que todo desarrollador debe conocer!
- Eclipse Ajax Toolkit Framework y Ajax tools
- Visual Studio y Eclipse, comparados y contrastados.
- Crear servicios Web con PHP en Eclipse
- Programar y depurar en un IDE para PHP con Eclipse, plugins PDT, xdebug y Remote debug
- Saros, plugin de Eclipse para programación par a distancia o distribuida en pare
- Desarrollar una aplicación Facebook con Eclipse.
- Instalar Cobol en Eclipse para Linux (y también sirve para Windows)
- Cómo instalar Eclipse en Windows, Linux o Mac.
- ¿Puede TrapC solucionar problemas de seguridad de memoria en C y C++?
- Un EXE de 27 años se convirtió en Python en minutos. ¿Será la ingeniería inversa asistida por IA el próximo paso?
- Google informa que el tiempo de migración de código se reduce a la mitad con ayuda de IA
- ELIZA, el primer chatbot con inteligencia artificial del mundo, resucita después de 60 años
- Tutorial de C/C++, programar paso a paso, para Linux, Windows y Mac