Eliminar datos del ProcessHacker 2
Moderator: Flipeador
-
- Posts: 4
- Joined: 16 Jun 2018, 18:20
Eliminar datos del ProcessHacker 2
Hola, quiero saber es si con AutoHotkey se puede borrar datos/residuos que dejan los programas en el Process Hacker, como esto por ejemplo: https://gyazo.com/fae851f8d76c7183e4387507d4c8a5f1. Por favor si me pueden ayudar estaría muy agradecido.
Re: Eliminar datos del ProcessHacker 2
Si y no.
Esa ventana te la muestra cuando le das doble clic al proceso, te vas a la pestaña Memory, haces clic en el botón Strings... y luego OK, ¿No?.
Si la respuesta es SI: esa información está en la memoria privada de explorer.exe. ¿puedes eliminarla?, NO. ¿puedes modificar la información para que no muestre nada?, TAL VEZ. Entonces.. ¿es seguro hacerlo?, NO. No es seguro, básicamente porque no sabes que tipo de datos estas modificando, y puede ser datos críticos para el proceso. Lo mejor sería reiniciando el proceso explorer.exe. Puedes buscar "Como reiniciar el explorador de Windows".
Si la respuesta es NO: entonces, ¿que ventana es esa, la de la imagen?.
Esa ventana te la muestra cuando le das doble clic al proceso, te vas a la pestaña Memory, haces clic en el botón Strings... y luego OK, ¿No?.
Si la respuesta es SI: esa información está en la memoria privada de explorer.exe. ¿puedes eliminarla?, NO. ¿puedes modificar la información para que no muestre nada?, TAL VEZ. Entonces.. ¿es seguro hacerlo?, NO. No es seguro, básicamente porque no sabes que tipo de datos estas modificando, y puede ser datos críticos para el proceso. Lo mejor sería reiniciando el proceso explorer.exe. Puedes buscar "Como reiniciar el explorador de Windows".
Si la respuesta es NO: entonces, ¿que ventana es esa, la de la imagen?.
-
- Posts: 4
- Joined: 16 Jun 2018, 18:20
Re: Eliminar datos del ProcessHacker 2
Si, pero lo que pasa es que descargue un autoclick para chitearla en un juego y no se como mierda borrarlo jaja, tambien hice eso de reiniciar el exlorer.exe y nada sigue igualFlipeador wrote:Si y no.
Esa ventana te la muestra cuando le das doble clic al proceso, te vas a la pestaña Memory, haces clic en el botón Strings... y luego OK, ¿No?.
Si la respuesta es SI: esa información está en la memoria privada de explorer.exe. ¿puedes eliminarla?, NO. ¿puedes modificar la información para que no muestre nada?, TAL VEZ. Entonces.. ¿es seguro hacerlo?, NO. No es seguro, básicamente porque no sabes que tipo de datos estas modificando, y puede ser datos críticos para el proceso. Lo mejor sería reiniciando el proceso explorer.exe. Puedes buscar "Como reiniciar el explorador de Windows".
Si la respuesta es NO: entonces, ¿que ventana es esa, la de la imagen?.
Lo que te digo sería algo como esto https://www.youtube.com/watch?v=RvbQxytDRCk , desde ya gracias por contestarme amigo.
Re: Eliminar datos del ProcessHacker 2
¿Quieres "borrar" ciertas cadenas en un juego?, ¿Por que?, ¿En que afecta esto?, ¿Se puede saber el nombre del juego?.
No entiendo el propósito de esto, como ya te he dicho, no es nada seguro. Si me das más detalles podemos intentar algo...
No entiendo el propósito de esto, como ya te he dicho, no es nada seguro. Si me das más detalles podemos intentar algo...
-
- Posts: 4
- Joined: 16 Jun 2018, 18:20
Re: Eliminar datos del ProcessHacker 2
Minecraft, y esas son strings de un autoclick o sea es ilegal en el juego y si me revisan la pc y me encuentran eso me dan ban jaja, por eso lo quiero borrar u ocultar pero si me dices que no es seguro es mejor dejarlo asiFlipeador wrote:¿Quieres "borrar" ciertas cadenas en un juego?, ¿Por que?, ¿En que afecta esto?, ¿Se puede saber el nombre del juego?.
No entiendo el propósito de esto, como ya te he dicho, no es nada seguro. Si me das más detalles podemos intentar algo...
Re: Eliminar datos del ProcessHacker 2
Lo estaré revisando en la semana que viene.
Re: Eliminar datos del ProcessHacker 2 | Search a string in a process memory
Bien, mira, he logrado hacer que funcione en Notepad++ (buscar una cadena), pero para entender bien el código necesitas tener conocimientos sobre programación, especialmente sobre DllCall, si no lo tienes todo esto puede resultar en una perdida de tiempo, ya que para lograr que funcione puede requerir varias pruebas que incluyen la modificación del código AHK.
Primero que nada, debemos aclarar algunas cosas:
Nota: El script es únicamente para AHKv2. Puedes descargarlo desde el enlace en mi firma. Puedes descargar Notepad++ de aquí.
Para probar en tu juego, cambia el nombre del proceso y la cadena a buscar.
Primero que nada, debemos aclarar algunas cosas:
- Para el correcto funcionamiento, debes ejecutar la versión de AHK correcta dependiendo de los bits del proceso. Por ejemplo, si el proceso es de 64-Bit debes utilizar
AutoHotkeyU64.exe. - AutoHotkey no sirve para esto, debido a que al ser un lenguaje interpretado las operaciones (que son muchas) resultan muy lentas. Lo mejor es utilizar un lenguaje compilado, como C++. Esto también depende de tu PC.
- La codificación de la cadena a buscar debe coincidir con la codificación de la cadena en el programa.
- Si la memoria en donde reside la cadena esta protegida, las cosas se complican aún más, necesitamos añadir más DllCalls.
- Puede que tengas que ejecutar el Script como Administrador.
Nota: El script es únicamente para AHKv2. Puedes descargarlo desde el enlace en mi firma. Puedes descargar Notepad++ de aquí.
Code: Select all
ProcessID := ProcessExist("notepad++.exe") ; aquí recuperamos el identificador del proceso
String := "SomeDataToFind" ; la cadena a buscar
StrPutVar(String, Data, Size) ; convertimos la cadena a UTF-8
Addr := GetAddressOfData(ProcessID, &Data, Size-1) ; pasamos la dirección de memoria de la cadena UTF-8 y el tamaño de esta (bytes).
MsgBox Addr ; muestra la dirección de memoria del inicio de la cadena
; ------------------------------------------
StrPutVar(String, ByRef Buffer, ByRef Size := "", Encoding := "UTF-8")
{
VarSetCapacity(Buffer, (Size := StrPut(String, Encoding) - VarSetCapacity(Buffer, 0)*0) * ((Encoding = "UTF-16") + 1))
Return IsByRef(Size) ? StrPut(String, &Buffer, Size, Encoding) * 0 + &Buffer : StrPut(String, &Buffer, Size, Encoding)
} ; AutoHotkey Documentation
; https://www.codeproject.com/Articles/716227/Csharp-How-to-Scan-a-Process-Memory
GetAddressOfData(ProcessID, Data, Size)
{
; OpenProcess function
; https://msdn.microsoft.com/en-us/library/windows/desktop/ms684320(v=vs.85).aspx
; PROCESS_VM_READ = 0x0010 | PROCESS_QUERY_INFORMATION = 0x0400
Local hProcess := DllCall("Kernel32.dll\OpenProcess", "UInt", 0x0010|0x0400, "Int", FALSE, "UInt", ProcessID, "Ptr")
If (!hProcess)
Return FALSE
; SYSTEM_INFO structure
; https://msdn.microsoft.com/en-us/library/windows/desktop/ms724958(v=vs.85).aspx
Local SYSTEM_INFO := ""
VarSetCapacity(SYSTEM_INFO, A_PtrSize == 4 ? 36 : 48)
; GetSystemInfo function
; https://msdn.microsoft.com/en-us/library/windows/desktop/ms724381(v=vs.85).aspx
DllCall("Kernel32.dll\GetSystemInfo", "UPtr", &SYSTEM_INFO)
Local Address := NumGet(&SYSTEM_INFO + 8) ; LPVOID lpMinimumApplicationAddress (the lowest memory address accessible to applications and DLLs)
, MaximumApplicationAddress := NumGet(&SYSTEM_INFO + 8 + A_PtrSize) ; LPVOID lpMaximumApplicationAddress (the highest memory address accessible to applications and DLLs)
; MEMORY_BASIC_INFORMATION structure
; https://msdn.microsoft.com/en-us/library/windows/desktop/aa366775(v=vs.85).aspx
Local sizeof_MEMORY_BASIC_INFORMATION := A_PtrSize == 4 ? 28 : 48
VarSetCapacity(MEMORY_BASIC_INFORMATION, sizeof_MEMORY_BASIC_INFORMATION)
Local RegionSize := 0, State := 0, Protect := 0
While (Address < MaximumApplicationAddress)
{
; VirtualQueryEx function
; https://msdn.microsoft.com/en-us/library/windows/desktop/aa366907(v=vs.85).aspx
If (DllCall("Kernel32.dll\VirtualQueryEx", "Ptr", hProcess, "UPtr", Address, "UPtr", &MEMORY_BASIC_INFORMATION, "UPtr", sizeof_MEMORY_BASIC_INFORMATION, "UPtr") == sizeof_MEMORY_BASIC_INFORMATION)
{
Address := NumGet(&MEMORY_BASIC_INFORMATION) ; PVOID BaseAddress (base address of the region of pages)
RegionSize := NumGet(&MEMORY_BASIC_INFORMATION + 3*A_PtrSize) ; SIZE_T RegionSize (size of the region beginning at the base address in which all pages have identical attributes)
State := NumGet(&MEMORY_BASIC_INFORMATION + 4*A_PtrSize, "UInt") ; DWORD State (the state of the pages in the region)
Protect := NumGet(&MEMORY_BASIC_INFORMATION + 4*A_PtrSize + 4, "UInt") ; DWORD Protect (access protection of the pages in the region)
If (State == 0x1000 && Protect == 0x04) ; MEM_COMMIT = 0x1000 | PAGE_READWRITE = 0x04
{
Local Buffer := ""
VarSetCapacity(Buffer, RegionSize) ; out of memory --> use AHKU64 for 64-Bit processes
; ReadProcessMemory function
; https://msdn.microsoft.com/en-us/library/windows/desktop/ms680553(v=vs.85).aspx
Local BytesRead := 0
If (DllCall("Kernel32.dll\ReadProcessMemory", "Ptr", hProcess, "UPtr", Address, "UPtr", &Buffer, "UPtr", RegionSize, "UPtrP", BytesRead))
{
Loop (RegionSize-Size)
{
; https://msdn.microsoft.com/es-es/library/zyaebf12.aspx
If (!DllCall("msvcrt.dll\memcmp", "UPtr", Data, "UPtr", &Buffer+A_Index, "UPtr", Size, "CDecl"))
{
DllCall("Kernel32.dll\CloseHandle", "Ptr", hProcess)
Return Address + A_Index
}
}
}
}
Address += RegionSize
}
}
DllCall("Kernel32.dll\CloseHandle", "Ptr", hProcess)
Return FALSE
}
-
- Posts: 4
- Joined: 16 Jun 2018, 18:20
Re: Eliminar datos del ProcessHacker 2
La verdad es que no tengo idea de programacion, pero lo voy a intentar igual
Una pregunta mas, ese script lo tengo que pegar en notepad ¿verdad? y gracias por tomarte el tiempo en averiguar esto.
Una pregunta mas, ese script lo tengo que pegar en notepad ¿verdad? y gracias por tomarte el tiempo en averiguar esto.
Re: Eliminar datos del ProcessHacker 2
Notepad o cualquier otro editor de texto. Notepad es el más básico, no tiene resaltado de sintaxis ni nada, un editor completo es SublimeText que puedes descargar en mi firma, sino busca en el subforo de editores.
Te aclaro que el Script que te pase no esta completo, o sea, no hace lo que pides (borrar las cadenas), ya que para "borrarlas" primero tenemos que conocer la dirección de memoria en donde reside esa cadena, que es lo que hace el Script que te puse arriba. Usé AHKv2 porque me es más cómoda su sintaxis además creería que tiene mejor rendimiento.
Los pasos para "borrar" la cadena que se me ocurre son: Determinar la dirección de memoria donde inicia la cadena y reescribir esos datos con ceros o alguna otra cadena aleatoria sin sentido.
El problema en tu caso, como ya te he mencionado arriba, es que se requieren conocimientos, en varias cosas, principalmente: DllCall, punteros, como Windows administra la memoria, estructuras, codificación, como se almacenan los bytes en memoria, etc, es demasiado para alguien que recien empieza. Tal ves CheatEngine te sirva, no tengo idea.
De momento no voy a poder seguir este tema porque no estoy en casa sino hasta el fin de semana. Recuerda que el Script es únicamente para la versión. 2 de AHK, esta no requiere instalación, simplemente guarda el Script en un archivo de texto cualquiera con la extensión .ahk y arrastralo hasta AutoHotkeyU64.exe o AutoHotkeyU32.exe dependiendo de los bits del proceso en el cual se va a buscar la cadena.
Te aclaro que el Script que te pase no esta completo, o sea, no hace lo que pides (borrar las cadenas), ya que para "borrarlas" primero tenemos que conocer la dirección de memoria en donde reside esa cadena, que es lo que hace el Script que te puse arriba. Usé AHKv2 porque me es más cómoda su sintaxis además creería que tiene mejor rendimiento.
Los pasos para "borrar" la cadena que se me ocurre son: Determinar la dirección de memoria donde inicia la cadena y reescribir esos datos con ceros o alguna otra cadena aleatoria sin sentido.
El problema en tu caso, como ya te he mencionado arriba, es que se requieren conocimientos, en varias cosas, principalmente: DllCall, punteros, como Windows administra la memoria, estructuras, codificación, como se almacenan los bytes en memoria, etc, es demasiado para alguien que recien empieza. Tal ves CheatEngine te sirva, no tengo idea.
De momento no voy a poder seguir este tema porque no estoy en casa sino hasta el fin de semana. Recuerda que el Script es únicamente para la versión. 2 de AHK, esta no requiere instalación, simplemente guarda el Script en un archivo de texto cualquiera con la extensión .ahk y arrastralo hasta AutoHotkeyU64.exe o AutoHotkeyU32.exe dependiendo de los bits del proceso en el cual se va a buscar la cadena.
Who is online
Users browsing this forum: No registered users and 3 guests