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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Crasheando un Proceso.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Crasheando un Proceso.  (Leído 9,983 veces)
APOKLIPTICO


Desconectado Desconectado

Mensajes: 3.871


Toys in the attic.


Ver Perfil
Crasheando un Proceso.
« en: 8 Diciembre 2009, 00:42 am »

Hola gente, tengo un problemon, estoy haciendo un pequeño programita q cada tanto crashea un programa editando partes aleatorias de la memoria con datos aleatorios tengo dos preguntas:

1) Que parte de la memoria me conviene editar para tener mayor probabilidad de crashear el proceso? Cual es la direccion de esa memoria?

2) Por qué este codigo no anda?:
Código
  1. Private Sub Timer2_Timer()
  2. 'appcrash
  3. Dim i As Integer
  4. For i = 0 To 1
  5. DoEvents
  6. Call WriteAInt(APP_MEM_START, Rnd * 255, 796)
  7. Next i
  8. Timer2.Enabled = False
  9. If DEBUGON = False Then
  10. Timer1.Enabled = True
  11. End If
  12. End Sub
  13.  
  14. Function WriteAInt(ByVal Address As Long, ByVal Value As Long, ByVal PID As Long)
  15. Dim Handle As Long
  16. Handle = OpenProcess(PROCESS_ALL_ACCESS, False, PID)
  17. Dim ret As Variant
  18. ret = WriteProcessMemory(Handle, Address, Value, 4, 0&)
  19. Call CloseHandle(Handle)
  20. End Function

Me abre el proceso, xq el handle me devuelve un valor non-zero, pero el writeprocessmemory me devuelve "0" siempre, sin importar que valor en la memoria le ponga...
Y si uso el getlasterror, esta tambien me devuelve "0", osea q no se cual es el error q estoy teniendo, tengo privilegios de admin.

Cual puede ser el problema???


En línea

AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
APOKLIPTICO


Desconectado Desconectado

Mensajes: 3.871


Toys in the attic.


Ver Perfil
Re: Crasheando un Proceso.
« Respuesta #1 en: 8 Diciembre 2009, 19:02 pm »

Nadie???


En línea

AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: Crasheando un Proceso.
« Respuesta #2 en: 8 Diciembre 2009, 22:14 pm »

Tal vez no haya ningun problema :huh:
No tiene porque crashear porque escribas en memoria...

Que proceso pretendes Crashear? Tal vez hay una forma mas sencilla...

Si es una APP de VB existe una forma muy simple ;D
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.478


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Crasheando un Proceso.
« Respuesta #3 en: 8 Diciembre 2009, 22:47 pm »

Hola!

Si te abre el proceso con el máximo acceso, porqué no usas TerminateProcess ??

Con esa lo terminas. Ahora, si quieres "tocar" el proceso a mano, puedes intentar obtener el PEB y luego modificar las instrucciones a las que apuntará EIP. Con eso lo crasheas también (ó cambiando EIP).

Sinó también, si tienes acceso al EXE (o DLL) que se ejecuta, puedes ver que instrucción modificar, para que crashee. (eso si, asegúrate que esa parte no tenga control de excepciones, y que si lo tiene, salga de todas formas).

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

APOKLIPTICO


Desconectado Desconectado

Mensajes: 3.871


Toys in the attic.


Ver Perfil
Re: Crasheando un Proceso.
« Respuesta #4 en: 8 Diciembre 2009, 23:28 pm »

No quiero terminar el proceso, xq eso puede ser un poco sospechoso. Habia pensado lo de modificar el EIP para causar un access violation. Como hago para encontrar esa address??
Y otro problema, no te olvides q todavia sigue sin andar el codigo q postee, osea q aunque quiera modificar la EIP y tenga la direccion de memoria, no podría hacerlo xq no anda ¬¬ jejej...
Tenes idea q puede estar mal en el codigo?
Gracias!
En línea

AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: Crasheando un Proceso.
« Respuesta #5 en: 9 Diciembre 2009, 08:34 am »

Fijate en este source, tiene casi todo lo que necesitas. http://www.advancevb.com.ar/?p=159
En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
APOKLIPTICO


Desconectado Desconectado

Mensajes: 3.871


Toys in the attic.


Ver Perfil
Re: Crasheando un Proceso.
« Respuesta #6 en: 9 Diciembre 2009, 13:04 pm »

MMh, muy interesante, muchas gracias x el aporte, ya lo incorporé a mi programa, está sobreescribiendo bien, la funcion writeaddress me está devolviendo nonzero. Okay, estuve googleando un poco, y encontre esto:
Código:
 +0x000 InheritedAddressSpace : 0 ''
   +0x001 ReadImageFileExecOptions : 0 ''
   +0x002 BeingDebugged    : 0x1 ''
   +0x003 SpareBool        : 0 ''
   +0x004 Mutant           : 0xffffffff
   +0x008 ImageBaseAddress : 0x00400000
   +0x00c Ldr              : 0x00241ea0 _PEB_LDR_DATA
   +0x010 ProcessParameters : 0x00020000 _RTL_USER_PROCESS_PARAMETERS
   +0x014 SubSystemData    : (null)
   +0x018 ProcessHeap      : 0x00140000
   +0x01c FastPebLock      : 0x77fc49e0 _RTL_CRITICAL_SECTION
   +0x020 FastPebLockRoutine : 0x77f5b2a0
   +0x024 FastPebUnlockRoutine : 0x77f5b380
   +0x028 EnvironmentUpdateCount : 1
   +0x02c KernelCallbackTable : (null)
   +0x030 SystemReserved   : [1] 0
   +0x034 ExecuteOptions   : 0y00
   +0x034 SpareBits        : 0y000000000000000000000000000000 (0)
   +0x038 FreeList         : (null)
   +0x03c TlsExpansionCounter : 0
   +0x040 TlsBitmap        : 0x77fc4680
   +0x044 TlsBitmapBits    : [2] 0
   +0x04c ReadOnlySharedMemoryBase : 0x7f6f0000
   +0x050 ReadOnlySharedMemoryHeap : 0x7f6f0000
   +0x054 ReadOnlyStaticServerData : 0x7f6f0688  -> (null)
   +0x058 AnsiCodePageData : 0x7ffb0000
   +0x05c OemCodePageData  : 0x7ffc1000
   +0x060 UnicodeCaseTableData : 0x7ffd2000
   +0x064 NumberOfProcessors : 1
   +0x068 NtGlobalFlag     : 0x70
   +0x070 CriticalSectionTimeout : _LARGE_INTEGER 0xffffe86d`079b8000
   +0x078 HeapSegmentReserve : 0x100000
   +0x07c HeapSegmentCommit : 0x2000
   +0x080 HeapDeCommitTotalFreeThreshold : 0x10000
   +0x084 HeapDeCommitFreeBlockThreshold : 0x1000
   +0x088 NumberOfHeaps    : 3
   +0x08c MaximumNumberOfHeaps : 0x10
   +0x090 ProcessHeaps     : 0x77fc5a80  -> 0x00140000
   +0x094 GdiSharedHandleTable : (null)
   +0x098 ProcessStarterHelper : (null)
   +0x09c GdiDCAttributeList : 0
   +0x0a0 LoaderLock       : 0x77fc1774
   +0x0a4 OSMajorVersion   : 5
   +0x0a8 OSMinorVersion   : 1
   +0x0ac OSBuildNumber    : 0xa28
   +0x0ae OSCSDVersion     : 0x100
   +0x0b0 OSPlatformId     : 2
   +0x0b4 ImageSubsystem   : 3
   +0x0b8 ImageSubsystemMajorVersion : 4
   +0x0bc ImageSubsystemMinorVersion : 0
   +0x0c0 ImageProcessAffinityMask : 0
   +0x0c4 GdiHandleBuffer  : [34] 0
   +0x14c PostProcessInitRoutine : (null)
   +0x150 TlsExpansionBitmap : 0x77fc4660
   +0x154 TlsExpansionBitmapBits : [32] 0
   +0x1d4 SessionId        : 0
   +0x1d8 AppCompatFlags   : _ULARGE_INTEGER 0x0
   +0x1e0 AppCompatFlagsUser : _ULARGE_INTEGER 0x0
   +0x1e8 pShimData        : (null)
   +0x1ec AppCompatInfo    : (null)
   +0x1f0 CSDVersion       : _UNICODE_STRING "Service Pack 1"
   +0x1f8 ActivationContextData : (null)
   +0x1fc ProcessAssemblyStorageMap : (null)
   +0x200 SystemDefaultActivationContextData : 0x00130000
   +0x204 SystemAssemblyStorageMap : (null)
   +0x208 MinimumStackCommit : 0

Que parte debería sobreescribir para crashear el programa con un heap/stack overflow???
« Última modificación: 9 Diciembre 2009, 13:31 pm por APOKLIPTICO » En línea

AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: Crasheando un Proceso.
« Respuesta #7 en: 9 Diciembre 2009, 15:34 pm »

Si el programa no esta realizando ninguna acción en ese momento no lo crashearas tan facilmente...

Porque no simplemente le inyectas un pequeño codigo en ASM?
Código
  1. xor eax, eax
  2. mov [eax], eax
:D
En línea

APOKLIPTICO


Desconectado Desconectado

Mensajes: 3.871


Toys in the attic.


Ver Perfil
Re: Crasheando un Proceso.
« Respuesta #8 en: 9 Diciembre 2009, 16:53 pm »

Igual el proceso va a estar haciendo, de eso estoy seguro, es un programa q utiliza internet, osea q siempre tiene q mandar o recibir algo (keep-alives, requests, etc).
Como hago para sobreescribir la EIP teniendo la direccion del EPB???
En línea

AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.478


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Crasheando un Proceso.
« Respuesta #9 en: 9 Diciembre 2009, 21:17 pm »

Si usa alguna API que conozcas, puedes parchearla para que genere una excepcion.

Asi, si no la controla, queda frito...

Saludos!

En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines