Es posible esto?

Iniciado por JaimeAsm, 13 Febrero 2010, 22:35 PM

0 Miembros y 2 Visitantes están viendo este tema.

JaimeAsm

Hola foreros como estais?

soy nuevo en ese foro,tengo una duda que espero pueda con buestra auda resolver!

es posible poner una nstruccion (ejmp:  un MessageBox) a un executable desde otro executable?

osea desde un exe mapear en memoria el ejecutable a modificar,i una vez en la memoria intrducirle la instruccion a un offset que este libre,


podrian darme algun code de eso??

uso Masm32,trabajo en 32 bits ^^

un cordial saludo

Eternal Idol

Como poder se puede. ¿Que es lo que hiciste hasta ahora? Es cuestion de escribir los bytes correctos en el lugar correcto ...
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

JaimeAsm

Hola Eternal Idol como va?

gracias por responderme,pues lo que hice maximo es escribir en un offset en dodne ya habia unos bytes (una cadena de text que se mostraba en un mensaje que mostraba el exe que quiero modificar) pero no se como puedo escribir una instruccion,,ya imagino que debo escribir los bytes de la instruccion que quiero agregarle al otro exe,y imagino que tendre que escribirlo en un offset que no este ocupado,asta ahora utilizaba las api CreateFile,,CreateFileMapping,MapViewOfFile i despues hacia esto:
[code=asm]
MOV EDI,EAX    ;EAX = Retorno de MapViewOfFie¡le
ADD EDI,[800h]    ;offset donde quiero escribir
LEA ESI,Instruccion     ;Dieccion de la etiqueta que contiene la instruccion
REP MOVSB
[/code]

peor nada no sale :(



estoi perdido

Eternal Idol

¿Que es lo que queres hacer exactamente? Tene en cuenta que en cuanto escribas en ese ejecutable si era confiado por el sistema (mediante catalogo o firma embebida) ya no lo sera mas.

Si queres agregar una llamada a un MessageBoxA por ejemplo tenes que escribir el codigo para poner los parametros en la pila primero y despues hacer el call. Si la funcion ya esta importada estaticamente por el ejecutable buscala y usa ese puntero.
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

JaimeAsm

Osea me dices que haga esto:
Código (asm) [Seleccionar]

PUSH 0
PUSH OFFSET Cabecera
PUSH OFFSET Mensaje
PUSH 0
CALL[MessageBoxA]



?¿?¿ no?

perdoname es que no entendi my bien.:( si tuvieras algun ejemplillo me aydudarias mazo Hermano!!

un saludo crack!

RAID-MAM

Mira , si te interesa ejecutar codigo en un ejecutable no en un lugar en expesifico lee este codigo para sacar la idea

http://foro.elhacker.net/analisis_y_diseno_de_malware/srcinfeccion_de_archivos_con_tls_asm-t283150.0.html


Eternal Idol

Cita de: JaimeAsm en 14 Febrero 2010, 19:27 PMOsea me dices que haga esto:

Si queres agregar una llamada a MessageBoxA vas a tener que escribir algo como eso en el ejecutable. Poner los parametros en la pila (tene en cuenta que los offset's no estaran en ese ejecutable) y llamar a la funcion (sino esta importada podes agregarla al PE o agregar codigo para llamar a GetProcAddress y obtener su direccion en tiempo de ejecucion).
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

JaimeAsm

aaa...vaya creo que no podre hacer lo que queria,yo queria agregar una fuinstruccion como dejemmplo el MessageBoxA en cualquier ejecutable,no en uno que tenga que crear yo pero ceo que eso ya como k no xd


gracias de antemano expertos!

MCKSys Argentina

Puedes insertar cualquier libreria en un EXE y luego llamar a la función que gustes dentro de la misma. Más aún, si esuna DLL de sistema.

Sólo debes usar LoadLibrary y GetProcAddress.

Saludos!

PD: También hay métodos más rebuscados cuando no dispones de esas APIs...  ;) Como ejemplo, (si tienes instalado MASM) fíjate en la carpeta: X:\masm32\examples\EXAMPLE8\MOB\NOIMPORT.

Ahí encontrarás un método más que interesante para solucionar el problema.
MCKSys Argentina

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


Eternal Idol

MCKSys Argentina: no es lo mismo cargar una libreria en la memoria de un proceso que modificar el ejecutable en disco. Igual tal vez le interese JaimeAsm, no se que quiere hacer exactamente ...
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