Advertisement
Guest User

Untitled

a guest
Oct 18th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. import os
  2. import pefile
  3.  
  4. list_libraries = {}
  5.  
  6. def initialize():
  7. libraries = open("network_libraries.txt")
  8. for lib in libraries:
  9. lib_size = len(lib)
  10. list_libraries[lib[:lib_size - 1]] = []
  11. for func in libraries:
  12. func_size = len(func)
  13. if not func[:func_size - 1]:
  14. break
  15. list_libraries[lib[:lib_size - 1]].append(func[:func_size - 1])
  16.  
  17. initialize()
  18.  
  19. def parse_pe(pe, filename):
  20. try:
  21. pe.parse_data_directories(directories=[pefile.DIRECTORY_ENTRY['IMAGE_DIRECTORY_ENTRY_IMPORT']])
  22. except:
  23. return
  24. libraries = []
  25. functions = []
  26.  
  27. if hasattr(pe, 'DIRECTORY_ENTRY_IMPORT'):
  28. flag = False
  29. for libs in pe.DIRECTORY_ENTRY_IMPORT:
  30. try:
  31. lib = libs.dll.decode().lower()
  32. except:
  33. continue
  34. if lib in list_libraries:
  35. for funcs in libs.imports:
  36. try:
  37. func = funcs.name.decode()
  38. except:
  39. continue
  40. if func in list_libraries[lib]:
  41. libraries.append(lib)
  42. functions.append(func)
  43. flag = True
  44. break
  45. if flag:
  46. break
  47.  
  48.  
  49. if len(libraries) and len(functions):
  50. print("File: " + filename)
  51.  
  52. print("This file is using the following network libraries and functions: ", end="")
  53.  
  54. for lib in libraries:
  55. for func in functions:
  56. print("Lib: " + lib + " Func: " + func + "\n")
  57.  
  58. def isUsingNetwork(folder):
  59. directory = folder
  60. try:
  61. for file in os.listdir(directory):
  62. filename = os.path.join(directory, file)
  63. if os.path.isfile(filename):
  64. try:
  65. pe = pefile.PE(filename, fast_load=True)
  66. except:
  67. continue
  68. parse_pe(pe, filename)
  69.  
  70. elif os.path.isdir(filename):
  71. isUsingNetwork(filename)
  72. except:
  73. print("No access to " + folder + "\n")
  74.  
  75. print("Enter the directory:")
  76. directory = input()
  77.  
  78. isUsingNetwork(directory)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement