elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Ayudita por ak. Encontrar y liberar memoria.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Ayudita por ak. Encontrar y liberar memoria.  (Leído 4,209 veces)
70N1


Desconectado Desconectado

Mensajes: 355


Ver Perfil
Ayudita por ak. Encontrar y liberar memoria.
« en: 16 Junio 2008, 22:50 pm »

Pues la cosa es que quiero saver que espacios de memoria ocupa un programa en concreto y luego borrar esos espacios para que se cierre el programa.

Se puede hacer?


En línea

70N1
seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Ayudita por ak. Encontrar y liberar memoria.
« Respuesta #1 en: 16 Junio 2008, 22:57 pm »

Hola,aca tenes uno que te dice cuanto ocupa un proceso poniendo su nombre,en este ejemplo es la calculadora de windows....

Código:
Private Type PROCESS_MEMORY_COUNTERS
cb As Long
PageFaultCount As Long
PeakWorkingSetSize As Long
WorkingSetSize As Long
QuotaPeakPagedPoolUsage As Long
QuotaPagedPoolUsage As Long
QuotaPeakNonPagedPoolUsage As Long
QuotaNonPagedPoolUsage As Long
PagefileUsage As Long
PeakPagefileUsage As Long
End Type

Private Const PROCESS_QUERY_INFORMATION = 1024
Private Const PROCESS_VM_READ = 16
Private Const MAX_PATH = 260

Private Type LARGE_INTEGER
lowpart As Long
highpart As Long
End Type

Private Type MEMORYSTATUSEX
dwLength As Long
dwMemoryLoad As Long
ullTotalPhys As LARGE_INTEGER
ullAvailPhys As LARGE_INTEGER
ullTotalPageFile As LARGE_INTEGER
ullAvailPageFile As LARGE_INTEGER
ullTotalVirtual As LARGE_INTEGER
ullAvailVirtual As LARGE_INTEGER
ullAvailExtendedVirtual As LARGE_INTEGER
End Type

Private Declare Function EnumProcesses Lib "PSAPI.DLL" (lpidProcess As Long, ByVal cb As Long, cbNeeded As Long) As Long
Private Declare Function EnumProcessModules Lib "PSAPI.DLL" (ByVal hProcess As Long, lphModule As Long, ByVal cb As Long, lpcbNeeded As Long) As Long
Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccessas As Long, ByVal bInheritHandle As Long, ByVal dwProcId As Long) As Long
Private Declare Function GetModuleFileNameExA Lib "PSAPI.DLL" (ByVal hProcess As Long, ByVal hModule As Long, ByVal ModuleName As String, ByVal nSize As Long) As Long
Private Declare Function GetProcessMemoryInfo Lib "PSAPI.DLL" (ByVal hProcess As Long, ppsmemCounters As PROCESS_MEMORY_COUNTERS, ByVal cb As Long) As Long
Private Declare Function CloseHandle Lib "kernel32.dll" (ByVal Handle As Long) As Long

Private Function GetProcessMemory(ByVal EXEName As String) As Long
Dim lngLength As Long
Dim strProcessName As String
Dim lngCBSize As Long
Dim lngCBSizeReturned As Long
Dim lngNumElements As Long
Dim lngProcessIDs() As Long
Dim lngCBSize2 As Long
Dim lngModules(1 To 200) As Long
Dim lngReturn As Long
Dim strModuleName As String
Dim lngSize As Long
Dim lngHwndProcess As Long
Dim lngLoop As Long
Dim pmc As PROCESS_MEMORY_COUNTERS
Dim lRet As Long
Dim strProcName2 As String
On Error GoTo Error_handler
EXEName = UCase$(Trim$(EXEName))
lngLength = Len(EXEName)
lngCBSize = 8
lngCBSizeReturned = 96
Do While lngCBSize <= lngCBSizeReturned
lngCBSize = lngCBSize * 2
ReDim lngProcessIDs(lngCBSize / 4) As Long
lngReturn = EnumProcesses(lngProcessIDs(1), lngCBSize, lngCBSizeReturned)
Loop
lngNumElements = lngCBSizeReturned / 4
For lngLoop = 1 To lngNumElements
lngHwndProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, lngProcessIDs(lngLoop))
If lngHwndProcess <> 0 Then
lngReturn = EnumProcessModules(lngHwndProcess, lngModules(1), 200, lngCBSize2)
If lngReturn <> 0 Then
strModuleName = Space(MAX_PATH)
lngSize = 500
lngReturn = GetModuleFileNameExA(lngHwndProcess, lngModules(1), strModuleName, lngSize)
strProcessName = Left$(strModuleName, lngReturn)
strProcName2 = GetExeName(strProcessName)
If strProcName2 = EXEName Then
pmc.cb = LenB(pmc)
lRet = GetProcessMemoryInfo(lngHwndProcess, pmc, pmc.cb)
GetProcessMemory = pmc.WorkingSetSize / 1024
End If
End If
End If
lngReturn = CloseHandle(lngHwndProcess)
Next lngLoop
IsProcessRunning_Exit:
Exit Function
Error_handler:
Resume Next
End Function

Private Function GetExeName(ByVal sPath As String) As String
Dim lPos1 As Long
Dim lPos2 As Long
On Error Resume Next
lPos1 = InStr(1, sPath, Chr$(0))
lPos2 = InStrRev(sPath, "\")
If lPos1 > 0 Then
GetExeName = UCase$(Mid$(sPath, lPos2 + 1, lPos1 - lPos2))
Else
GetExeName = UCase$(Mid$(sPath, lPos2 + 1))
End If
End Function

Private Sub Command1_Click()
MsgBox "Este Procesos Ocupa en Memoria " & GetProcessMemory("CALC.EXE") & " KB", vbInformation 'para la calculadora de windows...
End Sub

saludos.


En línea

Tughack


Desconectado Desconectado

Mensajes: 490


Ver Perfil
Re: Ayudita por ak. Encontrar y liberar memoria.
« Respuesta #2 en: 16 Junio 2008, 22:59 pm »

Para k kieres hacer eso?

De todas formas, VirtualFreeEx.
En línea

70N1


Desconectado Desconectado

Mensajes: 355


Ver Perfil
Re: Ayudita por ak. Encontrar y liberar memoria.
« Respuesta #3 en: 16 Junio 2008, 23:09 pm »

Pues mi intencion es cerrar o crear un error en el AV.
El code que me as pasado es para ver cuanto ocupa, pero lo que necesito es saver
las direcciones en memoria para luego borrarlas.

Gracias por intentar ayudar. Voy a mirar bien el code para ver si puedo aprovechar algo.
En línea

70N1
Xerok1!

Desconectado Desconectado

Mensajes: 228



Ver Perfil
Re: Ayudita por ak. Encontrar y liberar memoria.
« Respuesta #4 en: 16 Junio 2008, 23:13 pm »

Si inyectas mal en el proceso lo más seguro es que crashe,que es lo que quieres no?
Pues busca información sobre inyección de dlls, en este foro se publicó un codigo muy bueno,pero te lo dejo a ti..

Un saludo ;)
En línea

[Firma]Esperando haber si acaba el concurso de firmas y la pongo[/Firma]
70N1


Desconectado Desconectado

Mensajes: 355


Ver Perfil
Re: Ayudita por ak. Encontrar y liberar memoria.
« Respuesta #5 en: 16 Junio 2008, 23:48 pm »

http://foro.elhacker.net/programacion_vb/source_inyeccion_dll_en_vb-t168272.0.html

Esta es la pagina de la que me ablavas me imagino.  Aki la pongo para recordar el post para el que lo necesite.
En línea

70N1
Kizar


Desconectado Desconectado

Mensajes: 1.325


kizar_net


Ver Perfil
Re: Ayudita por ak. Encontrar y liberar memoria.
« Respuesta #6 en: 17 Junio 2008, 00:29 am »

Si es al kav al que intentas machacar no te esfuerces...
En línea

Tughack


Desconectado Desconectado

Mensajes: 490


Ver Perfil
Re: Ayudita por ak. Encontrar y liberar memoria.
« Respuesta #7 en: 17 Junio 2008, 01:00 am »

Si es al kav al que intentas machacar no te esfuerces...

jeje, si eso de "inyectar mal" ya no funciona con el kav.
En línea

~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: Ayudita por ak. Encontrar y liberar memoria.
« Respuesta #8 en: 17 Junio 2008, 12:13 pm »

La cosa es o usar WriteProcessMemory a lo burro para sobrescribir algo importante o crear un hilo en el proceso deseado que empiece en una dirección de memoria no válida con CreateRemoteThread (recomiendo lo segundo, que es más eficaz :P)

Salu2
En línea

70N1


Desconectado Desconectado

Mensajes: 355


Ver Perfil
Re: Ayudita por ak. Encontrar y liberar memoria.
« Respuesta #9 en: 17 Junio 2008, 18:11 pm »

Oye no encuentro informacion en la api guide sobre CreateRemoteThread.
Podrias darme algun source donde enseñe a usarlo?
En línea

70N1
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Memoria RAM! ayudita « 1 2 »
Hardware
Ershin 12 4,554 Último mensaje 26 Enero 2011, 23:07 pm
por usuario oculto
Problema para liberar memoria - C
Programación C/C++
HRSLASH 6 3,816 Último mensaje 19 Abril 2012, 14:26 pm
por Eternal Idol
[JS] Encontrar la causa de la fuga de memoria en este Gadget
Scripting
Eleкtro 3 2,870 Último mensaje 24 Diciembre 2014, 09:08 am
por Eleкtro
MEMORIA SIN LIBERAR C++
Programación C/C++
guero 6 3,382 Último mensaje 7 Julio 2020, 14:41 pm
por Meta
Duda al liberar memoria
Programación C/C++
sallaks 5 3,598 Último mensaje 12 Julio 2020, 11:44 am
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines