Bevezetés
Az DeAMX egy nyílt forráskódú program amit trc_ készített.
A program C++, C#, Lua nyelven íródott, így megnehezíti tolvajok esélyeit az átfordításhoz.
Nem könnyû, de nem is nehéz javítani a programot mivel a legtöbb fájl nyílt forráskódú ami
persze Lua nyelven íródott.
A jelenlegi verzió: Easy DeAMX v0.3
Gondolom sokan használnak Anti-DeAMX szkripteket amik megvédik a módjukat,
de lehetséges hogy nem kiválóan.  Aggodalomra semmi ok.
A jelenlegi verzió csak 0.3a alatt mûködik, míg a 0.3c ill. 0.3d verzión is ketyeg.
Felépítése
| DeAMX |  |  | 
 | deamx.lua | 24 KB | 
 | deamx_events.lua | 2 KB | 
 | deamx_opcodes.lua | 31 KB | 
 | deamx_syscalls.lua | 16 KB | 
 | deamx_util.lua | 13 KB | 
 | lua5.1.dll | 164 KB | 
 | lua5.1.exe | 44 KB | 
Easy DeAXM.exe 98 KB
Tippek & trükkök
A DeAMX program csak 3 darab függvénykönyvtártat ismer.
[pawn]
#include <a_samp>
#include <core>
#include <float>
[/pawn]
Miért is van ez?
 
-- deamx.lua . Sor: 467
outFile = io.open(file:gsub(\'%.[aA][mM][xX]$\', \'.pwn\'), \'w+\')
for i,include in ipairs({\'a_samp\', \'core\', \'float\'}) do
    outFile:write((\'#include <%s>\\n\'):format(include))
end
outFile:write(\'\\n\')
 
Nyugodtan megváltoztathatod a_sup-ra mert az árfordítás után az a_samp ->
a_sup lesz a függvénykönyvtár. Egyedi könyvtárakat, mint fixchars.h
függvénykönyvtárt nem ismeri fel.
0.3c ill. 0.3d átfordítása
A legtöbb eljárás hiányosan fordítja. Hogy miért is?
[pawn]
public OnRconCommand(cmd)
{
return 1;
}
public OnPlayerClickPlayer()
{
return 1;
}
[/pawn]
deamx_events.lua szkriptben láthatod az összes eljárást, amit az átfordítás után fog
megírni.
 
g_SAMPEventParamNames = {
OnGameModeInit = {},
OnGameModeExit = {},
OnPlayerRequestClass = {\'playerid\', \'classid\'},
OnPlayerRequestSpawn = {\'playerid\'}
}
 
Láthatólag nem ügyelt a lebegõpontosságra, az integerekre, a boolean értékekre.
Maximális védelem
[pawn]
new iString;
#emit load.pri iString
#emit stor.pri iString
[/pawn]
A programban definiálva vannak az OP kódok, de képtelen visszafordítani mivel nem adtunk
meg neki egy integert avagy egy számot, hanem töröljük a változót.
[pawn]
AntiDeAMX()
{
    new a[][] =
    {
        \"Unarmed (Fist)\",
        \"Brass K\"
    };
    #pragma unused a
}
[/pawn]
A program készítõje nem gondolt arra hogy több értéket is adhatunk a változónak, illetve
nem kell megadnunk így a program kifagy.
Ezeket lehet módosítani többféleképpen is.