[HOT]Teljes körű kliensvédelem [letöltésekkel]

Indította Heavenâ„¢, 2015-06-29, 22:43:10

2015-06-29, 22:43:10 Utolsó szerkesztés: 2015-06-30, 06:09:28 Szerző: Heaven™
Tegyünk a csalók ellen!
Ha tetszik a téma és segítségedre voltam, + karmát és egy köszit elfogadok! :)


Sziasztok! Ezt a témát azért nyitom, hogy segítsek valamit azoknak, akik újonnan nyitnak szervert, és nem igazán értenek a csalások elleni védelemhez.
Kezdjük máris a legelején, mire is gondolunk, mikor "metinkettő hekket" keresünk.
Természetesen azokra a külső programokra, melyek megkönnyítik számunkra a játékot, és jogosulatlan előnyre tehetünk szert vele másokkal szemben.

Például..
• switchbot
• pickupbot
• multi

Ezeket fogjuk most kivédeni, legalábbis megpróbáljuk a legtöbbet.
A következőkre lesz szükségünk:
- Kliens - saját
- eix-epk bontó [EterNexus]
- HEX-Editor
- Notepad++
- MD5 checker
- MPress
- The Enigma Protector
- Enigma VirtualBox DIREKT LINK!
- HeavenProd's AntiHack
- Anti-DMG
- Kiterjesztés átírásra .bat fájl

§» Python scriptek, avagy a .py csalások és a logininfo.py

Mint tudjuk, a python a játék lelke, ám ezzel rengeteg módon vissza lehet élni. Most csökkentsük annak az esélyét, hogy ez előfordulhasson.

1. Csomagoljuk ki a root eix/epk-t.

2. Keressük meg a "prototype.py" fájlt, és nyissuk meg Notepad++-al.

3. Elvileg valami ilyesmit kell látnunk. [spoiler][/spoiler]


4. Egészítsük ki az elejét ezzel
import vedelem1
import vedelem2
import vedelem3
import vedelem4
import vedelem5


Tehát valahogy így nézzen ki az import rész [spoiler][/spoiler]

5. Hozzunk létre 5db .py kiterjesztésű fájlt, vedelem1, vedelem2, vedelem3, vedelem4 és vedelem5 néven, majd másoljuk bele a következőket.

[spoiler]vedelem1.py
import dbg
import app
import os

def RunCheckUp():
fomappa = os.listdir('.')
fomappa.sort()
for fajl in fomappa:
if fajl.find('.m3d') != -1:
dbg.LogBox("Ne használj külső programokat! Törölve: " + str(fajl))
try:
os.remove(fajl)
except:
dbg.LogBox("A játék bezáródik.")
dbg.LogBox("Kérlek, töröld manuálisan: " + str(fajl))
app.Abort()
else:
pass
RunCheckUp()


vedelem2.py import dbg
import app
import os

def RunCheckUp():
fomappa = os.listdir('.')
fomappa.sort()
for fajl in fomappa:
if fajl.find('.py') != -1:
dbg.LogBox("Ne használj külső programokat! Törölve: " + str(fajl))
try:
os.remove(fajl)
except:
dbg.LogBox("A játék bezáródik.")
dbg.LogBox("Kérlek, töröld manuálisan: " + str(fajl))
app.Abort()
else:
pass
RunCheckUp()


vedelem3.py import dbg
import app
import os

def RunCheckUp():
fomappa = os.listdir('.')
fomappa.sort()
for fajl in fomappa:
if fajl.find('.flt') != -1:
dbg.LogBox("Ne használj külső programokat! Törölve: " + str(fajl))
try:
os.remove(fajl)
except:
dbg.LogBox("A játék bezáródik.")
dbg.LogBox("Kérlek, töröld manuálisan: " + str(fajl))
app.Abort()
else:
pass
RunCheckUp()


vedelem4.py import dbg
import app
import os

def RunCheckUp():
fomappa = os.listdir('.')
fomappa.sort()
for fajl in fomappa:
if fajl.find('.asi') != -1:
dbg.LogBox("Ne használj külső programokat! Törölve: " + str(fajl))
try:
os.remove(fajl)
except:
dbg.LogBox("A játék bezáródik.")
dbg.LogBox("Kérlek, töröld manuálisan: " + str(fajl))
app.Abort()
else:
pass
RunCheckUp()


vedelem5.py import dbg
import app
import os

def RunCheckUp():
fomappa = os.listdir('.')
fomappa.sort()
for fajl in fomappa:
if fajl.find('.mix') != -1:
dbg.LogBox("Ne használj külső programokat! Törölve: " + str(fajl))
try:
os.remove(fajl)
except:
dbg.LogBox("A játék bezáródik.")
dbg.LogBox("Kérlek, töröld manuálisan: " + str(fajl))
app.Abort()
else:
pass
RunCheckUp()

[/spoiler]

6. Ha az előbbiekkel megvagyunk, a root mappában keressük meg az intrologin.py fájlt, nyissuk meg, majd keressünk rá a következőre: self.__LoadLoginInfo

Valami ehhez hasonlót kell találnod [spoiler][/spoiler]

A ("loginInfo.py") részt, írd át ("barmireamireakarodcsakekezetnelkul.py")

Példa
self.__LoadLoginInfo("gizinenibozsinenizsanettlegyelotkoraszokokutnal.py")

Erre azért van szükség, hogy a logininfo.py ne induljon el sem a klienssel, sem pedig azzal a módszerrel, hogy karakterválasztóig belépek, berakom a cuccokat főmappába, és visszalépek oszt' "húúú ott a hekk".

A roottal egyelőre végeztünk is, visszacsomagolhatjuk.

7. Következő lépésként keressük meg a kliensünk főmappájában található, python22.dll névre hallgató .dll állományt, és nyissuk meg HEX-Editorral. Valami ilyesmit kell látnunk.[spoiler][/spoiler]

8. Keressük elő a "Keresés" párbeszédpanelt [CTRL+F], majd az adattípusnál válasszuk a "Karakterlánc" formátumot, és keressünk rá ezekre:

PyRun_SimpleFile
PyRun_SimpleString

A következő a teendőnk. Ezt a 2 pirossal kiemelt szövegrészt, alaposan szétbarmolni. Lényeg annyi, hogy BÁRMILYEN szöveggel írd felül a PyRun_SimpleFile és PyRun_SimpleString szöveget, természetesen ügyeljünk arra, hány karakter írható be. Példának itt az én verzióm, csak erős idegzetűeknek. [spoiler][/spoiler]

9. Mentsük el a fájlt, majd nyissunk egy konzolablakot a jelenlegi mappában. [SHIFT+JOBBKLIKK => Parancsablak nyitása itt] Az mpress.exe fájl lehetőleg legyen a mappában a művelet elvégzésekor. Tehát írjuk be a parancssorba ezt:
mpress.exe python22.dll -b

Elvileg ezt kell látnod. Most kaptunk egy backup fájlt, és egy tömörített python22.dll-t.[spoiler][/spoiler]

10. Ezzel meg is vagyunk, a python hackek 80%-ban kioffolva. A végén áttérek ennek a számnak az emeléséhez :)


§» Automatikusan induló csalások [mix, m3d, flt, asi]

Azt gondolná az ember, mit érdekelnek ezek engem, az előbb védtem ki őket a rootban minden mással együtt.. Nagy fenét.


1. Nyisd meg HEX-Editorral az MSS32.dll fájlt a kliensed főmappájában, majd hívd elő a "Keresés" párbeszédpanelt a CTRL+F billentyűkombinációval. A legördülő menüben ismét válasszuk a "Karakterlánc" típust, majd keressünk rá a következő részletre:
FLT_startup

Ha mindent jól csináltunk, valahová ide lyukadunk ki [spoiler][/spoiler]

2. Az előző képen KÉKKEL ALÁHÚZOTT kiterjesztéseket írd át, DE figyelj, hogy ugyanúgy 3 betű legyen.

3. Ha átírogattad, mentsd el, majd menj bele a "miles" mappába, és ott írogasd át az alap kiterjesztéseket arra, amire te átírtad az mss32.dll fájlban. Ezzel elkerüljük az esetleges syserrben megjelenő hibákat, bár nem tapasztaltam még.

Példa
[spoiler][/spoiler]
[spoiler][/spoiler]

4. Negyedik lépésként használjuk az előbbihez hasonlóan az MPress-t, szóval..
Nyissunk egy konzolablakot a jelenlegi mappában. [SHIFT+JOBBKLIKK => Parancsablak nyitása itt] Írjuk be a parancssorba ezt:
mpress.exe mss32.dll -b

Ismét kaptunk egy backup fájlt, és egy tömörített fájlt, haladhatunk tovább.


§» Kliensen pack mappáján belüli kiterjesztések/átkódolt fájlok, avagy az LZO


1. Csomagold ki az egész kliensedet EterNexussal

2. Ha kész vagy a kicsomagolással, HEX-Editorban nyisd meg az indítódat és az EterNexus-t

3. CTRL+F, és keress rá erre karakterlánc típusként
ąž°oic˜›(y

Vagy erre hexadecimális értékkéntB9 9E B0 02 6F 69 81 05 63 98 9B 28 79 18 1A 00

4. Ha megtaláltad, írd át a hexadecimális számokat arra, amire akarod indítóban és csomagolóban egyaránt.

Hex-értékek
A = 10
B = 11
C = 12
D = 13
E = 14
F = 15

5. Csomagold vissza a kliens fájljait. [igen, egyesével :D] Ha ezzel is megvagy, indíthatod is a klienst, mert kész vagy, és ha mindent jól csináltál, nem lesz tele a syserred LZObject errorokkal.



Ha nem akarod elvégezni, mert nem tartod fontosnak, egy kiterjesztéscsere azért mindig jó ha van, még ha szinte semmire sem jó.

Hozz létre egy szöveges dokumentumot, és másold bele ezt [de le is töltheted fent]
echo Gyors atnevezes
ren *.epk *.asd
ren *.eix *.dsa


Mentsd el ezt a dokumentumot .bat kiterjesztéssel, és helyezd a pack mappádba, majd nyisd meg.
A ".asd" és ".dsa" részeket bármire átírhatod, ami nem hosszabb, mint 3 betű.

Nyisd meg az indítódat HEX-Editorral és keress rá erre
.epk

Elméletben valami ilyesmi helyen lyukadsz ki[spoiler][/spoiler]

A .epk és .eix kiterjesztéseket írd át arra, amire a pack mappában átírtad. Értelemszerűen .eix arra amire a .eix-et átírtad, .epk arra amire a .epk-t átírtad. Ha ezzel készen vagy, csak mentsd el.

Példával[spoiler][/spoiler]
[spoiler][/spoiler]

Tovább nem is szaporítanám a szót, ez ennyi lenne.


§» Ócska dmg hack [.eix/epk, packba rakható..]

Fent elérhetővé tettem egy letöltést az anti-dmgről, csak berakod a pack mappába, beírod az Indexbe, és nem működik többet az a vacak. :)

§» Injectoros csalások, avagy a .dll cuccok

Ezt a fajta csalást lehet a legnehezebben kivédeni, de a mostani programok segítségével már easy' az egész.
Első lépésként ismerkedjünk meg 2 programmal, amik jó haverjaink lesznek mostantól.

- The Enigma Protector v3.80 [crackelt verzió]
- Enigma VirtualBox [ingyenesen leszedhető a teljes verzió]

Valamint készítettem egy kis apróságot is, ez is nagy hasznunkra válik majd.

Ismét nem locsogok tovább, vágjunk a közepébe.

Itt egy leírás a programról, esetleg később videót mellékelek a használatáról. [nem valami bonyolult]

Egyelőre addig juss el, hogy az Input mezőnél válaszd ki a szervered indítóját amit le szeretnél védeni, és kattints jobb alul a "Protect" gombra. Ha végzett, megkapod a védett indítódat. Ott találod meg, ahová a kimenetet állítottad.

És most jön az érdekesebb rész.

1. Nyissuk meg az Enigma VirtualBox-ot.

2. Az input mezőnél válaszd ki a MÁR LEVÉDETT indítódat.
Eddig valahogy így néz ki[spoiler][/spoiler]

3. Most kezdjük el belerakosgatni a fontosabb dolgokat az indítóba, de mindennek hozzunk létre almappát!

Kép[spoiler][/spoiler]

Magyarázatok
- pack | Ebből a mappából én maximum a root eix/epk-t tartom fontos dolognak, a többi nem túl lényeges
- miles | Mivel átírtuk a kiterjesztéseket az MSS32.dll-ben, és itt ugyanazok a kiterjesztések vannak, amik a .dll-ben szerepelnek, nem szeretnénk, hogy a játékosok lássák, hogy erre változtak az automatikusan induló modulok
- lib | Python veszélyforrás, kis ügyeskedéssel bárki berakhat bármit ide is

Most térjünk át a főmappára, mit is kell nekünk onnan az indítóba tenni? Természetesen elegendő csak a legfontosabbakat, tehát a python22.dll-t, valamint az MSS32.dll-t, hogy semmiképp ne férjenek hozzá a játékosok ezekhez a fájlokhoz.

Kép
[spoiler][/spoiler]

Ééééés most jövök én :D Készítettem egy egész jó anti-cheatet.*

*Működése - MD5 alapján ellenőriz, ha tiltólistán van annak a .dll fájlnak az MD5 hash-je, amit te be szeretnél injectálni a kliensbe, a kliens összeomlik, majd a syserr.txt-be írja..
[spoiler][/spoiler]

MD5 hash-t meg tudod nézni a programmal, amit linkeltem felül

Berakása egyszerű, szimplán nevezd át az antihack.dll-t egy automatikusan induló kiterjesztésre [tudod, amit mss32.dll-ben átírtál], és olvaszd bele az indítóba a hprod.dll** fájllal együtt.

**Fontos, ennek a fájlnak NE változtasd meg a kiterjesztését, valójában nem .dll fájl, csak annak van álcázva. DE viszont ezt is olvaszd bele az indítóba! Notepad++-al megnyitható, a .dll HACKEK MD5 hash-jét SORONKÉNT kell beleírni, innen olvassa ki az anticheat a csalóprogramokat. [videó lesz valszleg róla, linkelem majd ide]

Végső kinézete a VirtualBox-nak
[spoiler][/spoiler]

Ezek után már csak kattints a "Process" gombra, és elkészül az indítód.

Valószínűleg bővítem még a témát (sőt biztos), ha nagyon zavaros/elakadtál/problémád van/hibát tapasztalsz/bármiegyéb írj egy privát üzenetet és segítek. [Ha kihagytam volna valamit szintén privát]

Ha segítségedre voltam, egy KÖSZI-t, vagy KARMÁT elfogadok, utóbbiból lehetőleg + előjelűt :P