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


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Mensajes
Páginas: 1 ... 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 365 366 367 368 369 ... 385
3531  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).
3532  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
3533  Programación / ASM / Re: [HELP] Block API LoadLibrary en: 22 Septiembre 2009, 07:57 am
De nadas  ::)
3534  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
3535  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.
3536  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
3537  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.
3538  Programación / ASM / Re: Ayuda con el ejercicio T_T en: 19 Septiembre 2009, 09:02 am
Si, pero siempre es mejor que usar el ID del control y despues sacar el numero :D Tambien podes usar la funcion que menciono YST que hace eso mismo internamente pero si usas dwtoa supongo que no es el objetivo (tambien podrias usar SetDlgItemInt y no dwtoa en ese caso ...).

Tenes que obtener los dos primeros numeros y sumarlos, el valor de Edit03 lo tenes que poner vos de acuerdo al resultado de la suma y para eso vas a tener que usar un buffer (donde escribe dwtoa) y SetDlgItemText.
3539  Programación / ASM / Re: Ayuda con el ejercicio T_T en: 18 Septiembre 2009, 23:31 pm
1001 + 1002 + 1003  ;)
3540  Programación / ASM / Re: Ayuda con el ejercicio T_T en: 18 Septiembre 2009, 21:48 pm
Edit03 es un ID (un numero), no podes usar addr con el. Si lo que queres es obtener el valor de esos Edits podes usar GetDlgItemText (ahora ebx cuando llamas a dwtoa siempre es 1001 + 1002 = 2003).
Páginas: 1 ... 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 365 366 367 368 369 ... 385
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines