elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Mensajes
Páginas: 1 ... 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 [349] 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 ... 381
3481  Programación / ASM / Re: Que ASM estudiar? en: 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  ;)
3482  Programación / ASM / Re: [DUDA] ¿Como logro que mis botones sean un acceso directo a internet? en: 23 Septiembre 2009, 07:59 am
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.
3483  Programación / ASM / Re: [DUDA] ¿Como logro que mis botones sean un acceso directo a internet? en: 22 Septiembre 2009, 23:36 pm
CreateProcess necesitas, un vb script lo podes ejecutar igual, en lugar de cmd necesitas cscript o wscript y el nombre del script.
3484  Programación / ASM / Re: [DUDA] ¿Como logro que mis botones sean un acceso directo a internet? en: 22 Septiembre 2009, 10:57 am
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).
3485  Programación / ASM / Re: Ayuda con el ejercicio T_T en: 22 Septiembre 2009, 08:07 am
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
  1. invoke GetDlgItemInt, hWin, Edit01, 0, 0
  2. mov ebx, eax
  3. invoke GetDlgItemInt, hWin, Edit02, 0, 0
  4. add eax, ebx
  5. ;ahi tenes la suma correcta en eax
  6. 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
3486  Programación / ASM / Re: [HELP] Block API LoadLibrary en: 22 Septiembre 2009, 07:57 am
De nadas  ::)
3487  Programación / ASM / Re: [HELP] Block API LoadLibrary en: 20 Septiembre 2009, 14:04 pm
La 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.

Aunque creo que tambien seria conveniente Hookear LdrGetModuleHandleEx ;)

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

Podrias poner como se utilizaria esa instruccion EI? :D

En cualquier ejemplo digno de detouring la encontras.

http://faydoc.tripod.com/cpu/cmpxchg8b.htm
3488  Programación / ASM / Re: [HELP] Block API LoadLibrary en: 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
  1. .data
  2. libName db "Kernel32.dll",0
  3. procName db "LoadLibraryW",0

Código
  1. push ebp
  2. mov ebp, esp
  3. sub esp, 08h
  4.  
  5. push offset libName
  6. call GetModuleHandleA
  7.  
  8. push offset procName
  9. push eax
  10. call GetProcAddress
  11. mov dword ptr [ebp - 04h], eax
  12.  
  13. lea ecx, [ebp - 08h]
  14. push ecx
  15. push 040h
  16. push 010h
  17. push dword ptr [ebp - 04h]
  18. call VirtualProtect
  19.  
  20. mov eax, dword ptr [ebp - 04h]
  21. mov word ptr [eax], 0C033h ;xor eax, eax
  22. mov dword ptr [eax+2], 04c2h ;ret 04h y un 0
  23.  
  24. mov esp, ebp
  25. pop ebp
  26. 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.
3489  Programación / ASM / Re: [HELP] Block API LoadLibrary en: 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
3490  Programación / ASM / Re: [HELP] Block API LoadLibrary en: 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
  1. xor eax, eax
  2. 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.
Páginas: 1 ... 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 [349] 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 ... 381
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines