Explanation :
As you know, hacks like "dmg hack" or "x7 hack" are usualy epk and eix archives.
If you don't know how to crypt files or the encryption doesn't work well (it happens to me) you can't do almost nothing to stop those hacks.
So I created in python a little code which check files MD5 and if it's wrong the client will show an error and will close.
Before starting I want to tell you that : it's the first time for me in python (really ) so I think there may be performance complication so i suggest to check only the Indexes (.eix files) and the "Index" file because those are smaller. As I said it's my first time in python so I assume any mistake
Another thing : check your indent!
How it works? When it finds a file that is wrong it will display a message and after user click OK the client will close.
Image :
Download link :
Virus total :
Tutorial :
Step 1 :
Unpack root. Open constinfo.py and add this :
Code:
## START FileCheck by Cataclismo (yeah ... TheBeast223 = Cataclismo @ pro-area.com = me :D ) FILECHECK_SEPARATOR = " ###md5: " FILECHECK_MESSAGE = "Clientul are nevoie de update!!" FILECHECK_URL = "http://digitalmt2.ro/files.md5" ## END FileCheck
Download the archive i post above and put all files from root from archive in your root and all the files from lib folder in your lib folder in client.
Step 3 :
In your root open intrologin.py with Notepad++ (or any other GOOD editor - avoid windows text editors) and search :
Code:
import uiScriptLocale
Code:
import urllib import md5 import threading
Search in intrologin.py the code :
Code:
app.ShowCursor()
Code:
t = threading.Thread(target=self.FileCheck(), args = (self)) t.daemon = TRUE t.start()
Code:
def FileCheck(self): files = None md5_list = [] files_list = [] fname = "list.md5" data = None md5 = None ## Download list urllib.urlretrieve (constInfo.FILECHECK_URL, fname) ## Read list f = open(fname) files = f.readlines() f.close() ## Clear list f = open(fname, "w") f.write("") f.close() ## Split i = 0 while i < len(files): data = files[i].split(constInfo.FILECHECK_SEPARATOR) files_list.append(data[0]) md5_list.append(data[1]) i += 1 ## Check files md5 i = 0 while i < len(files_list): md5 = self.md5_for_file(files_list[i]) original_md5 = md5_list[i].lower() original_md5 = original_md5.replace(" ", "") original_md5 = original_md5.replace("\n", "") if md5 != original_md5: self.PopupNotifyMessage(constInfo.FILECHECK_MESSAGE, self.__ExitGame) break i += 1 ## File MD5 : def md5_for_file(self, fname): f = open(fname, 'rb') data = f.read() m = md5.new() if len(data)>0: m.update(data) f.close() return m.hexdigest() ##
Create the list with files and md5 with a Patch Lister. If you don't have one use this :
Upload list and make shure the url is exactly like FILECHECK_URL!
The separator MUST be exactly like FILECHECK_SEPARATOR .
Ex: pack/root.eix ###md5: 123123123
###md5: is the separator
You can also edit the message from FILECHECK_MESSAGE.
If you followed my steps it have to work correctly.
Good luck!
OFF: Kunterica is a liar and a stealer! doesn't belong to him! It's maked by NistorAlex @ pro-area.com !