SHARE
TWEET

Untitled

a guest Jul 2nd, 2017 98 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;---------------------------------------------
  2. ; Get DLL List without API
  3. ; Copyright (C) by ManHunter / PCL
  4. ; http://www.manhunter.ru
  5. ;---------------------------------------------
  6.  
  7. format PE console 4.0
  8. entry start
  9.  
  10. include 'win32w.inc'
  11.  
  12. ;---------------------------------------------
  13.  
  14. struct  UNICODE_STRING
  15.     Length          dw ?
  16.     MaximumLength   dw ?
  17.     Buffer          dd ?
  18. ends
  19.  
  20. struct  LIST_ENTRY
  21.     Flink           dd ?
  22.     Blink           dd ?
  23. ends
  24.  
  25. struct  LDR_DATA_ENTRY
  26.     InMemoryOrderModuleList LIST_ENTRY
  27.     BaseAddress     dd ?
  28.     EntryPoint      dd ?
  29.     SizeOfImage     dd ?
  30.     FullDllName     UNICODE_STRING
  31.     BaseDllName     UNICODE_STRING
  32.     Flags           dd ?
  33.     LoadCount       dw ?
  34.     TlsIndex        dw ?
  35.     HashTableEntry  LIST_ENTRY
  36.     TimeDateStamp   dd ?
  37. ends
  38.  
  39. ;---------------------------------------------
  40.  
  41. section '.text' code readable executable
  42. align 10h
  43. data import
  44. library kernel32,'kernel32.dll',\
  45.         user32,'user32.dll'
  46.  
  47. include 'api/kernel32.inc'
  48. include 'api/user32.inc'
  49. end data
  50. align 10h
  51. mask        du 'Module: "%s"',13,10,'BaseAddress: %08Xh EntryPoint: %08Xh',13,10,13,10,0
  52. align 10h
  53.  
  54.     start:
  55.     ; EAX -> PEB
  56.     mov     eax,[fs:0x30]
  57.     ; EAX -> PEB_LDR_DATA
  58.     mov     eax,[eax+0x0C]
  59.     ; EBX -> InInitializationOrderModuleList
  60.     mov     ebx,[eax+0x1C]
  61.  
  62.     invoke  GetStdHandle,STD_OUTPUT_HANDLE
  63.     mov     esi,eax
  64.     @@:
  65.     ; Последняя запись?
  66.     cmp     [ebx+LDR_DATA_ENTRY.BaseAddress],0
  67.     je      @F
  68.  
  69.     cinvoke wsprintf,buff,mask,[ebx+LDR_DATA_ENTRY.FullDllName.Buffer],\
  70.             [ebx+LDR_DATA_ENTRY.BaseAddress],\
  71.             [ebx+LDR_DATA_ENTRY.EntryPoint]
  72.     invoke  WriteConsole,esi,buff,eax,dummy,0
  73.  
  74.     ; Указатель на следующую запись
  75.     mov     ebx,[ebx+LDR_DATA_ENTRY.InMemoryOrderModuleList.Flink]
  76.     jmp     @B
  77.  
  78.     @@:
  79.     ; Получить хэндл стандартного ввода stdin
  80.     invoke  GetStdHandle,STD_INPUT_HANDLE
  81.     mov     esi,eax
  82.     ; Установить режим консоли
  83.     invoke  SetConsoleMode,esi,NULL
  84.     ; Дождаться нажатия любой клавиши
  85.     invoke  ReadConsole,esi,buff,1,dummy,0
  86.  
  87.     invoke  ExitProcess,0
  88.  
  89. ;---------------------------------------------
  90.  
  91. section '.data' readable writeable
  92.  
  93. dummy       dd ?
  94. buff        du 1024 dup(?)
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top