Licentierea aplicatiilor Java

Posted
Comments None

Mai de mult am folosit oXygen XML pentru editarea fisierelor XML – varianta plugin pentru Eclipse”. De curand am avut din nou nevoie de un editor XML, am instalat versiunea 9.2 a oXygen XML, iar pe data de 23 Mai am cerut o licenta “trial”.
Astazi am avut surpriza sa observ ca perioada de incercare a aplicatiei s-a terminat.
Am incercat sa vad cat de simplu e sa prelungesti perioada de incercare.

Cutia cu scule:

Folosind jad am decompilat clasele din pachetele ro si com arhiva oxygenEclipse.jar.
Cand accesam preferintele pentru Oxygen din Eclipse un mesaj de notificare era afisat. Ca urmare m-am dus in fisierul descriptor al plugin-ului (plugin.xml) si am gasit clasa responsabila cu informatiile de inregistrare – com.oxygenxml.editor.preferences.MainPreferencePage. In aceasta clasa gasim:

int j = (int)Math.ceil((g.J().getTime() - System.currentTimeMillis()) / 0x5265c00L);

cod care, de la o posta se vede, determina numarul de zile care au mai ramas pana la expirarea licentei.
Pentru a avea un j mai mare ar trebui ca g.J().getTime() sa intoarca un timp cat mai departat de ziua curenta.
Astfel, in clasa ro.sync.D.G avem:

private void A(Date date, J j)
{
    A(date);
    A(j);
    long l = 0x5265c00L;
    O = new Date(E.getTime() + (long)j.A() * l);
}

Iar pentru ca O sa fie un Date cat mai in viitor ar trebui ca l sa fie cat mai mare.
Semnificatia lui l?

0x5265c00L = 86400000 milis = 86400 s = 1440 min = 24 ore

Deci sunt l milisecunde intr-o zi. Acest numar il consider un punct slab in securitatea oricarui soft. O simpla cautare prin cod dupa acest numar ne poate duce direct la locul unde putem modifica astfel incat sa prelungim perioada de licentiere.
Daca intr-o zi sunt de doua ori mai multe milisecunde decat normal atunci perioada de licentiere se dubleaza.
Pentru a face ca o zi sa aiba 172800 secunde folosim Class Contruction Kit iar apoi actualizam arhiva oxygenEclipse.jar cu clasa modificata.

Am vrut sa arat cat de simplu e sa prelungesti perioada de incercare a unei aplicatii si unde sunt punctele slabe.
Clasele desi sunt obfuscate, am demonstrat ca acest lucru nu este suficient. Raman totusi unele informatii (numele claselor entry point, diferite string-uri, diferite constante, etc) care pot fi folosite pentru a “sparge” securitatea aplicatiei.
Cele prezentate in acest post au scop pur demonstrativ, in nici un caz nu indeamna la folosirea ilegala a aplicatiilor software. Recomand calduros cumpararea acestei aplicatii.

Author

Comments

There are currently no comments on this article.

Comment

Enter your comment below. Fields marked * are required. You must preview your comment before submitting it.





← Older Newer →