Home | History | Annotate | Download | only in symsrc
      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