FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
gracias
Muchas gracias cHackAll y a rounine aprendido mucho con ustedes, voy a ver porque me esta dando error esta parte del codigo
Me dice que la funcion Allowed no esta definida, voy a revisar a ver que tengo mal. De nuevo muchas gracias. No e podido ver los link que me diste porque tengo problemas con la Internet, solo puedo ver algunas paginas mi proveedor de Internet no me a dado respuesta bueno como es gratis se da todo el lujo de hacerme esperar jejejjeje. |
#2
|
||||
|
||||
what?
Amigo l30, la funcion Allowed me la invente yo en ausencia del conocimiento de tu código... Allowed es una funcion que retorna True cuando se puede correr la aplicacion introducida como parámetro, y retorna False cuando NO se puede correr la aplicacion...
Un saludo Última edición por cHackAll fecha: 09-07-2007 a las 22:43:28. |
#3
|
|||
|
|||
Gracias
Disculpa cHackAll por no haberme dado cuanta, te estoy muy agradecido por la ayuda. Voy a probar ahora mismo.
|
#4
|
||||
|
||||
H00k
Y bueno, no podía quedarme con los brazos cruzados por más tiempo. Alguien inició un hilo pidiendo ayuda para hacer tal cosa osada; no me vino más a la mente que dejarlo pasar pues no es algo que pueda enseñarse como usar una simple API… ahora aprovecho mi tiempo de ocio para dar a las futuras generaciones tal enseñanza del modo mas digerible posible.
Todavía no me queda muy claro cuál fue el motivo para desperdiciar de una forma tan descarada los recursos (me refiero a la forma en que el Güindos administra los procesos y su contexto). Sin embargo funciona independientemente de que sea la forma mas optima en que pueda haber sido realizado (desde mi humilde punto de vista), el funcionamiento no a cambiado substancialmente, pues hasta ahora se siguen explotando fallas lógicas que datan desde el desde el Güindos95. Al ser cargado (ejecutado) un proceso en memoria, éste carga a su ves las librerías que necesita para funcionar adecuadamente, significa que cada proceso tiene una copia “privada” de las librerías utilizadas. Cada librería tiene funciones, y en una determinada zona tiene una lista de los punteros de las funciones exportadas; una de las formas de realizar un hook, es modificar dichos punteros de una determinada librería para que el proceso en ves de llamar la función exportada, llame a una definida por nosotros, sin embargo las funciones internamente llaman a otras funciones de la misma librería por motivos específicos, y tales llamadas se realizan directamente. Lo que permite hacer otro tipo de hook, realizar un proceso de des-ensamblado a dicha librería y modificar también las llamadas internas. Finalmente se puede realizar un proceso de Debug, sin embargo y como los anteriores requieren un amplio conocimiento y varias horas de dedicación. Esto sin tomar en cuenta a aquellos que explican la realización de un hook al mismo núcleo (kernel):
Mi hermoso ejemplo funciona de la forma más sencilla posible, y procura no develar directamente sus encantos. Básicamente cuela una llamada al IternalHook, en la misma librería kernel32.dll la API CreateProcessInternalW, sin saber lo que hace llama a nuestra función antes de crear el nuevo proceso. Finalmente la función Decide, recibe los dos parámetros que nos importan; y como esta escrito en el ejemplo escoge cuál de ellos contiene el nombre de la aplicación, por lo que debe ser modificada para detener la creación del nuevo proceso.
La librería esta exclusivamente diseñada para realizar hook a la API CreateProcessInternalW, pues ésta es la API previa a la creación de un nuevo proceso, y ha sido escrito de tal forma que es un poco más difícil modificarlo. La forma de puede probar la librería es la siguiente:
Probado con Delphi 6, 7se, 2007. bajo Güindos eQuispe & Vista Última edición por cHackAll fecha: 23-01-2008 a las 03:51:53. Razón: Quito mi correo sin uso |
#5
|
|||
|
|||
Gracias
Descúlame cHackAll por no haberte contestado antes, estaba de viaje y no pude acercarme al ordenador ni por un momento. E visto el post y me a dejado con la boca abierta, te estoy muy agradecido por la ayuda.
|
#6
|
|||
|
|||
Oyeme, verdad que lo que no esta en clubdelphi no esta en ningun otro lado. Es por eso que lo recomiendo tanto a todos mis amigos...
|
#7
|
||||
|
||||
Si, sí, estoy de acuerdo, muy sencillo e intuitivo
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#8
|
|||
|
|||
hola a todos esta muy bueno el ejemplo, resulta que tengo un problema lo que yo quiero interceptar es otra API no la de CreateProcess, la de GetDesktopWindow, y resulta que no tengo las habilidades ni los conocimientos de como hacerlo, ademas de eso cuando dicha fucnion sea llamada hacer un windows.beep y guardar el log de la ruta en C:\log.txt, ya se como hacer para que la aplicacion corra sin ventana y demas. es que creo que tengo algo en la Pc y necesito saberlo, junto con la ruta y ademas, mi antivirus no me sirve (NOD32) alguien me puede hechar una mano |
#9
|
||||
|
||||
Cita:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problemilla con Hook | ixMike | API de Windows | 1 | 11-08-2006 01:48:19 |
Hook de Teclado + DLL | FeLiXxUcO | C++ Builder | 12 | 12-02-2006 19:59:53 |
Hook global | pepelaalfa | API de Windows | 2 | 08-12-2005 18:24:27 |
Hook Roman Con ECO ECO ECO!! | marceloalegre | Varios | 3 | 03-11-2005 15:43:41 |
Hook de teclado! | marceloalegre | Varios | 2 | 17-10-2005 00:59:47 |
|