Ez a leírás nem keverendõ össze Iceaac leírásával, hiszen az nem véd a visszafordítástól, ez a leírás pedig nem véd a .amx jogtalan felhasználásától. (Ajánlatos mindként módszert alkalmazni a biztos védelemért)
A leírás létrejöttét tulajdonképpen Matyinak is köszönhetjük, hiszen a módszert primitív formában õ újságolta el nekem. (ez azt jelenti, hogy függvénykönyvtára csak az osztályokat és a jármûveket tartalmazta)
Az eredeti leírást közel másfél éve angol nyelven írtam, ez a téma elérhetõ ITT.
Sok \"anti-deamx\" kód van, amelyek szerintem teljesen feleslegesek, hiszen az alábbi módszerrel is megakadályozhatjuk a visszafordítást.
A többi módszerrel ellentétben, itt gyakorlatilag nem akadályozzuk meg a visszafordítást, csak megszabjuk mit fordíthat vissza és mit nem.
Az elmélet a következõ: A DeAMX és társaik, a .pwn fájlt fordítják vissza ha más függvénykönyvtárakat is tartalmaz a mód, azoknak csak a beágyazó sorát adják vissza. Ebbõl adódóan, ha az egész szkript egy ilyen függvénykönyvtár, akkor a visszafordítás eredménye egyetlen sor lesz. (vagy akár több, ha akarjuk)
A gyakorlatban ez úgy néz ki, hogy megírjuk a szkriptünket úgy, ahogy eddig: egy .pwn fájlba. (át is fordíthatjuk, de itt még felesleges)
Miután ez megtörtént a forrás mellet létrehozunk egy másik .pwn fájlt az alábbi tartalommal:
#include \"mygamemode.pwn\"
Majd ezt az újonnan létrehozott forrásfájlt fordítjuk át, ami figyelmeztetések és hibák esetén ugyanúgy jelezni fog, mintha a másikban dolgoznánk. (sorszámmal, fájlnévvel együtt)
Tudnivalók/Figyelmeztetések:
Azt a szkriptet ami a forrás nagy részét tartalmazza ne fordítsuk át, ha megtesszük a .amx-et ne terjesszük, mert az továbbra is átfordítható!
Hosszú átfordítási idõ esetén, míg az egyik .pwn fordítás alatt van, a másikat szerkeszthetjük, de ne mentsük el míg nem végez a fordító a másikkal.
Ne felejtsük el a példában szereplõ \"mygamemode.pwn\"- t átírni saját forrásfájlunk nevére. (az idézõjelek kellenek!)
Az egysoros forrást kiegészíthetjük, de tudnunk kell ,hogy az abba lévõ tartalom nem áll semmiféle védelem alatt.
Nájsz tut! De úgysem fogom használni mivel nekem van nagyob ötletem :P
Amúgy én legtöbbször ezt használom:
new mittomen[16];
GetServerVarAsString(\"bind\", mittomen, sizeof (mittomen));
if (strcmp(mittomen, \"192.168.0.127\"))
print(\"köh, köh...\");
Átfordítást meg lehet akadájozni
Nájsz tut! De úgysem fogom használni mivel nekem van nagyob ötletem :P
Amúgy én legtöbbször ezt használom:
new mittomen[16];
GetServerVarAsString(\"bind\", mittomen, sizeof (mittomen));
if (strcmp(mittomen, \"192.168.0.127\"))
print(\"köh, köh...\");
Átfordítást meg lehet akadájozni
A te kódod nem védi meg a szervert a visszafordítástól.
Senki nem mondta, hogy nem lehet
Nájsz tut! De úgysem fogom használni mivel nekem van nagyob ötletem :P
Amúgy én legtöbbször ezt használom:
new mittomen[16];
GetServerVarAsString(\"bind\", mittomen, sizeof (mittomen));
if (strcmp(mittomen, \"192.168.0.127\"))
print(\"köh, köh...\");
Átfordítást meg lehet akadájozni
Ezzel nem akadályozod meg, hogy átfordítsák. Ezzel csak nem tudják futtatni az AMXet, ha nem ugyan az a hálózati IP cím (amit ki lehet játszani).
...[/quote]
Jó ötlet, bár szerintem kissé kényelmetlen, legalábbis én utálom áthelyezgetni és átnevezgetni a fájlokat, nekem ezért valamivel egyszerûbbnek tûnik de-amx kódot használni, bár aki nagyon akarja és ért hozzá, írhat olyan programot (vagy akár egy külön szervert létrehozhat és megírhatja PAWNban egy fájlkezelõ plugin segítségével), ami automatikusan elvégzi a fenti mûveleteket. :D