Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eternal Idol

#3311
ASM / Re: Que ASM estudiar?
24 Septiembre 2009, 22:03 PM
http://foro.elhacker.net/asm/duda_16_o_32_bits-t261319.0.html

Ese esta en la primera pagina de este sub-foro y seguro que hay bastantes mas  ;)
#3312
Ahi mismo sobre el final hay un ejemplo, no es un comando, es una API de Windows y para poder usarla tenes que comprender los parametros que necesita.
#3313
CreateProcess necesitas, un vb script lo podes ejecutar igual, en lugar de cmd necesitas cscript o wscript y el nombre del script.
#3314
Usando CreateProcess, el primer parametro es (PATH COMPLETO pese a lo que dice la MSDN) cmd.exe y el segundo /c + el nombre del archivo batch (o comando).
#3315
ASM / Re: Ayuda con el ejercicio T_T
22 Septiembre 2009, 08:07 AM
Cita de: JorGexD] link=topic=267886.msg1313102#msg1313102 date=1253574596]Asi que no consideraba mas funciones ... :S ...

A la fuerza vas a tener que usar alguna mas, de alguna manera tenes que obtener el numero (si es que lo es je) que el usuario escribe en el Edit.

AleX Inc. : es lo mismo de antes pero en una funcion, la clave es que no hay que usar los identificadores (valores constantes) sino lo que el usuario haya escrito.

La cosa vendria a ser algo asi (depuralo que no tengo el Ejerc2IV.inc ni muchas ganas tampoco):

Código (asm) [Seleccionar]
invoke GetDlgItemInt, hWin, Edit01, 0, 0
mov ebx, eax
invoke GetDlgItemInt, hWin, Edit02, 0, 0
add eax, ebx
;ahi tenes la suma correcta en eax
invoke dwtoa, ebx, buffer


PD. Al final ahora me doy cuenta de que ya tenes un buffer declarado en la sección de datos  ;D
#3316
ASM / Re: [HELP] Block API LoadLibrary
22 Septiembre 2009, 07:57 AM
De nadas  ::)
#3317
ASM / Re: [HELP] Block API LoadLibrary
20 Septiembre 2009, 14:04 PM
Cita de: Karcrack en 20 Septiembre 2009, 13:46 PMLa primera norma del API Hooking is "GO NATIVE!"... asi que envez de LoadLibraryW deberias hookear LdrLoadDLL...

Claro pero todo depende del contexto; es muy probable que le sea suficiente con bloquear una funcion de la API de Windows (al menos es lo que pidio) de la manera que demostre, puede que le haga falta hookear la API nativa o tal vez necesite un modulo de modo Kernel con un callback PsX o un (mini) filtro del file system.

Cita de: Karcrack en 20 Septiembre 2009, 13:46 PMAunque creo que tambien seria conveniente Hookear LdrGetModuleHandleEx ;)

¿Para que? ¿LdrGetDllHandleEx tambien carga una DLL de no encontrarla ya cargada rompiendo asi con la logica?

Cita de: Karcrack en 20 Septiembre 2009, 13:46 PMPodrias poner como se utilizaria esa instruccion EI? :D

En cualquier ejemplo digno de detouring la encontras.

http://faydoc.tripod.com/cpu/cmpxchg8b.htm
#3318
ASM / Re: [HELP] Block API LoadLibrary
20 Septiembre 2009, 10:10 AM
No se de donde salen esos valores hardcodeados y no veo donde escribas en el entry point, mira este ejemplo (no controla errores ni guarda el codigo original, eso te lo dejo a vos):

Código (asm) [Seleccionar]
.data
libName db "Kernel32.dll",0
procName db "LoadLibraryW",0


Código (asm) [Seleccionar]

push ebp
mov ebp, esp
sub esp, 08h

push offset libName
call GetModuleHandleA

push offset procName
push eax
call GetProcAddress
mov dword ptr [ebp - 04h], eax

lea ecx, [ebp - 08h]
push ecx
push 040h
push 010h
push dword ptr [ebp - 04h]
call VirtualProtect

mov eax, dword ptr [ebp - 04h]
mov word ptr [eax], 0C033h ;xor eax, eax
mov dword ptr [eax+2], 04c2h ;ret 04h y un 0

mov esp, ebp
pop ebp
ret


PD. Me olvidaba, el codigo de esta manera es inseguro ya que hace dos mov's y no esta sincronizado. Con lock cmpxchg8b podes escribir 8 bytes atomicamente.
#3319
ASM / Re: [HELP] Block API LoadLibrary
20 Septiembre 2009, 08:00 AM
En este caso no necesitas hookear realmente aunque podrias hacerlo (es mas complicado y no le veo el beneficio).

A VirtualProtect le tenes que pasar la direccion de memoria en la que queres escribir (el entry point que mencione antes), el tamaño del bloque de memoria al cual le queres cambiar la proteccion (con 16 sobra en este caso; siempre el minimo sera una pagina al final de cuentas), el nuevo tipo de proteccion - PAGE_EXECUTE_READWRITE - y finalmente un puntero a DWORD donde la funcion escribe el tipo de proteccion que habia antes de hacer el cambio asi podes restaurarlo despues.

Los pasos logicos para hacerlo en tu proceso:
Obtener el entry point (GetModuleHandle + GetProcAddress)
Dar proteccion de escritura al mismo (VirtualProtect)
Escribir el codigo que quieras
Restaurar la proteccion antigua
#3320
ASM / Re: [HELP] Block API LoadLibrary
20 Septiembre 2009, 00:25 AM
Poniendo el siguiente codigo en el entry point (podes conseguirlo con GetModuleHandle + GetProcAddress) de la funcion (puede ser LoadLibraryA o LoadLibraryW ... tambien estan la Ex, que tienen tres parametros y por lo tanto el ret de 0Ch) podes hacerlo:

Código (asm) [Seleccionar]
xor eax, eax
ret 04h


Probalo con un depurador; si vas a querer restaurar el codigo original no te olvides de guardarlo en algun buffer.

PD. Para hacerlo en tu programa vas a necesitar de VirtualProtect al menos, si en otro proceso VirtualProtectEx y WriteProcessMemory.