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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderador: fary)
| | |-+  [ASM] Find Kernel Base Address (XP,Vista,7 - x86, x64)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [ASM] Find Kernel Base Address (XP,Vista,7 - x86, x64)  (Leído 3,396 veces)
The Swash

Desconectado Desconectado

Mensajes: 194


Programmer


Ver Perfil WWW
[ASM] Find Kernel Base Address (XP,Vista,7 - x86, x64)
« en: 1 Mayo 2011, 18:31 pm »

Código
  1. mov eax, fs:[030h]
  2. mov eax, [eax + 0ch]
  3. mov eax, [eax + 0ch]
  4. mov eax, [eax]
  5. mov eax, [eax]
  6. mov eax, [eax + 018h]

Bueno leyendo un poco acerca de la PEB y entendiendo como localizaban el BaseAddress de kernel32, recordé que había un código que hicieron rehicieron y mejor dicho xD, bueno ese código dejo de funcionar en 7 donde se agrego Kernelbase.dll y obligó a cambiar el código. Tras pruebas mi código se baso en buscar el orden de carga de las librerías, y ese orden se respeta desde XP hasta 7 tanto en 64 como 32 bits. ;)

Un agradecimiento a Lord, y ya implementaré un método genérico  :P.
Saludos!
En línea

[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.082


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: [ASM] Find Kernel Base Address (XP,Vista,7 - x86, x64)
« Respuesta #1 en: 2 Mayo 2011, 02:18 am »

Buenísimo, como te dije por MSN  :D.

Saludos
En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
The Swash

Desconectado Desconectado

Mensajes: 194


Programmer


Ver Perfil WWW
Re: [ASM] Find Kernel Base Address (XP,Vista,7 - x86, x64)
« Respuesta #2 en: 2 Mayo 2011, 06:09 am »

Código genérico:
Código
  1. .386    
  2. .model flat, stdcall
  3. option casemap:none
  4. assume fs:nothing
  5.  
  6. .data
  7. var1 db 'k',0,'e',0,'r',0,'n',0,'e',0,'l',0,'3',0,'2',0
  8. var2 db 'K',0,'E',0,'R',0,'N',0,'E',0,'L',0,'3',0,'2',0
  9.  
  10. .code
  11. start:
  12. mov eax, fs:[030h]
  13. mov eax, [eax + 0ch]
  14. mov eax, [eax + 0ch]
  15. xor edx, edx
  16. mov esi, 0Fh
  17.  
  18. KERNEL:
  19. mov eax, [eax]
  20. mov ebx, [eax + 030h]
  21.  
  22. CMPSTR1:
  23. mov cl, byte ptr [ebx + edx]
  24. cmp byte ptr [offset var1 + edx], cl
  25. jnz CMPSTR2
  26. inc edx
  27. cmp edx, esi
  28. jz EXIT
  29. jmp CMPSTR1
  30.  
  31. CMPSTR2:
  32. mov cl, byte ptr [ebx + edx]
  33. cmp byte ptr [offset var2 + edx], cl
  34. jnz KERNEL
  35. inc edx
  36. cmp edx, esi
  37. jz EXIT
  38. jmp CMPSTR1
  39.  
  40. EXIT:
  41. mov eax, [eax + 018h]
  42.  
  43. end start

Código con filtro:
Código
  1. mov eax, fs:[030h]
  2. mov eax, [eax + 0ch]
  3. mov eax, [eax + 0ch]
  4. KERNEL:
  5. mov eax, [eax]
  6. mov ebx, [eax + 030h]
  7. mov ecx, 00320033h
  8. cmp ecx, [ebx + 0ch]
  9. JNZ KERNEL
  10. mov eax, [eax + 018h]
« Última modificación: 2 Mayo 2011, 06:20 am por The Swash » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Buscar base address (Pointer y Offset)
Programación C/C++
jasinski 1 5,185 Último mensaje 9 Enero 2011, 00:52 am
por Niko^
Ayuda Find Memory address desde una Dll
Programación C/C++
force1758 1 2,344 Último mensaje 1 Marzo 2011, 21:34 pm
por fary
Que utilidad kernel base?
Programación C/C++
x64core 0 1,509 Último mensaje 20 Enero 2012, 04:02 am
por x64core
Oppo Find 7, un nuevo súper móvil chino a la vista
Noticias
wolfbcn 0 2,079 Último mensaje 18 Junio 2013, 18:14 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines