Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: rembolso en 23 Julio 2012, 21:16 pm



Título: Ayuda con identificar code de mas !!!
Publicado por: rembolso en 23 Julio 2012, 21:16 pm
hola.  yendo al grano estoy tratando de hacer un soft que me detecte algo inyectado (dll . exe) inyectado dentro del notepad. pero se complica y lo unico que se me ocurrio fue  jugar con este code y inyectando dll al notepad(por el pid)  y con ReadMemory al puntero del programa obtenido por el pid. pero cada ves que le  inyecto algo lo obtenido con el ReadMemory sigue igual!! . que estoy haciendo mal
Code
Código
  1. Private Const PAGE_READWRITE As Long = &H4
  2.  
  3. Private Const STANDARD_RIGHTS_REQUIRED As Long = &HF0000
  4. Private Const SYNCHRONIZE As Long = &H100000
  5. Private Const PROCESS_ALL_ACCESS As Long = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF)
  6.  
  7.  
  8. Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
  9. Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
  10. Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long
  11.  
  12. Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
  13. Private Declare Function CreateRemoteThread Lib "kernel32" (ByVal hProcess As Long, lpThreadAttributes As Long, ByVal dwStackSize As Long, lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadId As Long) As Long
  14.  
  15. Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
  16.  
  17.  
  18. Public Function Leed(pId As Long) As Integer
  19. Dim proc As Long
  20. Dim load As Long
  21.  
  22.  
  23. Dim ReadMemory As String, i As Long
  24.  
  25.   Dim bytValue As Long
  26. On Error GoTo Error
  27.  
  28. proc = OpenProcess(PROCESS_ALL_ACCESS, False, pId)
  29. load = GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA")
  30.  
  31.  
  32. For i = load To Int(load + 100) Step 2
  33.       '
  34.  
  35.       ReadProcessMemory proc, ByVal i, bytValue, 1, 0&
  36.  
  37.  
  38.       ReadMemory = ReadMemory & Chr(bytValue)
  39.    Next
  40. RichTextBox1.Text = ReadMemory '
  41.  
  42.  
  43. CloseHandle proc
  44.  
  45.  
  46. Exit Function
  47. Error:
  48.  
  49. Me.Caption = ""
  50. 'nota: para que se actualize constantemente la funcion Leed esta dentro de un timer con intervalo de 10 milisecon
  51. End Function

ese es mi code. pero los primeros  50  caracteres siguen igual, y  la dll si se inyecto . como detecto ese segmento inyectado  


Título: Re: Ayuda con identificar code de mas !!!
Publicado por: MCKSys Argentina en 23 Julio 2012, 22:24 pm
Estas leyendo los bytes de la funcion "LoadLibraryA".

Si no has escrito en esa parte (sección de codigo), los bytes seran siempre iguales...


Título: Re: Ayuda con identificar code de mas !!!
Publicado por: rembolso en 23 Julio 2012, 22:45 pm
gracias MCKSys . entonce con GetProcAddress estoy errado. no se me ocurre otra cosa.  como hago para leer o obtener los identificadores de las dll cargadas. o saber que hay cargado o no !!


Título: Re: Ayuda con identificar code de mas !!!
Publicado por: shaggikpo en 2 Septiembre 2013, 08:43 am
COn GetThread obtienes todas las librerias cargadas