FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Pasar este mini-codigo a C++Builder
Bueno pues sigo con el tema de los antidebuggings y ahora estoy liado con el que creo será el ultimo que mire. Se trata de este:
Código:
xor eax, eax push offset @being_debugged push dword fs:[eax] mov fs:[eax], esp //any illegal value will do //must be dword-aligned //on Windows Vista and later push esp call CloseHandle Última edición por Casimiro Notevi fecha: 23-06-2014 a las 15:50:05. |
#2
|
||||
|
||||
lo que quiero es que cuando de esa excepcion poder mostrar que el debugger está presente. He probado a poner e ClosHandle con un __try ... Catch(...), catch(Exception &e), catch(ERROR_INVALID_HANDLE) y no funciona nada. El ejecutable sale de la funcion justo despues de la excepcion. ¿Como puedo hacer para controlar esa excepcion y mostrar un mensaje que diga si esta o no siendo depurado?
|
#4
|
||||
|
||||
Te explico el código asm que expones:
Código:
xor eax, eax // Ponemos en eax un 0 push offset @being_debugged // Apilamos la rutina manejadora de excepciones push dword fs:[eax] // y añadimos esa rutina mov fs:[eax], esp // al manejador de excepciones push esp // Pasamos como parámetro a CloseHandle un valor cualquiera inválido call CloseHandle // Tratamos de cerrar el Handle que hemos pasado Saludos. |
#5
|
||||
|
||||
¿y como hago eso en c++?
|
#6
|
||||
|
||||
Si mal no recuerdo, puedes incrustar código asm en c++
|
#7
|
||||
|
||||
eso tiene dos peros, el primero que tal y como está no compila si lo encapsulas. El segundo, segun me comentaron, no se podria hacer para programas de x64. Seguro que se puede hacer usando c++.
|
#8
|
||||
|
||||
#9
|
||||
|
||||
me han dicho que pruebe algo como esto:
Código:
HANDLE pAux; __try [throw CloseHandle(pAux);] catch[EXCEPTION_INVALID_HANDLE) [...] Última edición por ecfisa fecha: 24-06-2014 a las 16:40:55. Razón: agregar etiquetas |
#10
|
||||
|
||||
Código:
HANDLE pAux; __try{ CloseHandle(pAux); } __except(EXCEPTION_EXECUTE_HANDLER){ Beep(100, 100); } Saludos. |
#11
|
||||
|
||||
Muchas gracias amigo, ya lo habia conseguido hacer con asm pero esto me gusta mas asi que lo he puesto asi y queda fantastico jejeje.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ayuda a pasar este código a firemonkey. | elmago00 | FireMonkey | 55 | 08-01-2015 15:25:18 |
Pasar pequeño codigo Delphi a Builder | aguml | C++ Builder | 11 | 03-06-2013 17:13:51 |
pasar codigo de delphi a c++ Builder | rxaxx9 | C++ Builder | 2 | 13-05-2012 06:27:17 |
Porque este código me da error (adjunto código) | David | JAVA | 1 | 12-03-2009 20:07:27 |
Ejecutar aplicación en sistema que no esté instalado Builder C++ | meme | C++ Builder | 2 | 11-03-2008 20:49:40 |
|