<div dir="ltr">hola<br>gracias por la respuesta.<br>ahora estoy trabajando con esto.<br>por algun motivo no me deja acceder a las variables.<br>ahora ya estoy con canas verdes y muy cansado pero mañana sigo y te cuento.<br>
gracias<br>David<br><br><div class="gmail_quote">El 26 de julio de 2008 3:02, Steven Davidson<span dir="ltr"><<a href="mailto:srd4121@njit.edu">srd4121@njit.edu</a>></span>escribió:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hola David,<br>
<div class="Ih2E3d"><br>
David fire wrote:<br>
> gracias por la respuesta es para win32 para linux es mil veces mas<br>
> facil. para windows XP y windows vista hay algun modo de conseguir<br>
> los argumentos sin inyectar codigo algo menos "hacking"?<br>
<br>
</div>Supongo que con "argumentos" te refieres a la cadena de caracteres que<br>
se puede pasar a modo de opciones de configuración a un fichero<br>
ejecutable. Típicamente, estos argumentos se pueden recoger desde 'main()'.<br>
<br>
Bajo el API de MS-Windows, podemos usar 'GetCommandLine()', pero claro<br>
está esta función sólo nos sirve si se invoca desde el proceso que<br>
queremos. Como estamos en otro proceso, la función anterior no nos sirve.<br>
<br>
La solución que he encontrado es usando la función<br>
'NtQueryInformationProcess()' que está en "ntdll.dll". Según la<br>
documentación, esta función no tiene biblioteca de importación y por<br>
tanto aconseja obtenerla explícitamente usando 'LoadLibrary()' y<br>
'GetProcAddress()'. El prototipo es:<br>
<br>
NTSTATUS WINAPI NtQueryInformationProcess(<br>
   HANDLE ProcessHandle,<br>
   PROCESSINFOCLASS ProcessInformationClass,<br>
   PVOID ProcessInformation,<br>
   ULONG ProcessInformationLength,<br>
   PULONG ReturnLength<br>
);<br>
<br>
Puedes consultar la documentación en MSDN yendo a:<br>
<a href="http://msdn.microsoft.com/en-us/library/ms684280%28VS.85%29.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/ms684280(VS.85).aspx</a><br>
<br>
La información que nos interesa es la estructura que obtendremos en<br>
'ProcessInformation' que se llama 'PROCESS_BASIC_INFORMATION'. Dentro de<br>
esta estructura hay otra del tipo 'PPEB' que es un puntero a 'PEB'. Esta<br>
estructura contendrá bastante información. Dentro de esta estructura<br>
encontrarás otra estructura del tipo 'RTL_USER_PROCESS_PARAMETERS'. Aquí<br>
obtendrás la información que requieres en el campo 'CommandLine'.<br>
<br>
<br>
Sinceramente, no lo he comprobado, pero espero que esto te oriente en la<br>
dirección correcta.<br>
<font color="#888888"><br>
Steven<br>
</font><div><div></div><div class="Wj3C7c"><br>
<br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br> (\__/) <br>(='.'=)This is Bunny. Copy and paste bunny into your <br>(")_(")signature to help him gain world domination. <br><br>
</div>