#1
|
|||
|
|||
MD5 replace tool
Hi,
I just wrote a quick tool to patch all occurrences of a file inside a program folder (no matter the file name) given an MD5 checksum. It is useful when the original files may have different names and are present in multiple sub directories. Usage: python replace.py FOLDER MD5_SUM CRACKED_FILE_PATH Example: python replace.py 098f6bcd4621d373cade4e832627b4f6 c:\mysoftware license.dll Where: -> 098f6bcd4621d373cade4e832627b4f6: is the MD5 of the original files to be replaced by the cracked file. You can get the MD5 checksum by using powershell with the function Get-FileHash -alg md5 ORIGINAL_FILE -> c:\mysoftware is the folder of the software -> license.dll is the path to the cracked file You can also edit the file and set DEBUG_MODE=True to only print the occurrence of the files instead of replacing them. Compiled version is also available attached. Code:
import os import sys import hashlib import shutil DEBUG_MODE=False if len(sys.argv) < 4: print("Usage: python replace.py FOLDER MD5_SUM FILE_PATH_TO_REPLACE_BY") sys.exit(-1) g_path = sys.argv[1] md5_to_find = sys.argv[2] to_replace_by = sys.argv[3] if not os.path.isfile(to_replace_by): print("Error: the path of the file to replace by does not exists") sys.exit(-1) def md5sum(fname): try: hash_md5 = hashlib.md5() with open(fname, "rb") as f: for chunk in iter(lambda: f.read(4096), b""): hash_md5.update(chunk) return hash_md5.hexdigest() except: pass return "ERROR" for root, directories, filenames in os.walk(g_path): for filename in filenames: full_path = os.path.join(root, filename) checksum = md5sum(full_path) #print(full_path, md5sum(full_path)) if not DEBUG_MODE and checksum == md5_to_find: print("Replacing [%s] by [%s]" % (full_path, to_replace_by)) shutil.copy(to_replace_by, full_path) elif checksum == md5_to_find: print("Should replace [%s] by [%s]" % (full_path, to_replace_by)) |
The Following 2 Users Say Thank You to Elesty For This Useful Post: | ||
Indigo (07-19-2019) |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Is there any tool to replace the files packed in the NullSoft Install System package? | BlackWhite | General Discussion | 4 | 09-02-2018 00:27 |
OllyCapstone :OllyDbg1.10 plugin to replace its original disasm engine with Capstone | sh3dow | Community Tools | 3 | 09-27-2015 01:54 |
Search and Replace? | prejker | General Discussion | 6 | 05-28-2004 23:32 |
how to replace kernel32.dll in win2k/xp | tAz | General Discussion | 12 | 02-06-2004 03:46 |