Advertisement
MMMonster

GTA V chek MD5

Mar 21st, 2018
815
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.26 KB | None | 0 0
  1. import os
  2. import hashlib
  3.  
  4. #put your installation directory between the quotation marks. (WITH the double backslash on the end!)
  5. #download pyton https://www.python.org/downloads/
  6. #save project as gtatest.py and run
  7. gta_dir = os.path.abspath("D:\Grand Theft Auto V\\")
  8.  
  9. #directory: \Grand Theft Auto V\
  10. file_hashes = [('x64a.rpf', '683610e269ba60c5fcc7a9f6d1a8bfd5'),
  11.            #next line is for steam users only (move the "#"-sign one line down):
  12.            #('x64b.rpf', 'bef3689e53a6beb8430b27ab25097d31'),
  13.            ('x64b.rpf', '70af24cd4fe2c8ee58edb902f018a558'),
  14.            ('x64c.rpf', '2a0f6f1c35ad567fe8e56b9c9cc4e4c6'),
  15.            ('x64d.rpf', 'c8757b052ab5079c7749bcce02538b2e'),
  16.            ('x64e.rpf', 'e5416c0b0000dad4014e0c5e9b878ff9'),
  17.            ('x64f.rpf', '5c6fc965d56ae6d422cd6cbe5a65a3a5'),
  18.            ('x64g.rpf', '1d8a64b337c3e07dffec0f53530cdb8e'),
  19.            ('x64h.rpf', 'fe657d9282df303b080c3a2f6771c9ea'),
  20.            ('x64i.rpf', 'bb271d313467465d62c75e208236487b'),
  21.            ('x64j.rpf', '143deee4c7699b9f07ef21d43ae0915b'),
  22.            ('x64k.rpf', 'da2c88b4ca69c99a86868a9433084a9d'),
  23.            ('x64l.rpf', 'f4307b005a3e90192f235959621781d1'),
  24.            ('x64m.rpf', 'a1304d84875747aa7405465d37d3c6fb'),
  25.            ('x64n.rpf', 'c48a14fe1c301360a16e8b0c5472fd1d'),
  26.            ('x64o.rpf', '6715a4eabbbc8868f15630bf917db49a'),
  27.            ('x64p.rpf', '6ad56befada1db7cccd9cea7834c825b'),
  28.            ('x64q.rpf', 'ff6d09527d7fdc005d3fa78435e09c8a'),
  29.            ('x64r.rpf', '1465c9da5cc17b68f14915b6c1d815bc'),
  30.            ('x64s.rpf', '2c6e61201eb4f60d5c3c1e9ae6d67a32'),
  31.            ('x64t.rpf', '4c15a54a4c9573d7a0bcfa4689d9d1ed'),
  32.            ('x64u.rpf', '2c9cff0cc5f99ad2218e4c4de39881b7'),
  33.            ('x64v.rpf', 'db647120263d0282b6f6c555f6112a1c'),
  34.            ('x64w.rpf', '46a4abe50bfc78c30c0173d888cf2c4a')]
  35.  
  36. #directory: \Grand Theft Auto V\update\x64\dlcpacks\
  37. dlc_dirs = [('mpchristmas2', 'a4d0910b796c06949ddecaf59e9e7abd'),
  38.         ('mpheist', '268ebd26d4e608e22c97a4406a441304'),
  39.         ('mpluxe', '64656efa4b68075de5d36630eb3df1ce'),
  40.         ('mpluxe2', '0b707b7b0c5fa846b0c7e3795bbb752d'),
  41.         ('mppatchesng', 'cbd02bff9d631941cb1be25323f577b9'),
  42.         ('mpreplay', '2efea9ac2629bb3bdbe6bdc0e0d14894'),
  43.         ('patchday1ng', 'e0300b04dfae8d26335f8555ff817e71'),
  44.         ('patchday2bng', '944683e32536c908611a2f9bc2e0111c'),
  45.         ('patchday2ng', 'f48d5113ed030b737d84b323bfc7dc18'),
  46.         ('patchday3ng', '8a53726d7a79d0dcb9019d1e479c2b8e'),
  47.         ('patchday4ng', '67cf27f27c020f5196f1b96628e062dd'),
  48.         ('patchday5ng', 'ff98184310852ef5bc64ba9ae057086f'),
  49.         ('patchday6ng', '46018995d24532336bec65173c37f1ef')]
  50.  
  51. #directory: \Grand Theft Auto V\x64\audio\sfx\
  52. sfx_files = [('ANIMALS', 'dee58a003406da3553f78e534622ac50'),
  53.          ('ANIMALS_FAR', '2a7a5ee23da6459b2ebd2c04dbe1b846'),
  54.          ('ANIMALS_NEAR', '647cea419643808e7ffc82b1d311fa13'),
  55.          ('CUTSCENE_MASTERED_ONLY', '995f71489084297f31943373c619f68e'),
  56.          ('DLC_GTAO', 'c2696f76149ac57fa1a61636762aa4c7'),
  57.          ('INTERACTIVE_MUSIC', 'c07eb284089b4b9db7fcebe7029cbd54'),
  58.          ('ONESHOT_AMBIENCE', '4ed22957a50553182cedf5510d1e8e36'),
  59.          ('PAIN', '08e42851ff2ee25ef844101bb4eb125e'),
  60.          ('POLICE_SCANNER', '30e1ddea02d92e334523301b37bbc2cf'),
  61.          ('PROLOGUE', '6ed5fd973aee29d1043280a95fd1374a'),
  62.          ('RADIO_01_CLASS_ROCK', '88f6352fd3f00f61534749268c1ec772'),
  63.          ('RADIO_02_POP', '9c4ffb44058b17364282e49719c6615f'),
  64.          ('RADIO_03_HIPHOP_NEW', 'a64dddc3087fdf48d0614dd36212e1a2'),
  65.          ('RADIO_04_PUNK', '7817e46dc9a0fa29803e233451041ecb'),
  66.          ('RADIO_05_TALK_01', '30684ca056f66e89377d68c9f2a18dad'),
  67.          ('RADIO_06_COUNTRY', 'f7fdd6057f57a608a4ffac3388296ed7'),
  68.          ('RADIO_07_DANCE_01', '3d88e531a07149775eb77108c9bd64e6'),
  69.          ('RADIO_08_MEXICAN', '6fde3f68a4069a96f6a4bcae32efbc36'),
  70.          ('RADIO_09_HIPHOP_OLD', 'b3ce929628e98d781b99e65d55aa796f'),
  71.          ('RADIO_11_TALK_02', '6d2491f98bf0721a49aa20fcec24a979'),
  72.          ('RADIO_12_REGGAE', '55fa363694db588f0d7fc2d1c04a4bd4'),
  73.          ('RADIO_13_JAZZ', '2f864478a763fae03a195df99accb625'),
  74.          ('RADIO_14_DANCE_02', '9ce6c2c68e98c7040ab6c1c7ceca7b43'),
  75.          ('RADIO_15_MOTOWN', '8ebeb03478b905ff57dfaeb5bafd022c'),
  76.          ('RADIO_16_SILVERLAKE', 'ea96f48138bd53d5b92cd0999b4b9592'),
  77.          ('RADIO_17_FUNK', 'b29cb8ead7e02ac7f2df77472ee8e0be'),
  78.          ('RADIO_18_90S_ROCK', '31477aa6eacea5bc981e492c2bef29f1'),
  79.          ('RADIO_ADVERTS', 'e12223a4fd61efc90e75b5d4d8bc6f76'),
  80.          ('RADIO_NEWS', '058c51b09fd4be0bfb0d7adfb4d7f965'),
  81.          ('RESIDENT', 'df2407e6dec6b5fd18034ef0f47ad6bb'),
  82.          ('S_FULL_AMB_F', '8b4398938db36a617877ba3c1db47247'),
  83.          ('S_FULL_AMB_M', '8e2028e2e0f1d407cb27e354b6c3e12d'),
  84.          ('S_FULL_GAN', '193804dce2772060149c8e897d2f89d8'),
  85.          ('S_FULL_SER', '69e05ebbe2c4839534d8a8e850610dc6'),
  86.          ('S_MINI_AMB', '0365ec49c281fc58d6719604bb0719b2'),
  87.          ('S_MINI_GAN', 'e87de77e82fd106c29a2fd42d915961f'),
  88.          ('S_MINI_SER', '6917a980d346317cbfcc8f2d474d7111'),
  89.          ('S_MISC', '54503436d735aad5d4e9327e6bf89e99'),
  90.          ('SCRIPT', 'b3577479e9bf194c58df5e404c0ee00f'),
  91.          ('SS_AC', '829ba72532ee84a204f44c552dcc9da9'),
  92.          ('SS_DE', '161caaa12df6b6729aa0b03de5da00f0'),
  93.          ('SS_FF', '4330b09d4d707484987afb1279d1bda1'),
  94.          ('SS_GM', '1f3a143f4d4d7101aaeab776b6fc7edd'),
  95.          ('SS_NP', 'f32c9414327fbebfbf41d6663241d3c6'),
  96.          ('SS_QR', '71d13bfa850457d7bdc9aeee9f65e1cf'),
  97.          ('SS_ST', '5f17f2ae91ea8ba3e35a937e515d1e19'),
  98.          ('SS_UZ', 'a325ab1785d255c24592aed6a9c5b52e'),
  99.          ('STREAMED_AMBIENCE', '8af66d9ad9de11227e95192ec65448b6'),
  100.          ('STREAMED_VEHICLES', '84b960d31585d589af1701bdc48c3921'),
  101.          ('STREAMED_VEHICLES_GRANULAR', 'a34dbb719d6098d8cfdf5f51b0bb9b82'),
  102.          ('STREAMED_VEHICLES_GRANULAR_NPC', '511f2ab0c22a55caf096ada395bebe55'),
  103.          ('STREAMED_VEHICLES_LOW_LATENCY', '15076fe0ba7f57112882a179c4db0a65'),
  104.          ('STREAMS', '9b1fc10f15e2115f0945ee848120aa46'),
  105.          ('WEAPONS_PLAYER', 'b4a3c9bfd7a818dc47e34ec05fc946da')]
  106.  
  107. #directory: \Grand Theft Auto V\x64\audio            
  108. audio_files = [('audio_rel', '3f674ab6f7ce814cd4fcf21ad5536165'),
  109.            ('occlusion', '5be62ba4ad701711c5754256dd38c184')]
  110.  
  111.  
  112. for dlc in dlc_dirs:
  113. dlc_path = ('update\\x64\\dlcpacks\\' + dlc[0] + '\\dlc.rpf', dlc[1])
  114. file_hashes.append(dlc_path)
  115.  
  116. for sfx in sfx_files:
  117. sfx_path = ('x64\\audio\\sfx\\' + sfx[0] + '.rpf', sfx[1])
  118. file_hashes.append(sfx_path)
  119.  
  120. for audio in audio_files:
  121. audio_path = ('x64\\audio\\' + audio[0] + '.rpf', audio[1])
  122. file_hashes.append(audio_path)
  123.  
  124.  
  125. def md5_for_file(f, block_size=2**20):
  126. md5 = hashlib.md5()
  127. while True:
  128.     data = f.read(block_size)
  129.     if not data:
  130.         break
  131.     md5.update(data)
  132. return md5.hexdigest()
  133.  
  134.  
  135. for file_info in file_hashes:
  136. file_path = os.path.join(gta_dir, file_info[0])
  137.  
  138. output_msg = 'Checking %s' % file_path
  139. print(output_msg)
  140.  
  141. file_hash = md5_for_file(open(file_path, 'rb'))
  142.  
  143. output_msg = 'File %s:' % file_path
  144.  
  145. if file_hash == file_info[1]:
  146.     output_msg = 'OK'
  147.  
  148. else:
  149.     output_msg = 'FAIL. Expected hash: %s Actual hash: %s' % (file_info[1], file_hash)
  150.  
  151. print(output_msg)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement