|
You last visited: Today at 17:47
Advertisement
[RLS]Client Protection *LITE*
Discussion on [RLS]Client Protection *LITE* within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.
03/15/2013, 23:13
|
#16
|
elite*gold: 21
Join Date: Oct 2012
Posts: 374
Received Thanks: 524
|
Quote:
Originally Posted by passy305
Mag sein, aber 98% hier laden sich jeden scheiß,
ohne auchnur 1 Wort zu lesen.
Woraufhin sie sinnlose Posts schreiben wie man es einfügt,
weil sie bei den Tabs gefailed haben.
|
selbst schuld,...
|
|
|
03/15/2013, 23:24
|
#17
|
elite*gold: 139
Join Date: Sep 2010
Posts: 583
Received Thanks: 545
|
Video eingefügt als Demonstration. Das ich ja nur ein kleiner ripper bin.
|
|
|
03/15/2013, 23:48
|
#18
|
elite*gold: 0
Join Date: Jan 2010
Posts: 1,916
Received Thanks: 538
|
Wow wie schwer xd gibt ja nicht umsonst den gui editor.
|
|
|
03/16/2013, 01:05
|
#19
|
elite*gold: 6394
Join Date: Nov 2008
Posts: 1,225
Received Thanks: 4,766
|
Quote:
Originally Posted by ShuzZzle
Wenn du keine Ahnung hast einfach mal die Fresse halten. Versuch das mal mit deinen kack low skill gui editor zu machen.
|
Man kann sowas auch normal sagen, müsst ihr immer alle aufeinander losgehen?
Ihr müsst hier nicht immer den "BigBoss" markieren, wenn euch jemand zu Recht weist, dann nehmt es hin, sagt ihm was ihr noch dazu zu sagen habt und lasst es anschließen gut sein!
...lasst die Leute reden, denn wenn die Leute reden, machen sie nichts schlimmeres...
Zum Release kann ich nicht viel sagen, auser das ich es besser fände wenn die Methode sich nicht immer selber aufrufen würde, das ist nicht nötig.. (finde ich)
MfG.
|
|
|
03/16/2013, 01:42
|
#20
|
elite*gold: 0
Join Date: Oct 2012
Posts: 47
Received Thanks: 292
|
lasst euch das anderst generieren, sodass ihr das auch gescheit patchen könnt.
PHP Code:
#This library is a improved version of the code written by Paul Chakravarti which he released into the public domain #http://code.activestate.com/recipes/496737/
import os import struct, md5, time
def crypt(key,data,iv,n=32): key = md5.new(key).digest() def keygen(key,iv,n): while True: iv = xtea_encrypt(key,iv,n) for k in iv: yield ord(k) xor = [ chr(x^y) for (x,y) in zip(map(ord,data),keygen(key,iv,n)) ] return "".join(xor)
def xtea_encrypt(key,block,n=32,endian="!"): v0,v1 = struct.unpack(endian+"2L",block) k = struct.unpack(endian+"4L",key) sum,delta,mask = 0L,0x9e3779b9L,0xffffffffL for round in range(n): v0 = (v0 + (((v1<<4 ^ v1>>5) + v1) ^ (sum + k[sum & 3]))) & mask sum = (sum + delta) & mask v1 = (v1 + (((v0<<4 ^ v0>>5) + v0) ^ (sum + k[sum>>11 & 3]))) & mask return struct.pack(endian+"2L",v0,v1)
dump = [] for root, dirs, files in os.walk(os.getcwd()): for file in files: name = os.path.join(root, file) hash = self.getFileHash(name) dump.append(hash) check_struct = crypt("password", "".join(dump), "01234567")
erstellt euch einen in xtea gecrypteten Dump (müsst noch Dateien wie config oder syserr ignorieren, da diese ihren Hash immer schön ändern) vom kompletten Clienten.
Packt den Schmarrn mit ein als Modul (Hinweis: )
und vergleicht hier die Variablen.
Wirklich effektiv ist die Methode gesamt nicht, Injektoren müssen ja nicht einmal im gleichen Ordner liegen, sie greifen lediglich auf die PID um damit zu agieren.
Mittelmäßiges Beispiel, welches DaRealFreak vor einer langen Zeit mal publiziert hat.
Wie das ganze injected wird stammt btw. von der offiziellen Python Seite bzw. der Dokumentation.
PHP Code:
#!/usr/bin/python # -*- coding: latin-1 -*- import sys, os, ctypes, subprocess
class DllInjector(object):
def __init__(self): if sys.platform == 'linux' or sys.platform == 'linux2': self.Clear = lambda: os.system('clear') else: self.Clear = lambda: os.system('cls') print("Dll Injector by DaRealFreak\n") self.ChooseProcess() def ChooseProcess(self): p = subprocess.Popen('tasklist',stdout=subprocess.PIPE,stderr=subprocess.PIPE) output, errors = p.communicate() ProcessList = [] NameCheck = [] for line in output.split("\n")[7:]: name = [] for char in line: try: if not ("".join(name[-3:])) == " ": name.append(char) else: break except: name.append(char) name = "".join(name[:-3]) if not name == "": piddata = line.split(name)[1] pid = [] for char in piddata: if char.isdigit(): pid.append(char) if not char.isdigit() and char != " ": break pid = "".join(pid) if not pid == "": pid = int(pid) if not name in NameCheck: ProcessList.append([name, pid]) NameCheck.append(name) ProcessList = sorted(ProcessList, key=lambda process: process[0])
print("Inject dll to process:\n") pid = self.OptionDialog(ProcessList) self.Clear() print("Process Pid: %s" % (pid)) self.ChooseDll(pid) def ChooseDll(self, pid): dll_path = raw_input("Select dll file to inject...\n") if not os.path.exists(dll_path): self.Clear() print("Dll file not found, please try again...\n") self.ChooseDll(pid) self.InjectDll(pid, dll_path)
def OptionDialog(self, options): for option in options: print("%s. %s" % (options.index(option) + 1, option[0])) Select = raw_input("\nOption: \n") if Select.isdigit(): if int(Select) > len(options): self.Clear() print("Please choose another index.\n") return(self.OptionDialog(options)) return(options[int(Select) - 1][1]) else: self.Clear() print("Please enter a valid digit.\n") return(self.OptionDialog(options))
def InjectDll(self, pid, dll_path): self.Clear() print("[*] Starting Dll Injection") kernel32 = ctypes.windll.kernel32
print("[*] Opening Process....") hproc = kernel32.OpenProcess(0x1F0FFF, False, pid) print("[*] Allocation memory..") ADDRS = kernel32.VirtualAllocEx(hproc, 0, len(dll_path), 0x3000,0x04) print("[*] Writing into Process..") kernel32.WriteProcessMemory(hproc, ADDRS, dll_path, len(dll_path), ctypes.byref(ctypes.c_int(0))) print("[*] Getting Module Handle..") k32dll = kernel32.GetModuleHandleA("kernel32") print("[*] Get Process Address") loadlib_func = kernel32.GetProcAddress(k32dll,"LoadLibraryA") print("[*] Remote Thread..") if not kernel32.CreateRemoteThread(hproc, None, 0, loadlib_func, ADDRS, 0, ctypes.byref(ctypes.c_ulong(0))): raw_input("[*] Injection Failed\n") sys.exit(0) else: raw_input("[*] Injection Successfull\n")
DllInjector()
Bin jetzt zu faul selber einen zu schreiben, der Code ist nicht mehr allzu aktuell was er da praktiziert hat, aber reicht als Beispiel aus.
Klappt auch noch wunderbar bei allen Servern die ich ausprobiert habe.
Fazit:
Wer das ganze braucht kann es ruhig nehmen, die Methode ansich ist leider statisch, des Weiteren bringt das ganze nur insofern etwas, wenn der Nutzer die ganzen Dateien im Hauptordner liegen hat, was überhaupt nicht notwendig ist um Dlls in den Prozess zu laden.
Einen schönen Abend noch
|
|
|
03/16/2013, 09:27
|
#21
|
elite*gold: 5
Join Date: Oct 2010
Posts: 1,692
Received Thanks: 1,772
|
Zum Release:
Es geht doch eigentlich viel einfacher man könnte doch einfach (wenn man einen Patcher hat) die patchlist.xml per urllib einlesen dann splitten in datei und hash und dann einfach die Sachen überprüfen falls es nicht übereinstimmt die Meldung "Dein Client ist nicht Aktuell"
Gleichzeitig könnte man alle anderen Datein die noch im Client sind löschen.
|
|
|
03/16/2013, 09:40
|
#22
|
elite*gold: 0
Join Date: Jan 2013
Posts: 89
Received Thanks: 67
|
Mal testen Danke.
|
|
|
03/16/2013, 10:39
|
#23
|
elite*gold: 15
Join Date: Mar 2010
Posts: 4,269
Received Thanks: 2,499
|
Von xCPx gerippt? Ironie? Wenn schon dann hats xCPx selber von anderen gerippt. Das steht übrigens schon in sein drecks Namen.
Quote:
Originally Posted by ShuzZzle
Ähm was ist daran ne backdoor WTF?
Ja es ist mein System. [SA]***** & Analyze war live dabei beim schreiben. Wenn xCPx das schon gemacht hatte dann tuts mir leid.
|
Hab ich schonmal gesagt das dieses "er war dabei gewesen" sogut wie keine Wirkung gegenüber mir hat und das es jeder sagen kann?
|
|
|
03/16/2013, 10:51
|
#24
|
elite*gold: 0
Join Date: Jan 2013
Posts: 348
Received Thanks: 353
|
trotzdem unsicher, da man einfach die DLL's umprogrammieren kann, sodass sie die normalen Funktionen + deine Injektor Funktion hat...
Zu dem Rippen sag ich jetzt mal gar nichts....
|
|
|
03/16/2013, 15:38
|
#25
|
elite*gold: 0
Join Date: Feb 2013
Posts: 3
Received Thanks: 0
|
Excuse me, but where it should be placed, not in root?
|
|
|
03/16/2013, 17:18
|
#26
|
elite*gold: 20
Join Date: Jun 2011
Posts: 2,897
Received Thanks: 3,336
|
Quote:
Originally Posted by .EsoZiaL'
Von xCPx gerippt? Ironie? Wenn schon dann hats xCPx selber von anderen gerippt. Das steht übrigens schon in sein drecks Namen.
Hab ich schonmal gesagt das dieses "er war dabei gewesen" sogut wie keine Wirkung gegenüber mir hat und das es jeder sagen kann?
|
Esozial? nur weil du nichts auf die Reihe kriegst, musst du bei anderen keinen Rufmord betreiben.
Nachdem die Beta von NewVision vorbei war, hab ich mein Script released gehabt (hat alle dateien im Clienten auf Md5 geprüft und hat ein einziger nicht gestimmt oder war eine nicht gelistete datei dabei, hat er nichtmehr gestartet.)
Naja mit so Kindergartenzeugs sind wir durch haben das nun ordentlich gelöst.
Ist an sich ne 5 Minutenarbeit, selbst mit überprüfung aller dateien, mit sämtlichen Unterverzeichnissen etc.
Aber wie gesagt, ich hab kp ob sie es von mir haben oder nicht, mir ist das bei so nem Kindergartenscript aber ehrlich gesagt auch scheißegal.
|
|
|
03/16/2013, 17:59
|
#27
|
elite*gold: 37
Join Date: Jan 2010
Posts: 2,035
Received Thanks: 1,706
|
leuts, könnt ihr auch mal eure Kindergartengespräche sein lassen !?
Es ist schon schlimm genug, dass man anderen Leuten sowas unterstellt, aber sich dann noch dermaßen lächerlich machen, indem man sich in einem ultimativen flamewar bekriegt ist einfach dermaßen kindisch, dass ich mir manchmal die Frage stelle, was ihr euch überhaupt dabei denkt ?
Anstatt mit einander zu arbeiten, arbeitet ihr gegeneinander ...
|
|
|
03/16/2013, 18:39
|
#28
|
elite*gold: 0
Join Date: Aug 2012
Posts: 85
Received Thanks: 8
|
I put this in my client and doesn´t work
root --> check.py
help me please
|
|
|
03/17/2013, 04:46
|
#29
|
elite*gold: 0
Join Date: Jan 2010
Posts: 416
Received Thanks: 95
|
..............
Quote:
Originally Posted by epvp!
I put this in my client and doesn´t work
root --> check.py
help me please
|
....
|
|
|
03/17/2013, 11:58
|
#30
|
elite*gold: 0
Join Date: Aug 2012
Posts: 85
Received Thanks: 8
|
help me please T-T
|
|
|
|
|
Similar Threads
|
tq client clicker protection
03/12/2013 - CO2 Private Server - 1 Replies
i've found an exploit at tq while trying to sniff some packets and i need clicker for certain job , i've coded one but the item im using for exploit exist on a 136 archer and i don't want to get it banned
so i want to ask if tq check for clickers (i heard it does)
if so , where is that call to nop it
thanks in advance
|
[Best client protection?] Is this best client protection?
10/31/2012 - Metin2 Private Server - 0 Replies
Hello, i found this : WildGamers Security Page
This website offers for metin2 clients anti-hack protection with autoban etc. (deleted root etc.), and I try him on my server, and this works. But, how I can to user switchbot on 4Metin PVP - Private server - Use this protection with some things edited.
P.S.: Protection is only in client, personalized PONG on game :-s
|
Help whit protection client
12/19/2011 - Metin2 Private Server - 1 Replies
Hello community!
I want help for protect client .
I know how to change eix.epk and change lzo key...
but on ly one problem is the protection eix.epk and make decrypter/crypter of it.
Can anyone post me any guide or help me on it?
Thank you very much...
Hey this si community right? why NO ONE help?
this community go die ._.
|
Client Protection?
05/08/2009 - World of Warcraft - 0 Replies
so i was wondering what kind of protection the wow client has, like can i search (or access through kernel calls) the virtual memory safely or do bots and such strictly have to be pixel based? (without killing warden i mean)
|
All times are GMT +2. The time now is 17:47.
|
|