Metin2 Python Taraflı Hile Koruması

  • Konuyu başlatan Konuyu başlatan Luigina
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 13
  • Görüntüleme Görüntüleme 3K

Luigina

MetinTwo International
Katılım
19 Şub 2019
Konular
173
Mesajlar
2,134
Çözüm
26
Online süresi
10mo 21d
Reaksiyon Skoru
1,932
Altın Konu
4
Başarım Puanı
273
MmoLira
4,249
DevLira
97
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Author : @Pasha37
Ek :
Kod:
import sys
import os
import app
import time
import thread
import dbg
import ui
import md5
import urllib
import uiCommon
from os.path import basename

try:
    import win32api   
except:
    syslog('Cant import win32api module')
    dbg.LogBox("Cant import win32api module")
    app.Exit()

DATA_URL = "http://koray.zz.mu/imtn2/client/"

launchername = sys.executable
taskname = basename(launchername)
launchers = os.path.getsize(taskname)
launchersize = int(launchers)

check=' '.join(os.listdir(os.getcwd()))
check_miles=' '.join(os.listdir(os.getcwd()+"miles"))
check_bgm=' '.join(os.listdir(os.getcwd()+"bgm"))
check_lib=' '.join(os.listdir(os.getcwd()+"lib"))
check_folder=' '.join(os.listdir(os.getcwd()))

######preparation#################################

##HashFonk
def getMd5(file):
    m = md5.new()
    fp = open(file,"rb")
    while 1:
        data = fp.read(1024)
        if not data:break
        m.update(data)
    fp.close()
    return m.hexdigest()
def getMD5ByFileName(file):
    try:
        file = file.strip()
        md5hash = md5.new()
        dllFile = open(file, 'rb')
        tmpFileBlock = dllFile.read()
        dllFile.close()
        md5hash.update(tmpFileBlock)
        md5hash = md5hash.hexdigest()
        return md5hash
    except:
        return ''
def ReturnMd5(file,hash):
    if(getMd5(file) != hash ):return TRUE
    else:return FALSE
def syslog(s):
    file = open('syserr.txt', 'a')
    file.write('n' + s + 'n')
    file.close()
def ingameNotifyPopupAndExit(text = ''):
    popup = uiCommon.PopupDialog()
    popup.SetWidth(700)
    popup.SetText(text)
    popup.Show()
    time.sleep(7)
###/////////######################################

#Base Security > Name+Byte
def BaseCheck():
    global launchername, taskname, launchersize
    
    if not taskname == "metin2cliento.exe" or launchersize == "3171985":
        dbg.LogBox("Wrong launcher")
        os.system("taskkill /im %s /f" % taskname)
        
#Folder Secuirty > BGM + Miles + Lib + Main Folder
def FileCheck():
    global check, check_bgm, check_folder, check_miles, check_lib

    banned_ext=[".mix", ".m3d", ".flt", ".asi", ".bat"]
    miles_clean=["mssa3d.m3d", "mssds3d.m3d", "mssdsp.flt", "mssdx7.m3d", "msseax.m3d", "mssmp3.asi", "mssrsx.m3d", "msssoft.m3d", "mssvoice.asi"]
    lib_clean=['__future__.pyc','copy_reg.pyc','linecache.pyc','ntpath.pyc','os.pyc','site.pyc','stat.pyc','string.pyc','traceback.pyc','types.pyc','UserDict.pyc','urllib.pyc','win32con.pyc','threading.pyc']
    folder_clean=['BGM', 'artpclnt.dll', 'pn.dll', 'channel.inf', 'config.exe', 'devil.dll', 'DSETUP.dll', 'errorlog.exe', 'errorlog.txt', 'granny2.dll', 'ijl15.dll', 'ilu.dll', 'locale.cfg', 'metin2cliento.exe', 'metin2.cfg', 'mouse.cfg', 'mscoree.dll', 'MSS32.DLL', 'msvcp60.dll', 'MSVCRTD.DLL', 'patchw32.dll', 'python22.dll', 'SpeedTreeRT.dll', 'syserr.txt', 'unicows.dll', 'hshield', 'lib', 'mark', 'miles', 'pack', 'temp', 'upload', 'patchskin', 'skins', 'screenshot']
    bgm_clean=['a_rhapsody_of_war.mp3','another_way.mp3','back_to_back.mp3','blacksea.mp3','catacomb_of_devil.mp3','characterselect.mp3','death_of_landmark.mp3','desert.mp3','enter_the_east.mp3','follow_war_god.mp3','last-war2.mp3','login_window.mp3','lost_my_name.mp3','m2bg.mp3','misty_forest.mp3','monkey_temple.mp3','mountain_of_death.mp3','mt.mp3','only_my_battle.mp3','open_the_gate.mp3','save_me.mp3','wedding.mp3','wonderland.mp3','xmas.mp3']

    for i in miles_clean:
        check_miles=check_miles.replace(i, '')
    for i in lib_clean:
        check_lib=check_lib.replace(i, '')
    for i in bgm_clean:
        check_bgm=check_bgm.replace(i, '')
    for i in folder_clean:
        check_folder=check_folder.replace(i, '')
    for i in banned_ext:
        if check.find(i) != -1:
            f=open("syserr.txt", "w")
            nome="%s%s" % (i[0].upper(), i[1:])
            f.write("[HACKSHIELD]Invaild File!n" + nome)
            f.close()
            app.Exit()
        if check_bgm.find(i) != -1:
            f=open("syserr.txt", "w")
            nome="%s%s" % (i[0].upper(), i[1:])
            f.write("[HACKSHIELD]Invaild File!n" + nome)
            f.close()
            app.Exit()
        if check_miles.find(i) != -1:
            f=open("syserr.txt", "w")
            nome="%s%s" % (i[0].upper(), i[1:])
            f.write("[HACKSHIELD]Invaild File!n" + nome)
            f.close()
            app.Exit()
        if check_lib.find(i) != -1:
            f=open("syserr.txt", "w")
            nome="%s%s" % (i[0].upper(), i[1:])
            f.write("[HACKSHIELD]Invaild File!n" + nome)
            f.close()
            app.Exit()
        if check_folder.find(i) != -1:
            f=open("syserr.txt", "w")
            nome="%s%s" % (i[0].upper(), i[1:])
            f.write("[HACKSHIELD]Invaild File!n" + nome)
            f.close()
            app.Exit()
#Folder check > ".py"           
def PyDelete():
    while 1 == 1:
        files = [f for f in os.listdir('.') if os.path.isfile(f)]
        for f in files:
            if f.endswith(".py"):
                f1 = f
                try:
                    os.remove(f)
                except:
                    pass

                if f1 == "logininfo.py":
                    syslog("[HACKSHIELD]Detected Hack File")
                    app.Exit("")
        time.sleep(1)
        
#######Hash Control
def HashCheck():
    ##Miles
    if len(os.listdir('miles')) != 10 :
        return 'Wrong file detected'
    d = {
        'miles/mss32.dll': '6400e224b8b44ece59a992e6d8233719',
        'miles/mssa3d.m3d':'e089ce52b0617a6530069f22e0bdba2a',
        'miles/mssds3d.m3d':'85267776d45dbf5475c7d9882f08117c',
        'miles/mssdsp.flt':'cb71b1791009eca618e9b1ad4baa4fa9',
        'miles/mssdx7.m3d':'2727e2671482a55b2f1f16aa88d2780f',
        'miles/msseax.m3d':'788bd950efe89fa5166292bd6729fa62',
        'miles/mssmp3.asi':'189576dfe55af3b70db7e3e2312cd0fd',
        'miles/mssrsx.m3d':'7fae15b559eb91f491a5f75cfa103cd4',
        'miles/msssoft.m3d':'bdc9ad58ade17dbd939522eee447416f',
        'miles/mssvoice.asi':'3d5342edebe722748ace78c930f4d8a5'
        }
    for x in d:
        if ReturnMd5(x, d[x]): return TRUE
        else: return FALSE
                
    if getMd5("python22.dll") != "97FB91610702B63F071282E9CF86B8C0" :
        dbg.LogBox("Invaild file:" + "python22.dll")
        app.Exit()
    if getMd5("secur.dll") != "F01C8F12DD4662F566433B6DA1B2735E" :
        dbg.LogBox("Invaild file:" + "secur.dll")
        app.Exit()
    if getMd5("lib/os.pyc") != "d0d09c7daa9d57373cd7586a74ec4099" :
        dbg.LogBox("Invaild file:" + "os.pyc")
        app.Exit()

##CheckProcess
def ProcCheck():
    whitelist = ["putty.exe","filezilla.exe"]
    hack = []
    result = []
    
    while 1==1:
        for l in os.popen("secur.dll "+ str(os.getpid())).readlines():
            line = l.lower()
            if (line.find("switch") != -1 or line.find("hack") != -1 or line.find("inject") != -1  or line.find("bot") != -1 or
                line.find("loader") != -1 or line.find("lalaker") != -1 or line.find("hile") != -1):
                    urllib.urlopen(DATA_URL + "hack.php?oyuncu=" + player.GetName() + "&server=" + str(net.GetServerInfo().split(',')[0]) + "&hack=" + l[0])
                    time.sleep(5)
                    break
        for line in os.popen('secur.dll ' + str(os.getpid())).readlines():
            try:
                if line.strip() != '' and line.strip().startswith('EXE'):
                    line = line.split(' ')
                    line.pop(0)
                    line.pop(0)
                    line = ' '.join(line)
                    f = open(line.strip(), 'r')
                    if f:
                        result.append(line.strip())
            except:
                continue
        return []
        for p in os.popen("tasklist v"):
            processi = p.read().lower()
            if (processi.find("hack") != -1 or processi.find("inject") != -1 or processi.find("inject") != -1  or
                processi.find("bot") != -1 or processi.find("cheat") != -1 or processi.find("ollydbg") != -1 or
                processi.find("actool") != -1 or processi.find("allydbg") != -1 or processi.find("ollyice") != -1 or
                processi.find("windbg") != -1 or processi.find("softice") != -1 or processi.find("m2bob") != -1):
                p = processi.split()
                if p[0] in whitelist:
                    continue
                    time.sleep(4)
                if p[0] not in hack:
                    urllib.urlopen(DATA_URL + "hack.php?oyuncu=" + player.GetName() + "&server=" + str(net.GetServerInfo().split(',')[0]) + "&hack=" + l[0])
                    time.sleep(5)
        time.sleep(20)
    return
FileCheck()
BaseCheck()
HashCheck()

thread.start_new_thread(PyDelete, ())
thread.start_new_thread(ProcCheck, ())
 

En Çok Reaksiyon Alan Mesajlar

Teşekkürler.
 
Teşşekürler ne gibi hile koruması ? biraz bilgi verirmisiniz
m2bobu engellencegini sanmıyorum pek
 
paylaşım için teşekkürler.
 
Paylaşım için teşekkürler.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)