Autor
|
Tema: Inyectando codigo en espacios vacios de programas (Leído 3,522 veces)
|
Hendrix
|
Weno, una par de dudas que se me vienen a la cabeza.... Hace tiempo lei que hay virus que lo que hacen para inyectarse en otros procesos es okupar sus espacion vacios kon su kodigo.....para hacer eso hay que usar alguna API ene special??? alomejor se tendria que buskar lso espacios vacios y leugo kalkular el tamaño de este espacio e ir copiandose en el espacio...trozo a trozo....Pero ahora tengo otra duda...komo se va a ejekutar si pro ejemplo el PE del virus esta por enmedio del cuerpo del archivo origen??? Mi ultima duda...si eso fuera posible...se podria por ejemplo inyectar kode en .jpg??? puesto que no veo ninguna diferencia infectar a un .exe....y que este mismo "te ejekute" a ti mismo....que un .jpg....puesto que el PE del worm no influye en la ejekucin del archcivo origen...o si???? Weno, respondenme si no se an perdido por la explikacion de mi pregunta...xD xD xD Salu2 Hendrix
|
|
|
En línea
|
"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
|
|
|
Eternal Idol
Kernel coder
Colaborador
Desconectado
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
Me parece que estas mezclando dos cosas, una la inyeccion de codigo sobre un PROCESO y otra la "incrustacion" de codigo en un PROGRAMA. En la primera se escribe en el espacio de direcciones de un proceso en ejecucion mientras que en la segunda se escribe en el archivo en disco.
¿Como se ejecuta el codigo incrustado en un archivo ejecutable en disco? Asi rapidamente se me ocurren un par de formas, la mas simple es cambiar el entry point. En el PE hay un campo que indica la direccion de comienzo del ejecutable (entry point), haciendo que la misma apunte al codigo nuevo y que este codigo termina saltando a la direccion original del entry point se consigue ejecutar antes el nuevo codigo y despues el programa de siempre.
|
|
|
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
|
|
|
Hendrix
|
es decir...que esto de modificar el PE solo funcionaria en .exe's....no???? y komo se haria para modificar el PE??? Salu2 y gracias por contestar.....
|
|
|
En línea
|
"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
|
|
|
Eternal Idol
Kernel coder
Colaborador
Desconectado
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
es decir...que esto de modificar el PE solo funcionaria en .exe's....no???? y komo se haria para modificar el PE??? PE es Portable Executable y se usa para varios tipos de archivos. En NT para codigo objeto (.OBJ), ejecutables (.EXE), librerias (.DLL, .OCX) y drivers (.SYS) entr otros, tanto de 32 como de 64 bits. Para modificar un PE se necesita lo mismo que para con cualquier otro formato, saber sus especificaciones y modificarlo en modo binario (no texto).
|
|
|
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
|
|
|
Hendrix
|
Weno...pos me puedo conviene que deje este modo de inyeccion...ya que refirigir entry points no es mi fuerte...xD xD xD Salu2 y gracias...
|
|
|
En línea
|
"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
|
|
|
Kizar
Desconectado
Mensajes: 1.325
kizar_net
|
Eternal Idol a mi me gustaria k expusieras como encontrar el entry point y como cambiar la direcion a la k apunta. Se algo de asm y de hex supongo k vendra bien.
PD: No ay ganas de buscar nada...
Salu2
|
|
|
En línea
|
|
|
|
byebye
Desconectado
Mensajes: 5.093
|
mov edx,dword [eax+3Ch] add edx,eax mov edx,dword [edx+28h] suponiendo que eax=MZ. ahi tienes el entrypoint. desplazamiento 28h respecto a la cabecera PE. PD: por si no queda claro, cuando digo MZ quiero decir la direccion base donde se mapea el archivo.
|
|
« Última modificación: 7 Mayo 2006, 02:59 am por Cara_Webo »
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Colaborador
Desconectado
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
Lo vas a poder ver mejor con las estructuras:
IMAGE_DOS_HEADER IMAGE_NT_HEADERS
0x3C es el offset al campo e_lfanew de la primera estructura, es el que apunta a la nueva cabecera (del PE real). Todo PE tiene un ejecutable de MS-DOS incrustado al inicio, generalmente y por defecto es el que nos dice "This program cannot be run under DOS" o algo asi.
0x28 es el offset al campo AddressOfEntryPoint de la segunda estructura.
|
|
|
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
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda con links vacios
Desarrollo Web
|
mark182
|
2
|
2,876
|
6 Enero 2011, 03:02 am
por mark182
|
|
|
SETOOLKIT logs vacios
Hacking
|
4justice
|
3
|
5,328
|
10 Noviembre 2015, 00:03 am
por while4ever
|
|
|
Como puedo eliminar espacios vacios en un char array?
Programación C/C++
|
saintmauricioxd
|
4
|
6,573
|
11 Octubre 2015, 11:20 am
por ivancea96
|
|
|
sustituir espacios vacios en url
Desarrollo Web
|
Marciano_79
|
2
|
3,098
|
7 Septiembre 2016, 17:41 pm
por Marciano_79
|
|
|
[Pregunta]: No enviar espacios vacíos
Desarrollo Web
|
Leguim
|
3
|
2,447
|
26 Marzo 2019, 04:59 am
por Leguim
|
|