hdarwin

mona_installer

Nov 4th, 2014
541
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.73 KB | None | 0 0
  1. import os,sys,urllib,zipfile,subprocess,fnmatch
  2.  
  3. def find_location(pattern,path):
  4.         print "[+] Locating %s in %s" % (pattern,path)
  5.         for (path, dirs, files) in os.walk(path):
  6.                 if os.path.isfile(os.path.join(path,pattern)) and path.lower().find("x64") == -1:
  7.                         return path
  8.  
  9. def unzip_file():
  10.         try:
  11.                 print "[+] Unzipping download"
  12.                 zip = zipfile.ZipFile(r"pykd.zip")
  13.                 zip.extractall("unzipped_pykd")
  14.                 zip.close()
  15.         except:
  16.                 print "[-] Error Unzipping"            
  17.  
  18. def download_files():
  19.         try:
  20.                 print "[+] Downloading PYKD zip file from Corelan, this may take a few moments (4mb)"
  21.                 urllib.urlretrieve ("https://github.com/corelan/windbglib/raw/master/pykd/pykd.zip", "pykd.zip")
  22.                 unzip_file()
  23.                 print "[+] Downloading mona.py & windbglib.py from Corelan"
  24.                 urllib.urlretrieve("https://github.com/corelan/mona/raw/master/mona.py", "unzipped_pykd\\mona.py")
  25.                 urllib.urlretrieve("https://github.com/corelan/windbglib/raw/master/windbglib.py", "unzipped_pykd\\windbglib.py")
  26.         except:
  27.                 print "[-] Error Downloading"
  28.  
  29. def install_vc_file():
  30.         try:
  31.                 print "[+] Installing VC redistributable"
  32.                 p = subprocess.Popen("unzipped_pykd\\vcredist_x86.exe").wait()
  33.         except:
  34.                 print "[-] Error installing redistributable"
  35.  
  36. def register_dll():
  37.         try:
  38.                 dll = find_location("msdia90.dll","C:\\")
  39.                 print ("[+] Registering 'msdia90.dll' with system located in:\n\t[*] %s" %dll)
  40.                 p = subprocess.Popen('regsvr32 "%s\\msdia90.dll"' %dll).wait()
  41.         except:
  42.                 print "[-] Error registering DLL"
  43.  
  44. def copy_files():
  45.         try:
  46.                 windbg = find_location("windbg.exe","C:\\")
  47.                 print ("[+] Copy pykd.pyd & windbglib.py & mona.py into Windbg folder:\n\t[*] %s" %windbg)
  48.                 os.system('move "unzipped_pykd\\pykd.pyd" "%s\\winext\\pykd.pyd"' %windbg)
  49.                 os.system('move "unzipped_pykd\\mona.py" "%s\\"' %windbg)
  50.                 os.system('move "unzipped_pykd\\windbglib.py" "%s\\"' %windbg)
  51.         except:
  52.                 print "[-] Error copying file"
  53.                      
  54. if __name__ == '__main__':
  55.         try:
  56.                         download_files()
  57.                         install_vc_file()
  58.                         register_dll()
  59.                         copy_files()
  60.                         print "[+] Complete. Open Windbg and test"
  61.         except:
  62.                         print "Error running"
  63.                         sys.exit(0)
Advertisement
Add Comment
Please, Sign In to add comment