![]() |
![]() |
| Paypal | 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 Noteví 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++
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#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
|
||||
|
||||
|
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#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 |
|