1 #!/usr/bin/env python 2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 3 # Use of this source code is governed by a BSD-style license that can be 4 # found in the LICENSE file. 5 6 """Retrieves an image's "fingerprint". 7 8 This is used when retrieving the image from the symbol server. The .dll (or cab 9 compressed .dl_) or .exe is expected at a path like: 10 foo.dll/FINGERPRINT/foo.dll 11 """ 12 13 import sys 14 import pefile 15 16 17 def GetImgFingerprint(filename): 18 """Returns the fingerprint for an image file""" 19 pe = pefile.PE(filename) 20 return "%08X%06x" % ( 21 pe.FILE_HEADER.TimeDateStamp, pe.OPTIONAL_HEADER.SizeOfImage) 22 23 24 def main(): 25 if len(sys.argv) != 2: 26 print "usage: file.dll" 27 return 1 28 29 print GetImgFingerprint(sys.argv[1]) 30 return 0 31 32 33 if __name__ == '__main__': 34 sys.exit(main()) 35