Título: Extraño error con WriteProcessMemory Publicado por: arfgh en 3 Julio 2016, 20:43 pm Hola amigos.
tengo un problema muy extraño usando la api WriteProcessMemory Resulta que en mi programa uso esa api un montón de veces sin problema de ningún tipo, pero ahora por alguna extraña razón y con un offset determinado lee pero no escribe. Código: Declare Function WriteProcessSingle Lib "kernel32" Alias "WriteProcessMemory" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, resutado del debug: false, 0 No ha escrito los datos. No entiendo el por qué de este problema. comentaros que he intentado usar el getlasterror de esta manera: Código: buffer = Space(200) y el resultado ha sido '.46', no sé si sería posible obtener algún string respecto a ese lasterror..... Deciros que el handle es correcto, etc etc. Si he cometido un error pues estoy ciego y no lo veo. No obstante el proceso lo he abierto de esta forma: Código: CreateProcess vbNullString, app.path & "\test.exe " & Command & commandline, _ también comentarios que he intentado abrir el proceso de esta forma, con el mismo resultado de no poder escribir en ese offset: Código: OpenProcess(PROCESS_ALL_ACCESS, False, pid) Ayuda ! Título: Re: Extraño error con WriteProcessMemory Publicado por: Eleкtro en 4 Julio 2016, 05:28 am Llama a la función Win32 GetLastError sin intentar formatear el mensaje para mostrarnos que código de error exacto te indica, '.46' no es nada válido.
PD: No utilizo VB6, lo tengo más que oxidado, pero al menos podría ayudarte con el significado del código de error Win32 que estés obteniendo. Saludos Título: Re: Extraño error con WriteProcessMemory Publicado por: BloodSharp en 4 Julio 2016, 21:21 pm Hola amigos. tengo un problema muy extraño usando la api WriteProcessMemory Resulta que en mi programa uso esa api un montón de veces sin problema de ningún tipo, pero ahora por alguna extraña razón y con un offset determinado lee pero no escribe. Código: dim datos as single resutado del debug: false, 0 No ha escrito los datos. No entiendo el por qué de este problema. Ayuda ! ¿Verificaste que la/s página/s de la memoria virtual que estás editando tenga permisos de escritura? Porque según tu código no lo hacés... B# Título: Re: Extraño error con WriteProcessMemory Publicado por: arfgh en 9 Julio 2016, 11:53 am ese es el problema, la zona de memoria está en la .rdata. Me pregunto si programáticamente se puede hacer esa zona RW
Título: Re: Extraño error con WriteProcessMemory Publicado por: MCKSys Argentina en 9 Julio 2016, 20:20 pm ese es el problema, la zona de memoria está en la .rdata. Me pregunto si programáticamente se puede hacer esa zona RW A la API WriteProcessMemory no le importa si la sección de memoria tiene o no permisos de escritura. Sólo le importa que el handle sea válido para escribir y que la memoria a escribir esté mapeada. Saludos! EDIT: Para ver dónde te falla, abre tu programa con Olly y pon un BP en la API. Luego de ejecutar la misma, Olly mostrará el valor de GetLastError (lo hace siempre). |