Metal Gear Solid V: The Phantom Pain
0 of 0

File information

Last updated

Original upload

Created by

CantStoptheBipBop

Uploaded by

CantStoptheBipBop

Virus scan

Safe to use

About this mod

A lua script that utilizes brute force and dictionary attack methods of generating LangIds in .lng and .lng2 game files. Uses Atvaark's Fox.StrCode32.exe to verify that a LangId matches file hashes.

Permissions and credits
This is a lua script for generating LangIds (meaning you'll need to install lua to use it). It generates LangIds and checks for a match against a hash list of .lng and .lng2 entries. The generated LangIds are converted to hashes with Atvaark's Fox.StrCode32.exe, checks for a match, converts matched entries back to LangIds, and appends unique entries to a dictionary list. File hashes can resolve to many usable LangIds but there is only one "true" LangId for each hash. You will want to manually check the generated list of LangIds for the sake of cleaner entries and pattern finding for future hashes to resolve consistently.

Requirements
  • lua 5.1 or later (Windows install)
  • Windows (cmd commands, though these would be trivial to convert to a different OS yourself)

Change Log
    r2
  • minor changes to script
  • updated dictList.txt with current dictionary
  • updated hashList.txt with only undefined hashes

Use
  • Change w1-w4 to desired phrase to try for bruteForce and dictionaryAttack functions (top of script)
  • Change stringRepeatNum to desired character length for bruteForce function to stop at (top of script)

  • Edit concatenated string for desired output in bruteForce and dictonaryAttack functions
  • dictonaryAttack: file:write(w1..a..__..b,"\n") when w1 is set to "announce_quiet_" will create "announce_quiet_word1_word2" entries
  • bruteForce: s=w1..d..e..f..g when w1 is set to "announce_quiet_" will create "announce_quiet_AAAA" entries. Uses ASCII codes for creating character-sets. See script comments for more info.

  • Select whether to perform a dictionary or brute force attack by commenting out either dictionaryAttack() or bruteForce() at bottom of script in the while loop.

Files
  • "dictList - EnglishDictionaryBackup.txt": copy of English dictionary word list
  • "dictList - LngBackup.txt": copy of lowercase LangId and Value scrape word list
  • "dictList.txt": file used by dictionaryAttack function. Copy paste contents of either the English dictionary or lng scrape.

  • "hashList - 101416Backup.txt": copy of undefined hashes
  • "hashList - FullBackup.txt": copy of all hashes within .lng and .lng2 files
  • "hashList.txt": file used by script for comparing generated LangIds to table of hashes

  • "lang_dictionary.txt": file used by script for holding generated LangIds. Note that this isn't the output file.
  • "lang_dictionary_result.txt": file generated by Fox.StrCode32.exe. Contains generated LangId and its hash.

  • "newDict.txt": output file for script. Contains current dictionary and new LangIds are appended to bottom of file.

To keep up to date on the current lang_dictionary.txt or if you would like to contribute to it, visit the GitHub page MGSV Lang Dictionary Project.

Credit