Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 52 reacties

Ontwikkelaar Kenneth Ballenegger heeft op zijn blog een relatief eenvoudige methode uit de doeken gedaan om applicaties uit de Mac App Store te kraken. De ontwikkelaar geeft ook tips die enkele kraakmethoden moeten tegengaan.

Alle stappen die Ballenegger zet om een applicatie te kraken, worden in één terminalvenster uitgevoerd. Ook gebruikt hij enkele zelfgeschreven tools om de software te analyseren en een zwak punt in de beveiliging te vinden. De ontwikkelaar benadrukt in zijn posting dat hij tegen elke vorm van piraterij is en dat de instructies vooral dienen om problemen in de softwarebeveiliging van veel OS X-applicaties uit de Mac App Store aan de kaak te stellen.

Volgens de ontwikkelaar, die zichzelf betitelt als een weinig handige hacker, zijn veel applicaties die in de Mac App Store zijn te vinden, veel te eenvoudig te kraken. Begin januari dook al een methode op om betaalde applicaties uit de Mac App Store te kraken door alleen een receipt-bestand van een andere applicatie te kopiëren.

Vooral applicaties die in Objective C zijn geschreven, zijn in de ogen van Ballenegger te kwetsbaar voor standaardaanvallen van hackers. Ballenegger raadt programmeurs dan ook aan om in ieder geval het validatiemechanisme voor het controleren van licenties in C te schrijven. Ook zouden ontwikkelaars checksums moeten inbouwen en debug symbols uit de code moeten verwijderen.

Moderatie-faq Wijzig weergave

Reacties (52)

Ballenegger raadt programmeurs dan ook aan om in ieder geval het validatiemechanisme voor het controleren van licenties in C te schrijven.

Waarom zou de taal waarin je schrijft iets uit maken voor de 'kraakgevoeligheid'? :?
ja en het beste van al is dat obj. C een superset is van C dus dat laatste slaat echt op niets ... http://en.wikipedia.org/wiki/Objective-C. Het zijn gewoon de developpers die te lui zijn om te beveiligen (ik wou angry birds eens uitproberen en moest, na het te downloaden, gewoon copy-pasten om het te "kraken"... )

I stand corrected X)

[Reactie gewijzigd door 383438 op 18 januari 2011 16:02]

ja en het beste van al is dat obj. C een supperset is van C dus dat laatste slaat echt op niets ...
Nee, wat jij zegt slaat op niets. Dat een taal een superset (met 1 p) van een andere taal is zegt geen zak over hoe makkelijk of moeilijk het is om achter de interne werking te komen. OO programmeren in Objective C gaat namelijk door het rondsturen van messages. De juiste handler bij een bepaalde message wordt @ runtime afgehandeld, ergo, in het programma staat gewoon een beschrijving van hoe je classes eruit zien. Bij pure procedurele C code (en dan is niet relevant of je een C compiler of Objective C compiler gebruikt, het gaat om het paradigma dat je gebruikt) is dat absoluut niet het geval, omdat references naar functies @ compile-time worden gepatched en er dus totaal geen informatie meer is over de naamgeving van verschillende componenten.

Natuurlijk, je kunt een obfuscator gebruiken om je programmacode onleesbaar te maken, maar het message passing mechanisme blijft duidelijk zichtbaar, evenals de calls naar de standaard API functies (want die zijn niet te obfuscaten).

[Reactie gewijzigd door .oisyn op 18 januari 2011 16:01]

Omdat programma's in talen zoals Objective-C inherent meer informatie bevat van de programma-structuur.
Overigens hebben .net en java hetzelfde 'probleem'.

Bij pure C code is die structuur veel eenvoudiger te verdoezelen (Obfuscation).
Obfuscation is bij Objective-C ook mogelijk, maar men kan minder ver gaan dan met puur C.

Het schrijven van de beveiligings code in C helpt ook niet echt, want dan 'kraakt' men het op de grens waar de Objective-C code de beveiliging aanroept. Beveiliging werkt pas als het geïntegreerd is in de hele applicatie.

Moeilijker is dat een ontwikkelaar expliciet moet zorgen dat zijn code goed te verwerken is door de vele (commerciële) Obfuscators. Moeite kost tijd, en tijd kost geld.

Verstandiger is om de beveiliging zo te schrijven dat men niet direct merkt dat een beveiliging iets heeft gedetecteerd, maar de gebruiker te benadelen door bepaalde 'fouten' te maken. Zo is er op de PC een FPS waarbij de kans dat je de tegenstander raakt geleidelijk afneemt. (kan me herinneren dat ze dat toen 'FADE' noemde, zie wiki voor nog paar voorbeelden)
Met het generen van foute resultaten loop je wel het risico dat je app de naam krijgt erg buggie te zijn ...
Omdat het decompilen en debuggen dan moeilijker wordt( zover ik weet)
Objecive-C is misschien makkelijker te reverse-engineeren dan C/C++
Objecive-C maakt gebruikt van late-binding (class en method namen staan als plaintekst in de code) , en dat maakt het lezen en patchen van code in theorie wat eenvoudiger.

[Reactie gewijzigd door Carbon op 18 januari 2011 16:06]

Objecive-C is misschien makkelijker te reverse-engineeren dan C/C++
Zijn uitleg:
Objective-C makes it really easy to mess with an app’s internals. Try to program the licensing mechanism for your app in pure C, that will already make it harder for me to find my way around your binary.
Ik heb even zijn uitleg bekeken, en ik vind 'eenvoudig te kraken' wel overdreven. Je moet toch al iets kennen van programmeren met C om er zelf achter te komen, en zelfs met de instructies die gegeven worden heb ik eigenlijk niet veel zin om het zelf uit te proberen.
Dat is inderdaad een ontzettend belangrijk iets... zolang de kosten voor apps niet al te hoog zijn, een paar euro is de 'behoefte' veel moeite te doorlopen deze te kraken domweg iets dat de meeste gebruikers afstoot...

de béste DRM is gewoon gebruiksvriendelijkheid van je distributiemedium, en dat heeft apple best goed begrepen:
houd de aanschafkosten erg laag en de methode aan te schaffen erg simpel en overzichtelijk en de 'behoefte' apps te kraken is eerder laag en weegt meestal niet op tegen de moeite die je zou moeten doen.

Ik vermoed ook dat de relatieve 'eenvoudigheid' van de meeste 'anti-kraakmethodes' vooral en weergave ervan zijn dat voor veel producenten deze niet verwachten dat nog meer werk erin steken écht veel meeropbrengt 'oplevert' (cq de klanten van 'gekraakte apps' sowieso die apps niet zullen gebruiken, als deze beter beschermd zouden zijn)
totdat Apple weinig marge maakt omdat de duurste apps die ze verkopen nog geen 3 euro zijn, omdat elk bedrijf inmiddels weet dat er 15 exploits gepubliceerd zijn en nog wel meer ongepubliceerd.
bijv. Adobe zal op deze manier noooooit zijn professionele producten via deze App store aanbieden
dat is vooral een probleem van Adobe...en typisch voor de vroegere megalomane 'software-huizen' met hun vlaggeschip-producten die enkele duizenden euro's kostten...


Juist Apple heeftverdomd goed dor datde winstmarge van 1000x een klein Appje te verkopen voor €1,99 evenveel opbrengt als die ene afzet van een software-pakket van 1.999,- ...
maar je hierbij kunt afzien van gecompliceerde beveiligingen die nog altijd binnen enkele dagen gekraakt zijn, en eveneens dure boekwerken en allerlei 'rand-promotie'...

juist omdat de 1000 klanten makkelijk dat geld uitgeven, mits natuurlijk die aanschaf ook in een enkele klik gaat
Misschien dat niet iedereen de kraak zelf kan zetten, maar er hoeft maar één iemand het proces te automatiseren en je kan fluiten naar een groot deel van je inkomsten. Veel apps worden door indie developers of kleine bedrijfjes gemaakt, dit is een slechte zaak dus.
Tsja, je hebt gelijk hoor, maar dan vraag ik me weer af wat het verschil is met willekeurige andere programma's op willekeurige andere systemen geschreven in willekeurige andere talen. De ene taal is wat makkelijker te reversen dan de andere, maar er is altijd wel iemand slim genoeg om je applicatie te kraken. 1 blik op torrent sites is al genoeg om in te zien dat elk stuk software dat interessant genoeg is om te piraten wel in een gekraakte versie te vinden is.
Het maakt niet uit hoe goed je het beveiligd, uiteindelijk wordt het toch wel gekraakt. Dus hou de kosten laag, steek niet te veel tijd in beveiliging en licenties op securom achtige instanties. Zoals al eerder vermeld, de beste DRM is een lage prijs!
Inderdaad, en die DRM is júist irritant voor betalende mensen (altijd online zijn enz.).
Dat is de invulling van DRM die jij irritant vind. Niet het DRM opzich want je kan makkelijk iemand toestaan offline te werken en alsnog een vorm van DRM is je applicatie hebben
Apple kan er niks aan doen dat de software engineers de software van third-party applicaties niet goed beveiligen. Wellicht zouden ze de norm aan kunnen passen omtrent beveiliging maar het probleem hier ligt niet bij Apple. De andere software engineers van de applicaties hadden zich aan richtlijnen moeten houden van beveiligingsmethodes

[Reactie gewijzigd door Tiwazz op 18 januari 2011 15:53]

Je moet wel toegeven dat apple bitter weinig onderneemt tegen software piracy op pc's. Niets van DRM op OS X, iLife, iWork (oké ze doen het misschien moedwillig, maar het is nooit moeilijk geweest op software van apple te kraken ...). Ook de pro-apps zijn niet bepaald moeilijk te kraken ... Dus ik weet niet of Apple eigenlijk zo vertrouwt is met hoe beveilig je een applicatie in OS X.
Dat is toch goed juist? Een van de voordelen van Mac OS X vind ik juist dat je niet alles continu hoeft te activeren en te bewijzen dat je het wel mag hebben zoals bij Microsoft.

Apple heeft meer vertrouwen in de gebruiker en dat waarderen ze terug ook ik heb een mooie verzameling officiele OSX versies op de plank bijvoorbeeld, en dat had ik niet in de tijd dat ik nog Windows gebruikte.
Apple heeft meer vertrouwen in de gebruiker
Met gebruiker mag ik hopen dat je specifiek op OSX gebruikers doelt, bij iOS heb ik niet het idee dat Apple de gebruikers vertrouwd, dan zou je ze bijv wel iets meer verantwoordelijkheid geven ipv de huidige toestanden...

Verder tja is het een voor/nadeel, dat moet iedereen maar oordelen, en meteen met MS vergelijken (andere uiterste), er bestaat ook zoiets als een gulden middenweg, oftewel DRM waar je als gebruiker niet echt last van hoeft te hebben, TENZIJ je een illegaal kopie bezit ;)
Ik denk dat het meer een kwestie is van Apple die er niet in gelooft dat een 'free-for-all' strategie geen negatieve effecten gaat hebben op het platform, en daarom een aantal (wat mij betreft zeer redelijke) voorwaarden stelt aan wat er wel en niet op iOS is toegestaan. Je kunt wel alles toelaten en daarmee de 1% van de gebruikers tevreden stellen die per se overal controle over hebben, maar als je daarmee de 99% van de gebruikers blootstelt aan potentiele risico's (malware, crapware, slecht presterende technologie zoals Flash, privacy lekken), dan is een gesloten aanpak prima verdedigbaar.

Ik vraag me ook altijd af wat die vreselijke beperkingen nou eigenlijk inhouden, als ik als hardware/software nerd ook maar 1 reden zou hebben om mijn iPhone of iPad te jailbreaken dan had ik het allang gedaan, maar ik zie er gewoon geen enkele reden toe. Het enige wat ik wil wat standaard niet kan is iOS programma's ontwikkelen en testen op mijn eigen telefoon, nouja dat kost dan maar $99 per jaar, big deal. Sowieso niet echt een groot minpunt voor de 99.9% mensen die een iPhone kopen als gebruiksvoorwerp in plaats van als ontwikelplatform.
Misschien ben je nu wat ouder en heb je wat meer geld uit te geven?
Ik denk dat ze bij Apple gewoon een stukje pragmatischer zijn dan bij bijvoorbeeld Microsoft en Adobe, die programmeren de raarste copy-protection en DRM zooi in hun producten, en toch wordt het allemaal gepirate bij het leven. Geen thuis-piraat die zich laat afschrikken door WGA of de activatie van photoshop, ja het is even irritant als je iets verkeerd doet of de verkeerde ISO pakt en moet herinstalleren, maar als je een beetje weet waar je moet zijn is elk programma gekraakt te krijgen. Ondertussen ergeren legale gebruikers zich groen en geel aan al die DRM onzin op programma's en worden ze af en toe zelfs benadeeld ten opzichte van piraten als er weer eens een foute WGA update uitkomt, per ongeluk verkeerde keys worden geblokkeerd, of je internet plat ligt waardoor Photoshop de activatieserver niet kan bereiken. Zinloos dus allemaal.

Sowieso bundelt Apple OS X en iLife bij zijn computers, dus op elke nieuwe Mac worden netjes licentiekosten betaald. De rest van de betaalde Apple software is vooral interessant voor commercieel gebruik, en daar zal het percentage illegale software wel een stukje lager liggen.
Volgens mij snap jij de strategie van MS helemaal niet. MS heeft juist baat bij piraterij omdat het in de toekomst meer inkomsten oplevert.

Het gaat erom dat je een gebruiker alleen al het idee geeft dat wat hij heeft illegaal is en voordat je het weet rennen ze al naar de winkel voor een legale versie.
Waar haalt MS zijn voordeel uit piraterij? Als wat jij zegt waar is ... denk je niet dat ze al een keer of tien door Kroes zouden zijn teruggefloten? Nog is hun nadeel zo enorm groot. De groep mensen die illegaal windows/office installeert is niet zo groot (als ze al een half miljardje (ja een half miljard!) mislopen aan omzet hierdoor zal het héél véél zijn - en dat is dan nog geen procent van hun jaar omzet). Het grootste deel van de inkomsten die MS genereert zijn toch uit het corporate wezen en daar kunnen ze sowieso niet beginnen met pirate versietjes ...

nu Apple:
Anders dan bij Adobe en microsoft haalt Apple ook het (overgrote) merendeel van zijn omzet uit de verkoop van (fysieke) producten (iTunes & app store even vergeten). Deze kan je niet kapen (je kan ze wel kraken ... maar daardoor loopt apple alweer omzeggens geen omzet mis).

Zo zijn er heel veel geruchten die er op wijzen dat apple zijn pro-software producten aan het dumpen is (Xserve is zeker - natuurlijk wel hardware maar heel waarschijnlijk volgen de OS X Server editie, XSan e.a. server gerelateerde producten in de nabije toekomst - minder waarschijnlijk misschien ook de final-cut en aperture (tegenwoordig krijgt iPhoto bv eerder nieuwe features dan Aperture) omdat ze te weinig omzet genereren (Sowieso vertegenwoordigt uiteindelijk het gehele mac-platform geen 30% meer van de omzet).

Nu iTunes (ook een vrij grote bron van omzet), daar besloten ze een tijd terug ook om het drm weg te laten op muziek. Volgens mij was dit een populariteitstunt omdat de ipods en iphones zo veel geld in het laatje brengen. Ik moet wel toegeven dat ik niet begrijp waarom apple 30% (dat vind ik nogal veel eerlijk gezegd) eist van iedereen die iets te maken wilt hebben met hen (iOS, app store)? Misschien omdat het groei potentieel van de iphone (maar vooral de ipods) aan het krimpen is?

Maar soit - Apple heeft nauwelijks interesse in drm omdat ze daar toch niet veel omzet mee mis lopen, Adobe doet dat al zeker wel (welke "creatieve" student koopt zich Photoshop). En met Adobe potentieel bijna alle app store developper (het is hun enige bron van inkomsten). Microsoft heb ik het gevoel dat ze denken dat ze zo (heel) veel omzet mislopen. Mijn conclusie: mensen die substantieel minder omzet (denken te) maken door piraterij (kunnen beter) beveiligen
Waar haalt MS zijn voordeel uit piraterij?
Gebruikers worden/blijven vertrouwd met MS software en zullen hopelijk later blijven werken met MS software omdat ze die al kennen en ze geen zin hebben om tijd (=geld) uit te geven aan het leren werken met andere software.

Op een later moment (misschien niet langer scholier/student met beperkt inkomen, of een bedrijfje opgezet en dingen legaal willen doen, of een nieuwe computer aangeschaft en "ja we moeten ook word hebben") heb je er een trouwe klant bij.

[Reactie gewijzigd door Bundin op 19 januari 2011 05:00]

Is het niet zo dat die apps uit store gewoon net zo makkelijk zijn te kraken als normale apps? Met die artikelen erover lijkt het wel of die apps uit AppStore makkelijker te kraken zijn dan buiten de AppStore om.
Jup, alleen heeft Apple met de komst van de Mac App Store wel extra documentatie geleverd om je app te beveiligen tegen piraterij.
Echter nemen veel van de developers het niet zo nauw met die extra maatregelen.
Het zou natuurlijk jammer zijn voor de developers al er al gauw een 2nd market komt waar alle applicaties illegaal te downloaden zijn, echter begint het daar wel op te lijken met deze nieuwsberichten.
Dat is waarom de appstore nog in beta is, niet echt verbazingwekkend en hopelijk fixen ze het snel.
En waar staat dat de app-store in beta is? En inderdaad, de developers zouden het moeten fixen aangezien die de helft van de guidelines niet volgen.
<off topic>Sorry hoor maar ik moet even zeggen dat die dude zijn naam echt legendary is.</off topic>

Daar naast is het wel een beetje een schande dat de apps voor de mac zo snel al gekraakt worden.
Tegen deze tijd zou je denken dat het wel wat beter beveiligd is met al die verschillende stores waar ze al ervaring mee hebben.
Ik weet dat nog geen bedrijf hun store waterdicht heeft maar een store op een desktop systeem zou toch wel wat beter horen te zijn.
het heeft geen zin om je software telkens weer opnieuw te beveiligen. die hackers vinden toch wel een manier om het te kraken. het is alleen jammer van apple om hun software zo slecht te beveiligen. en dat terwijl hun Mac OS X geweldige bescherming heeft...
Dit is de omgedraagde wereld. Apple moet de software van de third parties gaan beschermen? Die door de third parties te koop aangeboden wordt?
Bijzondere strategy :P.

En daarbij ben ik bednieuwd waar jij vandaan haalt dat Mac OS X zo geweldige bescherming heeft... Hier een artikel uit 2004 wat dat ontkracht:
http://news.techworld.com...-x-security-myth-exposed/
'Not this shit again'

De makkelijk te kraken applicaties hielden zich niet aan de richtlijnen of implementeerden maar een gedeelte van de beveiligingsmethodes (er zijn volgens mij 5?). Wat bij het vorige bericht hierover ook al 20 keer is vermeld. Nja.
Dit is echt spuit-11 en oud nieuws.

De fout zit 'em niet in de App Store maar bij de developers die niet netjes de documentatie hebben gelezen. Apple heeft al eerder aangegeven dat als je de validatie verkeerd doet het kinderspel is om de shit te kraken.

Echter zijn er uitvoerige docs beschikbaar over hoe het wel moet incluus volledige code-samples van de meest "basic" tot vrij stevige levels aan beveiliging die je in je code kunt opnemen.

En wat dat Obj-C versus C betreft, sure, security by obscurity, strak plan (aka sarcasme voor de mensen die het niet volgen).
Volgens mij is zijn methode tamelijk 'universeel', in de zin dat het kraken van een softwarebeveiliging op welk platform dan ook, ongeveer dezelfde stappen nodig heeft (tenzij de binary encrypted/packed is, dan zijn er nog wat extra stappen nodig).

Niks nieuws hier.

[Reactie gewijzigd door mvd64 op 18 januari 2011 16:15]

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True