daca tu spuiZombieAddict wrote:Se poate dar trebuie sa ai cunostinteCarnacior wrote:Nu se pot decompila bytecodeuri amxx in surse recompilabile
In cel mai bun caz se pot extrage unele informatii, nume de variabile, constante, functii, dar nimic apropiat de sursa originala
Nu e imposibil, se poate desface in assembly(ASM) care sunt instructiuni elementare pentru CPUtictac wrote:NU AI CUM.
E CA SI CUM AI VREA SA DECOMPILEZI UN EXE.
Ceea ce e imposibil.
Acel ASM se poate 'recompila' (e doar tradus in cod binar sub forma de exe) si, cu destula rabdare si skillz poti modifica un .exe cum vrei (aici in caz ca va intrebati cum se fac crackurile pentru jocuri)
aici e vorba de munca imensa si de debugging nebun, la ASM nu ai nici un fel de erori de compilare sau whatever, la orice greseala programul va rula si va avea comportamente neasteptate
La amxx e diferit pentru ca pawn (limbajul de script pentru amxmodx) seamana mai mult cu Java decat cu C++, in sensul ca codul nu se compileaza in instructiuni pentru CPU, ci in bytecode, care este interpretat de o masina virtuala, in cazul asta modulul amxmodx (plus motivul pentru care nu se pot rula programe java fara sa instalezi java inainte). Java se poate decompila stupid de simplu in sursa, dar asta e pentru ca acel bytecode contine foarte multe informatii din sursa originala(metadata, nume de functii, variabile, s.a.m.d), ca acea masina virtuala sa poata optimiza codul inainte sa-l ruleze(majoritatea compilatoarelor c++ de ex optimizeaza codul la compilare, deci, nici sub forma de instructiuni ASM nu va fi acelasi lucru ca in sursa, in unele cazuri). VMul pawn in schimb nu are nici o treaba cu optimizarea, e facut sa fie super rapid ca sa poata rula in timp real, cum ar fi in jocuri. Bytecodul pentru el nu are la fel de multe informatii, si deci de asta se pot face coduri care parca seamana cu o sursa si totusi nu pot fi compilate.
Acel 'bytecode' nu poate fi interpretat decat de masina virtuala pawn. Noi suntem restrictionati oarecum pentru ca facem aceste pluginuri pentru CS. Totusi pawn este disponibil pentru orice platforma si poate fi folosit si ca si java, de ex, sa faceti un program 'hello world' care sa ruleze pe PC fara servere sau alte minuni. Va trebui descarcat VMul pawn cum ati descarcat si VMul java ca sa puteti juca minecraft. Dupa, acel VM poate fi compilat impreuna cu scriptul vostru intr-un fisier .exe, si daca faceti asta, va fi imposibil de "decompilat"(se poate face asta si cu java, dar, pierdeti cross-compatibility). Teoretic vorbind, pe acelasi principiu s-ar putea compila orice plugin impreuna cu intregul amxmodx sub forma de modul metamod, care va fi la fel de greu de decompilat ca un .exe. Ca si aplicatie practica nu merita evident, plus ca e probabil destul de greu de facut, nu pretind sa stiu sa fac asa ceva dar sunt sigur ca sunt oameni care stiu. Totusi informatiile date sunt corecte.
Cu ocazia asta sper ca v-am lamurit cu decompilarea amxx