Mostrar librerias cargadas en programa

Páginas: (1/10) > >>

Vaagish:

Hola! Estoy intentando mostrar todas las librerias que carga el ejecutable, pero no logro mostrar el nombre, muestra la direccion.. Que me esta faltando poner??

Código
--
.386
--
.model flat, stdcall
--
option casemap:none
--
assume fs: nothing
--
 
--
include windows.inc
--
include masm32rt.inc
--
includelib masm32rt.lib
--
 
--
ObtenerModulos PROTO
--
 
--
.code
--
start:
--
 
--
invoke ObtenerModulos
--
inkey "pause"
--
 
--
ObtenerModulos proc
--
 
--
push 30h
--
pop esi
--
lodsd fs:[esi]
--
mov eax, [eax + 0Ch]
--
lea eax, [eax + 0Ch]
--
NextModule:
--
assume eax: ptr LIST_ENTRY
--
mov eax, [eax].Flink
--
assume eax: nothing
--
mov ebx, [eax + 30h]
--
 
--
cmp ebx, 0
--
je Exit
--
 
--
push eax
--
print str$(ebx),13,10
--
pop eax
--
 
--
jmp NextModule
--
 
--
Exit:
--
ret
--
 
--
ObtenerModulos endp
--
 
--
end start
--

Saludos!!

xv0:

Bueno, vengo a ayudarte a medias, se lo que hace ese codigo, pero no conozco como funciona Windows, pero he visto papers sobre esto.

Simplemente comento porque no se ha que viene todo esto.

Código
--
.ObtenerModulos proc
--
 
--
push 30h
--
pop esi
--
lodsd fs:[esi]
--
 
--

No es mejor cargar la direccion directamente?

Código
--
movl %fs:0x30, %eax
--
 
--
; supongo que en intel sera asi
--
 
--
mov eax, fs:[30h]
--

Un saludo.

Vaagish:

Citar
--
Código
--
movl %fs:0x30, %eax
--
 
--
; supongo que en intel sera asi
--
 
--
mov eax, fs:[30h]
--

--

Efectivamente, funciona perfecto en intel..

Citar
--
No es mejor cargar la direccion directamente?
--

Y al parecer, tambien tenes razon.. La verdad es que a mi me queda mucho por aprender de ASM.. y habia entendido el codigo de la primer manera que lo vi.. ahora no entiendo porque encontre esa forma que es mas rebuscada,, supongo, quizas.. porque todos los ejemplos que vi son shellcodes y cosas por el estilo,, quizas sea una forma de "camuflar" la intencion... pero la verdad, tampoco estoy seguro...

Gracias cpu2! Saludos!

Eternal Idol:

Sera un problema con esas macros, proba con MessageBoxW.

Vaagish:

Perfect! Si no me equivoco, el puntero esta en ebx,, no? Mas precisamente en esta linea:

Código
--
mov ebx, [eax + 30h]
--

Yo intente cambiar el valor por la direccion,, con "[]" que si no me equivoco es como decir "la direccion de" pero no me funciono,, se quedaba colgado  :rolleyes:

Saludos!


[Edit]

Citar
--
Sera un problema con esas macros, proba con MessageBoxW.
--

Opss.. hubo un cambiazo.. pruebo con eso a ver que panza..

Gracias! Saludos!

Páginas: (1/10) > >>