Título: RTL_USER_PROCESS_PARAMETERS Publicado por: Vaagish en 22 Julio 2014, 07:02 am Hi!
Tengo la estructura RTL_USER_PROCESS_PARAMETERS, de la cual quiero sacar la linea de comandos,, eso lo tengo, esta en CommandLine pero si quisiera sacar la cantidad de argumentos como podría hacerlo? Código
Como podrán ver, hay un argumento: "HOLA", la cadena es Unicode, así que no me sirve buscar '\0', aunque también esta CommandLine_Size y CommandLine_Maxlen, yo preciso saber si se recibió al menos un argumento.. Gracias! Saludos! ;D PD: Ya que estamos, si alguien resuelve como sacar solo el argumento que tire el dato, aclaro por las dudas.. en el dump muestra Citar "C0:0\0U0s0e0r0s0\0C0e0n0t0r0a0l0\0D0e0s0k0t0o0p0\0M0R0S0\0M0R0S0.0e0x0e0"0H0O0L0A" , por eso pido consejo..Título: Re: RTL_USER_PROCESS_PARAMETERS Publicado por: Eternal Idol en 22 Julio 2014, 09:20 am Podes usar CommandLineToArgvW (http://msdn.microsoft.com/en-us/library/windows/desktop/bb776391(v=vs.85).aspx).
Si es Unicode el fin de la cadena es un doble 0 ;D Título: Re: RTL_USER_PROCESS_PARAMETERS Publicado por: Vaagish en 22 Julio 2014, 20:06 pm Bien! Eso funciono.. solo que me seria mucho mejor sin apis.. (no aclare de entrada, mal yo)
Saludos! ;D Título: Re: RTL_USER_PROCESS_PARAMETERS Publicado por: Eternal Idol en 22 Julio 2014, 20:26 pm Bueno, tenes el codigo en assembly ::) Lo unico que hace es trabajar con una ristra de bytes mas conocidos como cadenas ;D
PD. Ahi tenes un UNICODE_STRING, asi que usa siempre el campo de tamaño correspondiente, no tiene que ser una cadena terminada en 0 a la fuerza. Título: Re: RTL_USER_PROCESS_PARAMETERS Publicado por: Vaagish en 22 Julio 2014, 21:24 pm Citar Bueno, tenes el codigo en assembly ::) Lo unico que hace es trabajar con una ristra de bytes mas conocidos como cadenas ;D PD. Ahi tenes un UNICODE_STRING, asi que usa siempre el campo de tamaño correspondiente, no tiene que ser una cadena terminada en 0 a la fuerza. O sea... a manoplas :xD Pero.. el campo CommandLine_Size = 86. No corresponde con la información, a menos que cuente todos los 0's entre letra y letra, ahí es mas parecido si.. :huh: Saludos! Gracias! Título: Re: RTL_USER_PROCESS_PARAMETERS Publicado por: Eternal Idol en 22 Julio 2014, 21:35 pm ¿Y que queres? O API o a mano, otra no queda ;D Capaz alguien ya lo hizo, busca por ahi, alguna RTL ...
El campo coincide exactamente, es el tamaño en BYTEs y en Unicode cada caracter ocupa dos BYTEs, son 43 caracteres y 86 bytes (no incluye 0 terminador). Título: Re: RTL_USER_PROCESS_PARAMETERS Publicado por: Vaagish en 22 Julio 2014, 22:25 pm Citar ¿Y que queres? O API o a mano, otra no queda ;D Capaz alguien ya lo hizo, busca por ahi, alguna RTL ... Ok.. ok :xD Pense que a lo mejor podía usar alguno de esos campos y llegar a la "cadena" argumento.. Solo el "HOLA"Citar El campo coincide exactamente, es el tamaño en BYTEs y en Unicode cada caracter ocupa dos BYTEs, son 43 caracteres y 86 bytes (no incluye 0 terminador). Ha,,, por eso los 0's :PGracias! ;) Título: Re: RTL_USER_PROCESS_PARAMETERS Publicado por: Eternal Idol en 22 Julio 2014, 22:53 pm Ok.. ok :xD Pense que a lo mejor podía usar alguno de esos campos y llegar a la "cadena" argumento.. Solo el "HOLA" Tal vez podrias comparar con ImagePath ... igual podrian haber mas parametros ... asi que mejor usa la API o implementala :silbar: Título: Re: RTL_USER_PROCESS_PARAMETERS Publicado por: Vaagish en 22 Julio 2014, 23:14 pm Citar Tal vez podrias comparar con ImagePath ... igual podrian haber mas parametros ... asi que mejor usa la API o implementala :silbar: Justo,, justo entre para preguntar eso.. estaba viendo que con ImagePath, ImagePath_Size, CommandLine y CommandLine_Size se puede resolver todo.. unas restas y listo.. pero.. es confiable el metodo? Mas allá que el dia de mañana cambie el PEB.. Me refiero a si es 100% seguro en todas las pc's? Yo espero recibir un argumento o ninguno.. :rolleyes: Saludos! Título: Re: RTL_USER_PROCESS_PARAMETERS Publicado por: Eternal Idol en 22 Julio 2014, 23:59 pm Creo que por las vias normales el ejecutable siempre es el primer parametro (argv[0]) pero es posible llamar a CreateProcess y que no sea el caso ... igual podes comparar y si la linea de comandos no contiene a la imagen asumir que desde el primer caracter es argv[1] ...
Título: Re: RTL_USER_PROCESS_PARAMETERS Publicado por: Vaagish en 23 Julio 2014, 16:24 pm Citar Creo que por las vias normales el ejecutable siempre es el primer parametro (argv[0]) pero es posible llamar a CreateProcess y que no sea el caso ... igual podes comparar y si la linea de comandos no contiene a la imagen asumir que desde el primer caracter es argv[1] ... Parece una buena solucion.. un poco de pruebas y listo.. ;D Gracias! Saludos!! Título: Re: RTL_USER_PROCESS_PARAMETERS Publicado por: Eternal Idol en 23 Julio 2014, 17:23 pm De nadas ::)
|