Kereskedelmi Java szoftver

Fórumok

Üdv!

Főként tanulás szempontjából elhatároztam, hogy készítek egy katalógus programot Java-ban. A tanuláson kívül a platform függetlensége miatt esett erre a nyelvre a választásom. A jövőben majd tervezem megvalósítani egy ötletemet ezen a nyelven és kereskedelmi forgalomba hozni a kész programot. De... a java osztályok elég könnyen visszafejthető bytekódok, így felmerült bennem a kérdés, mégpedig: kereskedelmi szoftvert nem igazán érdemes Java nyelven írni, a könnyű visszafejthetősége miatt ha jól sejtem. Itt ugye a legnagyobb gondot a "regisztrációs kulcsot" ellenőrző algoritmus hozzáférhetősége jelenti. Vagy ez olyan dolog, hogy ha akarják akkor a C-ben íródott kódot is visszafejtik és kihámozzák az így kapott ASM kódból az algoritmust és tök felesleges ezen agyalni? Esetleg még érdekelne, hogy ezt a problémát hogyan szokták megoldani a nagyok.

Köszi, karika200

Hozzászólások

Regebb en is terveztem katalogus progit irni, aztan utananeztem es rajottem, hogy van jobbnal jobb, foleg web-es alkalmazasok (ilyensmit manapsag nem erdemes desktop alkalmazaskent irni, legfeljebb valami desktopos klienst a webers szolgaltatashoz!)...

----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"

Ha nagyon akarod: http://www.zelix.com/klassmaster :)

Ember legyen a talpán, aki ezt visszafejti.

Egyébként jól látod, tényleg felesleges ezen gondolkozni: úgyis mindenre készül törés. Ha hosszútávon is pénzt akarsz csinálni a projectből, akkor a támogatással teheted meg azt.

Persze, gyakorlatilag bármelyik nyelv lefordított kódja visszafejthető. Ha megnézel egy torrent oldalt, akkor láthatod, hogy nemcsak Javás programok vannak feltörve. Eddig kábé minden megjelent programhoz van tört változat, nem igazán a nyelven múlik.

Ha tényleg kereskedelmi programot írsz, akkor menj el egy ügyvédhez és írass egy EULA-t. Sőt, kereskedelmi programot ugyanúgy írhatsz Pythonban is, attól még -- megfelelő szerződéssel -- illegális lesz a kóddal babrálni.

"platform függetlensége miatt esett erre a nyelvre a választásom"
Nem olyan független az. Nézz körbe bármely nagy gyártó oldalán, van külön java-s gui windowshoz, linuxhoz stb. A JavaME-t meg a Dalvikot meg már ne is említsük.

"Esetleg még érdekelne, hogy ezt a problémát hogyan szokták megoldani a nagyok"
Amikor nekem kellett ilyen, akkor egész egyszerűen nem ellenőrzőalgoritmussal dolgoztam, hanem
1. online check, egy random generált kulcsokat tartalmazó táblára. Ekkor a megvásárolt program hordozható, viszont net kell.
2. a programban alapvetően információhiány van, és a kulcs adja meg a hiányzó adatot (adatbázisjelszót, vagy file crypto keyt stb.). Mivel minden jelszó a géphez van generálva, ezért hiába rakják át másik gépre, nem hordozható.
(Kicsit érthetőbben: a jelszó ugyanaz, de nincs benne a programban (ezért nem is visszafejthető), helyette a gép valamilyen azonosítóját olvassa ki, amit elkódolva a megfelelő kulccsal a helyes jelszót adja)

minden feltorheto, visszafejtheto.
amugy crackelni nem ugy szokas, hogy disasm es olvasgatjak az egesz forraskodot, hanem debuggerben futtatjak, es amikor sir hogy nem jo a kod akkor vissza tracelik az ellenorzesig es azt iktatjak ki, vagy onnan mar megvan hol van tenylegesen az ellenorzo algoritmus. ez nemileg nehezitheto ugy, hogy az ellenorzest es a hibauzenet megjeleniteset jo messzire rakod egymastol, sot esetleg nincs direkt uzenet az usernek hogy nem jo a kod, hanem latszolag elfogadja, de aztan a program megis hibasan mukodik.

amugy nem konnyebb a java visszafejthetosege mint a c, amiben konnyebb hogy a javaban kotelezoen vannak valtozo es cklass nevek, mig c-ben debug info nelkul csak szamok vannak. de erre vannak celprogramok amik atneveznek a java kododban mindnet random stringekre igy semmivel se olvashatobb mint egy c disasm.

btw draga fizetos javas programoknal, pl. dts-hd encoder ugy oldjak meg, hogy van egy javabol meghivott nativ DLL ami a hardverkulccsal kommunikal, es valami fontos muveletet (pl. a kodolasi parameterek feldolgozasat) is a hw kulccsal vegeztetik. ezt eleg nehez kikerulni... (de nem lehetetlen)

A'rpi

Köszönöm a hozzászólásokat. Ezeket az obfuscation cuccokat megnézegetem jobban, ők lesznek az én barátaim, már érzem előre. :) Turdus-nak is köszi, ezek is nagyon jó ötletek! Amúgy igen, ez volt az én sejtésem is, hogy egyedül EULA-ra lehet csak támaszkodni mint biztos pont, ahhoz viszont valóban jó egy szakember, aki ügyesen megfogalmazza.