![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Cita:
La bandera EXTENDED_STARTUPINFO_PRESENT fuerza el uso de una estructura como esta:
y con las APIs InitializeProcThreadAttributeList y UpdateProcThreadAttribute Crear la lista de atributos (atributo PROC_THREAD_ATTRIBUTE_PARENT_PROCESS) que permitirá a CreateProcess engañar al sistema. He escrito una pequeña aplicación que permite realizarlo, he contrastado el código de cHackAll y el aportado por nlsgarcia, ninguno encuentra el verdadero padre del proceso hijo. Hasta el momento no he encontrado el antídoto, aclarar que el ProcessExplorer de Sysinternals también es engañado.
Subo un binario compilado para pruebas, he elegido que el padre sea Explorer.exe porque es lo más habitual en procesos de escritorio: ExecuteWithParent Cita:
Saludos. Última edición por nlsgarcia fecha: 05-07-2015 a las 02:57:03. Razón: Formateo código |
|
#2
|
||||
|
||||
|
Se me olvidaba un detalle importante, el código anterior no funciona si se ejecuta desde el IDE, una vez compilado debe ser ejecutado desde el mismo explorer.
Saludos. |
|
#3
|
|||
|
|||
|
Gracias a ambos, sigo haciendo pruebas
@escafandra solo que debe ser explorer.exe en lugar de Explorer.exe porque si no falla tambien hay una manera mas fiable de encontrar al explorer real, porque explorer puede haber muchos que no son precisamente explorer, digamos abrir con openprocess el proceso padre de ExecuteWithParent.exe y automáticamente sería el explorer sigo investigando, les cuento si encuentro algo |
|
#4
|
|||
|
|||
|
Cita:
|
|
#5
|
||||
|
||||
|
escafandra,
Cita:
![]() En las pruebas realizadas con Delphi 7 sobre Windows 7 Professional x32 con el código del Msg #10, este funciono correctamente desde el IDE y de forma independientemente, con la salvedad de que el ParentProcess en este caso debe ser explorer.exe en lugar de Explorer.exe Saludos, Nelson. |
|
#6
|
||||
|
||||
|
Nipx4215,
Cita:
Cita:
Cita:
![]() Pregunto : ¿Has considerado hacer un hash a explorer.exe y verificar el mismo en tu proceso? ![]() Revisa este código: El código anterior en Delphi 2010 sobre Windows 7 Professional x32, Permite calcular un Hash MD5 y SHA1 a un archivo seleccionado, como se muestra en la siguiente imagen: ![]() Nota: La idea en este caso particular, es calcular el hash de explorer.exe y guardarlo dentro de la aplicación para que esta pueda verificar si efectivamente corresponde al hash del proceso padre actual. Revisa esta información: Espero sea útil ![]() Nelson. |
|
#7
|
||||
|
||||
|
Cita:
Cita:
Cita:
, o no.Lo ideal sería encontrar el verdadero padre. Saludos. |
|
#8
|
||||
|
||||
|
Nipx4215,
Cita:
![]() Cita:
![]() Pregunto: 1- ¿Que versión de Delphi y Windows (x32/x64) vas a utilizar para el problema en cuestión?. 2- ¿Puedes describir que tipo de aplicación utilizara este tipo de verificación y por que es necesaria?. Espero sea útil ![]() Nelson. |
|
#9
|
|||
|
|||
|
Hola
1.-Sería delphi 7, win7 x64 2.-Es solo evitar que sea lanzado con un programa diferente al explorer, hasta ahorita al programa no han podido desempacarlo, y la única manera que lo pueden atacar es en memoria. Por eso se quiere evitar esto. |
|
#10
|
||||
|
||||
|
Nipx4215,
Cita:
![]() Pregunto: 1- ¿Que significa que no han podido desempacarlo? ![]() 2- ¿Podrías explicar cual es la función de esta aplicación?. Espero sea útil ![]() Nelson. |
|
#11
|
||||
|
||||
|
Añado otra pregunta: ¿Deseas evitar que lo lancen con un depurador (debugger)?
Saludos. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Saber si la aplicación fue ejecutada desde Delphi | aeff | API de Windows | 16 | 13-11-2008 00:37:18 |
| Aplicacion en Delphi 6 ejecutada por Internet | canelita | Internet | 1 | 10-07-2008 16:29:07 |
| Cómo cerrar otra aplicacion desde mi aplicacion en Delphi 7 | Gaby123 | API de Windows | 5 | 04-01-2007 22:44:51 |
| ¿Cómo puedo saber desde mi aplicación cuándo se abre por primera vez? | nuri | Varios | 7 | 21-07-2005 14:07:51 |
| Detectar aplicacion a ser ejecutada. | anitra_cattivo | API de Windows | 7 | 05-11-2004 18:52:41 |
|