[Java lista] Java obfuscator

Botond Szakacs botond.szakacs at gmail.com
2007. Már. 19., H, 11:56:40 CET


Mindig jókedvre derít ha látom hogy a rendőrség feladatát programozók
akarják ellátni. Szinte minden hétre jut egy hír hogy mit törtek fel,
azt hinnéd hogy lassan rájönnek az emberek hogy ilyen tipusú
védelemnek az értelme erősen közelít a zéróhoz. El sem tudom képzelni
milyen alkalmazás lehet az amit van értelme feltörni. Ugye szerver
oldali alkalmazás nem lehet, csakis önálló Java alkalmazásról
beszélhetünk. Abban meg maximum valami kulcsellenörző algoritmus lehet
amit védeni érdemes. Azt meg akármilyen zagyvált kódról is van szó,
semmi perc alatt ki lehet iktatni. És ha már egy speciális feladatra
szánt progiról van szó, amiből nincs ingyenes alternatíva, viszont
elég elterjedt, kb. azonnal letölthető lesz a feltört verzió akármit
is csinálsz a kóddal.
Az én véleményem hogy a tolvajok üldözését rá kell bízni a
rendőrségre, esetleg más kapcsolódó szolgáltatásokkal tenni
fölöslegessé a szoftverlopást.

On 3/14/07, istvan.ketler at lhsystems.com <istvan.ketler at lhsystems.com> wrote:
> > Mi a cel egy ilyen eszkozzel?
> > 1. Forrasunkat ne lehessen minimalis munkaval visszafejteni.
> > Erre teljesen alkalmatlan.
>
> Ezt azért nem állítanám - a minimális a kulcsszó. Viszonylag kevés munkával igen, de nem minimális munkával lehet visszafejteni.
>
> > 2. A valtozo nevek elvesszenek?
> > Erre jo.
>
> Azért az sokat ront ám az érthetőségen...
>
> > 3. A visszafejtett kodot utana ne lehessen ujra leforditani?
> > Kis kutato munkaval megoldhato.
>
> Ez nem feltétlenül szempont.
>
> > 4. Kisebb legyen a forass, netan memoria sporolas? :) Erre a
> > legalkalmasabb.
>
> Jelenleg ez sem szempont.
>
> > 5. Plussz munkat teremtsen?
> > Erre is alkalmas.
>
> Nem tudom, miért teremtene plusz munkát...
>
> > A Java nagy elonye, hogy baromi kotott nyelvi szabalyok
> > vannak. Ez amikor az elso sorokat kodoltam problemas is volt.
> > Viszont atlathato, konyen megertheto, strukturalt forrast
> > biztosit, aminek peldaul a csapatban dolgozasnal nagyon nagy
> > hasznat vehetjuk. Masik elonye, vagy tulajdonsaga, hogy valos
> > idoben ertelmezo JVM vegzi a kod futtatast. Maga a bytecode
> > jol ertelmezheto. Ez a ket jellemzo (strukturaltsag,
> > interpretaltsag) az, amiert nem sok ertelmet latom egy
> > bytecode osszezavarasnak.
>
> Ezt nem teljesen értem. Kifejezetten elrontani akarom a bytecode jól értelmezhetőségét. Azért ne akarjam elrontani, mert most jól értelmezhető? De hiszen pont azért akarom elrontani...
>
> > Ha latsz egy class-t es megakarod tudni hogyan is mukodik,
> > akkor nagyon jo, hogy egy jad-dal hipp-hopp belenezhetsz (Ha
> > epp az API-ja nincs keznel es a forrasbol is tanulni akarsz).
>
> Izé, ez egy kerek, működő alkalmazás. Miért akarná ezt bárki is class szinten olvasgatni? A user futtassa, fejleszteni meg majd fejlesztjük tovább, ha igény van rá - de nekünk ugye megmarad az eredeti kód. Ez a kód nem arra készül, hogy bárki emberfia továbbfejlesztgesse. Akkor meg miért kellene tudnia, hogyan működik valamelyik osztálya?
>
> > Konnyebb, gyorsbb a tanulasi folyamat, hamarabb fogsz jol
> > programozni es hamarabb megertesz egy adott problemat,
> > stilust, modszert lathatsz. Ezzel te is tokletesebb munkara
> > leszel kepes es mivel a te munkadra is kesobb uj rendszerek
> > epulhetnek ez igy korrekt.
>
> Bocs, de nem API-t készítek, hanem alkalmazást. Ha később valamely részét használni kívánnánk, arra ott van a rendelkezésünkre álló forrás ugye. Másoknak meg nem kell ebből felhasználnia egy bitet sem, mert erre nem épül másnak semmilyen munkája.
>
> > Valoszinu a Java szemlelet nem
> > igazan az, amit a fonokod kepviselhet (elnezest, de van egy
> > ilyen erzesem).
>
> Hát, ebben szerintem tévedsz, de ez asszem nem is tartozik ide (ez ugye nem indoklása annak, hogy miért NEM szereted az obfuscator-t).
>
> > Mivel a tobb tizezer sor nehany konyvtarbol, package-bol, a
> > package-ek tobb szaz fajlbol allnak. A fajlokban logikusan
> > felepitett osztalyok es az osztalyokban jol megirt metodusok
> > vannak. Latod, hogy egy metodus mit is csinal. Mindent latsz,
> > ha a program jol meg van irva, ami alap, hiszen magad,
> > munkatarsaid, fonokod erdeke az, hogy a fejlesztesi, tovabb
> > fejlesztesi ido minimalis legyen.
>
> Namost ez ugye nem fog változni attól, hogy a kiadott bájtkódot összezavarom.
>
> > Egy kodzavaro a kezdo programozoktol vedhet meg csak, pont
> > azoktol, akiknek meg nem art a tanulas. Igazabol csak ti
> > fogtok szivni vele.
>
> Ezt sem értem. Egyrészt nem értem, miért szívnék vele. Beleírom az ant task végére, és a lefordított bájtkód - ami megy ki a release-be - az összezavart lesz. Ha meg másik ant task-kal fordítom, akkor nincs összezavarva, azt meg boldogan debuggolgatom csendben. Másrészt nem értem, hogy bármiféle kezdő programozónak miért kellene visszafejtett bájtkódból tanulnia bármit is. A kezdő programozónak ott van a több terabájtnyi forrás az interneten, nem is beszélve a több tíz vagy több száz polcfolyóméter Java könyvről, amelyek között azért van szép számmal olyan, ami hasznos.
>
> Szóval összefoglalva, nem lehetetlenné akarom tenni a kód visszafejtését (ezt ugye nem is nagyon lehet, amint arról már sokat beszéltünk itt is), csak eléggé megnehezíteni. Szerintem pont erre való az obfuscator, illetve erre is, de nekem most ez kell. A méret nem számít.
>
> Még mindig nem értem, miért vagy ellene valaminek, ami opcionálisan használható, a fejlesztőt meg nem zavarja...
>
> Üdvözlettel,
>
> Iván
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist
>


-- 
Üdv, Botond.


További információk a(z) Javalist levelezőlistáról