Autor
|
Tema: Error en Buffer Overflow (Leído 20,898 veces)
|
Lodos76
Desconectado
Mensajes: 49
|
Buenas gente. Verán, estaba siguiendo el tutorial de Rojodos sobre buffer overflow ( http://www.todopsp.com/foros/showthread.php?t=23953 , hay que darle a "Premum Download" y se descarga), y... claro, sé ensamblador y entiendo lo que dice, pero a la hora de poner muchas AAAAAAs (90 As por ejemplo) con el CMD y darle a "más detalles", el offset no es "41414141", y no entiendo el porqué. He probado a ejecutarlo en un Win8 físico y en una máquina virtual con WinXP Professional SP1 (que no tiene ni siquiera el DEP, al ser SP1), y a debuggearlo con OllyDbg 1.10 y con Immunity Debugger, pero me da el mismo resultado. En concreto, cuando intento debuggear con Olly sin argumentos, el exit code es 0, y cuando le pongo 90 As y le doy a F9 (run), el exit code es C0000409 He compilado el código fuente desde la consola de MVC++ 2005 (cl.exe /TC vuln1.c). Subo el ejecutable por si queréis echarle un vistazo: http://bayfiles.net/file/17EMR/HuI4La/vuln1.exeEl código compilado es el siguiente:/* vuln1.c por Rojodos */ #include <stdio.h> // librería stdio.h, funciones básicas de Entrada/Salida int main (int argc, char **argv) // La función "principal" del programa función { char buffer[64]; //Declaramos un array con 64 bytes de espacio if (argc < 2) // Si los argumentos son menores que 2... { printf ("Introduzca un argumento al programa\n"); //Printeamos return 0; // y retornamos 0 a la función main, y el programa acaba } strcpy (buffer , argv [1]); // Aqui es donde esta el fallo. return 0; // Devolvemos 0 a main, y el programa acaba. }
He probado a seguir el tutorial de Coreland, y con el programa ya compilado del PDF nº 1 sí me funciona lo de modificar el EIP, pero si lo compilo yo no, y no sé por qué. Gracias de antemano
|
|
« Última modificación: 27 Febrero 2014, 17:58 pm por Lodos76 »
|
En línea
|
|
|
|
soez
Desconectado
Mensajes: 76
|
Tienes que dar más datos, que observas en la pila, esta el buffer de Aes por algun lado? Pon un bp en strcpy y tracea.
|
|
|
En línea
|
01001010 01100001 01110110 01101001 01100101 01110010
|
|
|
Lodos76
Desconectado
Mensajes: 49
|
Tienes que dar más datos, que observas en la pila, esta el buffer de Aes por algun lado? Pon un bp en strcpy y tracea.
Vale, hay un problema aquí: Abro Olly Pongo 90 As y Restart A debuggear! CommandBar -> BP strcpy (no da ningún error) Pero no encuentro por el ejecutable la llamada a msvcrt.strcpy o a user32.strcpy, en cambio, cuando compilaba con GCC (Cygwin) sí que me saltaba a una biblioteca suya y a la función strcpy. Pero bueno, vayamos a la ejecución de código: Le doy a run y sale esto , PUES NADA, a debuggear paso por paso. Sigo ejecutando y salen en la pila las As: , sigo ejecutando y me encuentro con esto: , aunque luego en la pila sólo están las 90 que yo puse). Ya estoy más cerca. Pero sigo ejecutando y me encuentro con que ya no están en la pila las As y con IsDebuggerPresent!! pues como no veo saltos condicionales después del call, sustituyo la función por NOPs y continuo ejecutando, y ahora se pushea el ExitCode y se llama a TerminateProcess, y finaliza con el ExitCode que posteé en la entrada del tema (C0000409), Salu2
|
|
« Última modificación: 27 Febrero 2014, 23:10 pm por Lodos76 »
|
En línea
|
|
|
|
soez
Desconectado
Mensajes: 76
|
Has pasado la función strcpy traceando? me parece que si, pon una imagen justo en el call del olly antes de entrar a la función strcpy.
|
|
|
En línea
|
01001010 01100001 01110110 01101001 01100101 01110010
|
|
|
Lodos76
Desconectado
Mensajes: 49
|
Has pasado la función strcpy traceando? me parece que si, pon una imagen justo en el call del olly antes de entrar a la función strcpy.
Es lo que te comentaba, no aparece la función como una llamada, no sé si es que se implementa en el ejecutable como código o qué... Sólo he encontrado interesante la función kernel32.LCMapStringA. Click derecho --> Search for --> All intermodular callsFound intermodular calls Address Disassembly Destination 00401437 CALL vuln1.0040390C (Initial CPU selection) 00408A40 CALL DWORD PTR DS:[<&KERNEL32.CloseHandl kernel32.CloseHandle 00409306 CALL ESI kernel32.CloseHandle 004092E3 CALL DWORD PTR DS:[<&KERNEL32.CreateFile kernel32.CreateFileA 00402642 CALL DWORD PTR DS:[<&KERNEL32.ExitProces kernel32.ExitProcess 0040734C CALL DWORD PTR DS:[<&KERNEL32.FlushFileB kernel32.FlushFileBuffers 00403076 CALL DWORD PTR DS:[<&KERNEL32.FreeEnviro kernel32.FreeEnvironmentStringsA 0040308D CALL DWORD PTR DS:[<&KERNEL32.FreeEnviro kernel32.FreeEnvironmentStringsA 00403033 CALL DWORD PTR DS:[<&KERNEL32.FreeEnviro kernel32.FreeEnvironmentStringsW 00404255 CALL DWORD PTR DS:[<&KERNEL32.GetACP>] kernel32.GetACP 0040137A CALL DWORD PTR DS:[<&KERNEL32.GetCommand kernel32.GetCommandLineA 00406D57 CALL DWORD PTR DS:[<&KERNEL32.GetConsole kernel32.GetConsoleCP 00406D3B CALL DWORD PTR DS:[<&KERNEL32.GetConsole kernel32.GetConsoleMode 00408BFA CALL DWORD PTR DS:[<&KERNEL32.GetConsole kernel32.GetConsoleOutputCP 00404001 CALL DWORD PTR DS:[<&KERNEL32.GetCPInfo> kernel32.GetCPInfo 004042DB CALL DWORD PTR DS:[<&KERNEL32.GetCPInfo> kernel32.GetCPInfo 00408FB2 CALL ESI kernel32.GetCPInfo 00408FCB CALL ESI kernel32.GetCPInfo 0040221F CALL DWORD PTR DS:[<&KERNEL32.GetCurrent kernel32.GetCurrentProcess 004025DB CALL DWORD PTR DS:[<&KERNEL32.GetCurrent kernel32.GetCurrentProcess 0040394D CALL DWORD PTR DS:[<&KERNEL32.GetCurrent kernel32.GetCurrentProcessId 00403577 CALL DWORD PTR DS:[<&KERNEL32.GetCurrent kernel32.GetCurrentThreadId 0040383C CALL DWORD PTR DS:[<&KERNEL32.GetCurrent kernel32.GetCurrentThreadId 00403955 CALL DWORD PTR DS:[<&KERNEL32.GetCurrent kernel32.GetCurrentThreadId 00403045 CALL DWORD PTR DS:[<&KERNEL32.GetEnviron kernel32.GetEnvironmentStringsA 00402F83 CALL EDI kernel32.GetEnvironmentStringsW 004031C7 CALL DWORD PTR DS:[<&KERNEL32.GetFileTyp kernel32.GetFileType 00403263 CALL DWORD PTR DS:[<&KERNEL32.GetFileTyp kernel32.GetFileType 00408F44 CALL DWORD PTR DS:[<&KERNEL32.GetLocaleI kernel32.GetLocaleInfoA 0040298B CALL DWORD PTR DS:[<&KERNEL32.GetModuleF kernel32.GetModuleFileNameA 00402ED8 CALL DWORD PTR DS:[<&KERNEL32.GetModuleF kernel32.GetModuleFileNameA 00402613 CALL DWORD PTR DS:[<&KERNEL32.GetModuleH kernel32.GetModuleHandleA 0040335D CALL DWORD PTR DS:[<&KERNEL32.GetModuleH kernel32.GetModuleHandleA 004033C9 CALL DWORD PTR DS:[<&KERNEL32.GetModuleH kernel32.GetModuleHandleA 00403474 CALL DWORD PTR DS:[<&KERNEL32.GetModuleH kernel32.GetModuleHandleA 004036D9 CALL DWORD PTR DS:[<&KERNEL32.GetModuleH kernel32.GetModuleHandleA 00405403 CALL DWORD PTR DS:[<&KERNEL32.GetModuleH kernel32.GetModuleHandleA 00404232 CALL DWORD PTR DS:[<&KERNEL32.GetOEMCP>] kernel32.GetOEMCP 00402623 CALL DWORD PTR DS:[<&KERNEL32.GetProcAdd kernel32.GetProcAddress 0040336D CALL DWORD PTR DS:[<&KERNEL32.GetProcAdd kernel32.GetProcAddress 004033D9 CALL DWORD PTR DS:[<&KERNEL32.GetProcAdd kernel32.GetProcAddress 0040349D CALL EBX kernel32.GetProcAddress 004034AD CALL EBX kernel32.GetProcAddress 004036FB CALL ESI kernel32.GetProcAddress 00403708 CALL ESI kernel32.GetProcAddress 00403715 CALL ESI kernel32.GetProcAddress 00403722 CALL ESI kernel32.GetProcAddress 00405413 CALL DWORD PTR DS:[<&KERNEL32.GetProcAdd kernel32.GetProcAddress 004054F7 CALL ESI kernel32.GetProcAddress 0040129B CALL EBX kernel32.GetProcessHeap 004030B1 CALL DWORD PTR DS:[<&KERNEL32.GetStartup kernel32.GetStartupInfoA 00402A5B CALL DWORD PTR DS:[<&KERNEL32.GetStdHand kernel32.GetStdHandle 00403251 CALL DWORD PTR DS:[<&KERNEL32.GetStdHand kernel32.GetStdHandle 00407932 CALL DWORD PTR DS:[<&KERNEL32.GetStringT kernel32.GetStringTypeA 004077CE CALL DWORD PTR DS:[<&KERNEL32.GetStringT kernel32.GetStringTypeW 004078BD CALL DWORD PTR DS:[<&KERNEL32.GetStringT kernel32.GetStringTypeW 00403941 CALL DWORD PTR DS:[<&KERNEL32.GetSystemT kernel32.GetSystemTimeAsFileTime 0040395D CALL DWORD PTR DS:[<&KERNEL32.GetTickCou kernel32.GetTickCount 004012BF CALL DWORD PTR DS:[<&KERNEL32.GetVersion kernel32.GetVersionExA 004038C3 CALL DWORD PTR DS:[<&KERNEL32.HeapCreate kernel32.HeapCreate 004038F9 CALL DWORD PTR DS:[<&KERNEL32.HeapDestro kernel32.HeapDestroy 004053AE CALL DWORD PTR DS:[<&KERNEL32.Initialize kernel32.InitializeCriticalSection 00403642 CALL DWORD PTR DS:[<&KERNEL32.Interlocke kernel32.InterlockedDecrement 004041C0 CALL DWORD PTR DS:[<&KERNEL32.Interlocke kernel32.InterlockedDecrement 004044A6 CALL DWORD PTR DS:[<&KERNEL32.Interlocke kernel32.InterlockedDecrement 0040455D CALL DWORD PTR DS:[<&KERNEL32.Interlocke kernel32.InterlockedDecrement 004047C1 CALL EDI kernel32.InterlockedDecrement 004047CE CALL EDI kernel32.InterlockedDecrement 004034CF CALL DWORD PTR DS:[<&KERNEL32.Interlocke kernel32.InterlockedIncrement 004041EB CALL DWORD PTR DS:[<&KERNEL32.Interlocke kernel32.InterlockedIncrement 004044CB CALL EDI kernel32.InterlockedIncrement 00404737 CALL EDI kernel32.InterlockedIncrement 00404744 CALL EDI kernel32.InterlockedIncrement 004021F0 CALL DWORD PTR DS:[<&KERNEL32.IsDebugger kernel32.IsDebuggerPresent 00407662 CALL ESI kernel32.LCMapStringA 00407721 CALL DWORD PTR DS:[<&KERNEL32.LCMapStrin kernel32.LCMapStringA 004073EC CALL DWORD PTR DS:[<&KERNEL32.LCMapStrin kernel32.LCMapStringW 00407512 CALL ESI kernel32.LCMapStringW 0040754B CALL ESI kernel32.LCMapStringW 004075AF CALL DWORD PTR DS:[<&KERNEL32.LCMapStrin kernel32.LCMapStringW 004054D8 CALL DWORD PTR DS:[<&KERNEL32.LoadLibrar kernel32.LoadLibraryA 0040748A CALL ESI kernel32.MultiByteToWideChar 00407845 CALL ESI kernel32.MultiByteToWideChar 00408CD9 CALL DWORD PTR DS:[<&KERNEL32.MultiByteT kernel32.MultiByteToWideChar 00408D47 CALL DWORD PTR DS:[<&KERNEL32.MultiByteT kernel32.MultiByteToWideChar 00403969 CALL DWORD PTR DS:[<&KERNEL32.QueryPerfo kernel32.QueryPerformanceCounter 0040129E CALL DWORD PTR DS:[<&KERNEL32.HeapAlloc> ntdll.RtlAllocateHeap 00405BF2 CALL DWORD PTR DS:[<&KERNEL32.HeapAlloc> ntdll.RtlAllocateHeap 00405FC9 CALL DWORD PTR DS:[<&KERNEL32.HeapAlloc> ntdll.RtlAllocateHeap 004068B4 CALL DWORD PTR DS:[<&KERNEL32.HeapAlloc> ntdll.RtlAllocateHeap 004069F1 CALL DWORD PTR DS:[<&KERNEL32.HeapAlloc> ntdll.RtlAllocateHeap 00403B63 CALL DWORD PTR DS:[<&KERNEL32.DeleteCrit ntdll.RtlDeleteCriticalSection 00401540 CALL DWORD PTR DS:[<&KERNEL32.EnterCriti ntdll.RtlEnterCriticalSection 00401563 CALL DWORD PTR DS:[<&KERNEL32.EnterCriti ntdll.RtlEnterCriticalSection 00403EC5 CALL DWORD PTR DS:[<&KERNEL32.EnterCriti ntdll.RtlEnterCriticalSection 00408EE3 CALL DWORD PTR DS:[<&KERNEL32.EnterCriti ntdll.RtlEnterCriticalSection 004012CF CALL DWORD PTR DS:[<&KERNEL32.HeapFree>] ntdll.RtlFreeHeap 004012F5 CALL DWORD PTR DS:[<&KERNEL32.HeapFree>] ntdll.RtlFreeHeap 00403ADB CALL DWORD PTR DS:[<&KERNEL32.HeapFree>] ntdll.RtlFreeHeap 00405F0C CALL DWORD PTR DS:[<&KERNEL32.HeapFree>] ntdll.RtlFreeHeap 00405FFA CALL DWORD PTR DS:[<&KERNEL32.HeapFree>] ntdll.RtlFreeHeap 00402F97 CALL DWORD PTR DS:[<&KERNEL32.GetLastErr ntdll.RtlGetLastWin32Error 00403519 CALL DWORD PTR DS:[<&KERNEL32.GetLastErr ntdll.RtlGetLastWin32Error 00403AEC CALL DWORD PTR DS:[<&KERNEL32.GetLastErr ntdll.RtlGetLastWin32Error 00404C2B CALL DWORD PTR DS:[<&KERNEL32.GetLastErr ntdll.RtlGetLastWin32Error 00406A8F CALL DWORD PTR DS:[<&KERNEL32.GetLastErr ntdll.RtlGetLastWin32Error 00406B1C CALL DWORD PTR DS:[<&KERNEL32.GetLastErr ntdll.RtlGetLastWin32Error 00407118 CALL DWORD PTR DS:[<&KERNEL32.GetLastErr ntdll.RtlGetLastWin32Error 00407163 CALL DWORD PTR DS:[<&KERNEL32.GetLastErr ntdll.RtlGetLastWin32Error 00407356 CALL DWORD PTR DS:[<&KERNEL32.GetLastErr ntdll.RtlGetLastWin32Error 004073FE CALL DWORD PTR DS:[<&KERNEL32.GetLastErr ntdll.RtlGetLastWin32Error 004077E0 CALL DWORD PTR DS:[<&KERNEL32.GetLastErr ntdll.RtlGetLastWin32Error 00407D6D CALL DWORD PTR DS:[<&KERNEL32.GetLastErr ntdll.RtlGetLastWin32Error 00408A4A CALL DWORD PTR DS:[<&KERNEL32.GetLastErr ntdll.RtlGetLastWin32Error 00408BDA CALL DWORD PTR DS:[<&KERNEL32.GetLastErr ntdll.RtlGetLastWin32Error 00401592 CALL DWORD PTR DS:[<&KERNEL32.LeaveCriti ntdll.RtlLeaveCriticalSection 004015B5 CALL DWORD PTR DS:[<&KERNEL32.LeaveCriti ntdll.RtlLeaveCriticalSection 00403DD2 CALL DWORD PTR DS:[<&KERNEL32.LeaveCriti ntdll.RtlLeaveCriticalSection 00408F1B CALL DWORD PTR DS:[<&KERNEL32.LeaveCriti ntdll.RtlLeaveCriticalSection 00405F93 CALL DWORD PTR DS:[<&KERNEL32.HeapReAllo ntdll.RtlReAllocateHeap 00406A48 CALL DWORD PTR DS:[<&KERNEL32.HeapReAllo ntdll.RtlReAllocateHeap 00406AC9 CALL DWORD PTR DS:[<&KERNEL32.HeapReAllo ntdll.RtlReAllocateHeap 0040358F CALL DWORD PTR DS:[<&KERNEL32.SetLastErr ntdll.RtlSetLastWin32Error 00405465 CALL DWORD PTR DS:[<&KERNEL32.SetLastErr ntdll.RtlSetLastWin32Error 00408411 CALL DWORD PTR DS:[<&KERNEL32.HeapSize>] ntdll.RtlSizeHeap 00404F0E CALL <JMP.&KERNEL32.RtlUnwind> ntdll.RtlUnwind 00408017 CALL <JMP.&KERNEL32.RtlUnwind> ntdll.RtlUnwind 00407D60 CALL DWORD PTR DS:[<&KERNEL32.SetFilePoi kernel32.SetFilePointer 004032BB CALL DWORD PTR DS:[<&KERNEL32.SetHandleC kernel32.SetHandleCount 00408DC6 CALL DWORD PTR DS:[<&KERNEL32.SetStdHand kernel32.SetStdHandle 004021FA CALL DWORD PTR DS:[<&KERNEL32.SetUnhandl kernel32.SetUnhandledExceptionFilter 004025B4 CALL DWORD PTR DS:[<&KERNEL32.SetUnhandl kernel32.SetUnhandledExceptionFilter 0040850D CALL DWORD PTR DS:[<&KERNEL32.SetUnhandl kernel32.SetUnhandledExceptionFilter 004039BD CALL DWORD PTR DS:[<&KERNEL32.Sleep>] kernel32.Sleep 00403A05 CALL DWORD PTR DS:[<&KERNEL32.Sleep>] kernel32.Sleep 00403A50 CALL DWORD PTR DS:[<&KERNEL32.Sleep>] kernel32.Sleep 00402226 CALL DWORD PTR DS:[<&KERNEL32.TerminateP kernel32.TerminateProcess 004025E2 CALL DWORD PTR DS:[<&KERNEL32.TerminateP kernel32.TerminateProcess 004033F3 CALL DWORD PTR DS:[<&KERNEL32.TlsAlloc>] kernel32.TlsAlloc 00403772 CALL DWORD PTR DS:[<&KERNEL32.TlsAlloc>] kernel32.TlsAlloc 00403451 CALL DWORD PTR DS:[<&KERNEL32.TlsFree>] kernel32.TlsFree 00403331 CALL ESI kernel32.TlsGetValue 00403348 CALL ESI kernel32.TlsGetValue 0040339D CALL ESI kernel32.TlsGetValue 004033B4 CALL ESI kernel32.TlsGetValue 00403402 CALL DWORD PTR DS:[<&KERNEL32.TlsGetValu kernel32.TlsGetValue 00403532 CALL DWORD PTR DS:[<&KERNEL32.TlsGetValu kernel32.TlsGetValue 0040341F CALL DWORD PTR DS:[<&KERNEL32.TlsSetValu kernel32.TlsSetValue 00402204 CALL DWORD PTR DS:[<&KERNEL32.UnhandledE kernel32.UnhandledExceptionFilter 004025BF CALL DWORD PTR DS:[<&KERNEL32.UnhandledE kernel32.UnhandledExceptionFilter 00402AE0 CALL DWORD PTR DS:[<&KERNEL32.UnhandledE kernel32.UnhandledExceptionFilter 00402B30 CALL DWORD PTR DS:[<&KERNEL32.UnhandledE kernel32.UnhandledExceptionFilter 00408517 CALL DWORD PTR DS:[<&KERNEL32.UnhandledE kernel32.UnhandledExceptionFilter 00405FE3 CALL DWORD PTR DS:[<&KERNEL32.VirtualAll kernel32.VirtualAlloc 0040606E CALL DWORD PTR DS:[<&KERNEL32.VirtualAll kernel32.VirtualAlloc 00405E9F CALL ESI kernel32.VirtualFree 00402FF8 CALL EDI kernel32.WideCharToMultiByte 00404C0D CALL DWORD PTR DS:[<&KERNEL32.WideCharTo kernel32.WideCharToMultiByte 00406E0D CALL DWORD PTR DS:[<&KERNEL32.WideCharTo kernel32.WideCharToMultiByte 004070DE CALL DWORD PTR DS:[<&KERNEL32.WideCharTo kernel32.WideCharToMultiByte 004075D2 CALL DWORD PTR DS:[<&KERNEL32.WideCharTo kernel32.WideCharToMultiByte 00408C01 CALL DWORD PTR DS:[<&KERNEL32.WideCharTo kernel32.WideCharToMultiByte 00409093 CALL DWORD PTR DS:[<&KERNEL32.WideCharTo kernel32.WideCharToMultiByte 004090B9 CALL EBX kernel32.WideCharToMultiByte 00408C1D CALL DWORD PTR DS:[<&KERNEL32.WriteConso kernel32.WriteConsoleA 00408BC7 CALL DWORD PTR DS:[<&KERNEL32.WriteConso kernel32.WriteConsoleW 00402A86 CALL DWORD PTR DS:[<&KERNEL32.WriteFile> kernel32.WriteFile 00406E30 CALL DWORD PTR DS:[<&KERNEL32.WriteFile> kernel32.WriteFile 00406E71 CALL DWORD PTR DS:[<&KERNEL32.WriteFile> kernel32.WriteFile 00406F8B CALL DWORD PTR DS:[<&KERNEL32.WriteFile> kernel32.WriteFile 0040702E CALL DWORD PTR DS:[<&KERNEL32.WriteFile> kernel32.WriteFile 00407105 CALL DWORD PTR DS:[<&KERNEL32.WriteFile> kernel32.WriteFile 0040714D CALL DWORD PTR DS:[<&KERNEL32.WriteFile> kernel32.WriteFile P.D.: He tenido que actualizar a WinXP SP3, aunque no importa, ya que el resultado es el mismo (las imágenes y todos los datos que he puesto son con el SP3).
|
|
« Última modificación: 28 Febrero 2014, 15:35 pm por Lodos76 »
|
En línea
|
|
|
|
soez
Desconectado
Mensajes: 76
|
Tiene que aparecerte la función strcpy, mira en la pestaña B si tienes el breakpoint a strcpy. O si no search for -> names in all modules. Puedes enseñarme el call justo antes del 00401041?
|
|
|
En línea
|
01001010 01100001 01110110 01101001 01100101 01110010
|
|
|
Lodos76
Desconectado
Mensajes: 49
|
Tiene que aparecerte la función strcpy, mira en la pestaña B si tienes el breakpoint a strcpy. O si no search for -> names in all modules. Puedes enseñarme el call justo antes del 00401041?
Vaya, aparece . BP strcpy --> mirar Pestaña B7C90248D ntdll Always PUSH EDI Colocado Presiono run (F9) y --> exitcode C0000409, y termina el programa. Quizá alguna protección de software me lo bloquee... Click derecho --> Search for --> Name in all modules7C90248D ntdll .text Export strcpy Imagen antes del CALL 00401041
|
|
« Última modificación: 28 Febrero 2014, 23:06 pm por Lodos76 »
|
En línea
|
|
|
|
.:UND3R:.
|
En cuanto a la compilación, desactivaste GS?, DEP está desactivado para tal ejecutable?, desmarcaste todos los saltos de excepciones el el debugger?, ya que si no los quitas, el depurador intentará saltarlos y así no podrás percatarte de donde se ha producido el error (que valor toma EIP), más tarde le echaré una mirada, saludos.
|
|
|
En línea
|
Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
|
|
|
soez
Desconectado
Mensajes: 76
|
Pon un bp en 00401032 y aprieta run y sacale imagen cuando pare. Te pongo aqui este ollydbg parcheado para que no detecte el IsDebuggerPresent (No me acuerdo si era el parcheado 4 o 5 si eso avisa) por ir eliminando posibilidades. Aunque este DEP activado debería parar en strcpy y ya después se ve. Si, deberias destildar todas las excepciones, puedes mirar la pestaña L log para ver que ha pasado también. http://ricardonarvaja.info/WEB/OTROS/HERRAMIENTAS/L-M-N-O-P/Parcheado%204.rar
|
|
« Última modificación: 28 Febrero 2014, 23:16 pm por soez »
|
En línea
|
01001010 01100001 01110110 01101001 01100101 01110010
|
|
|
Lodos76
Desconectado
Mensajes: 49
|
En cuanto a la compilación, desactivaste GS?, DEP está desactivado para tal ejecutable?, desmarcaste todos los saltos de excepciones el el debugger?, ya que si no los quitas, el depurador intentará saltarlos y así no podrás percatarte de donde se ha producido el error (que valor toma EIP), más tarde le echaré una mirada, saludos.
Whaaat? ¿Desmarqué? ¿Cómo hago todo eso? No me importa leerme todo lo que me pases, quiero aprender. He buscado por "desmarcar saltos debugger", "desmarcar jmp debugger" (también en inglés) y no sale nada que me pueda servir. Y perdón, ahora estoy en SP3, pensé que no se activaría solo... Ya está DEP desactivado.
|
|
|
En línea
|
|
|
|
|
|