Archief - Keygens, hoe je er tegen verzetten?

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

breez

Legacy Member
Hallo,

Enige tijd geleden heb ik een programma gemaakt. Deze wordt als freeware aangeboden en om er wat mee te verdienen heb ik een kleine, doch handige feature aangeboden als "donate" functionaliteit.

Nu is er een of andere Duitse idioot die besloten heeft een keygen te maken en biedt deze op zijn blog aan. 2€ is blijkbaar te duur.

Mijn vraag is, wat kan ik hier als developer tegen doen?

*edit* weet niet of dit het juiste forum is hiervoor, maar aangezien de meeste developers hier zitten dacht ik dat dit de beste plaats zou zijn om dit topic te plaatsen

NeverwinterX

Legacy Member
Daag hem uit voor een potje Quake: als jij wint stopt hij ermee, anders blijft hij doorgaan :p

In realiteit kan je niet veel doen. Ten eerste moet je precies weten wie hij is voor je een klacht kan indienen (ik zou niet veel hoop hebben dat de politie gaat uitzoeken voor jou waar hij zit). Dan moet je een advocaat onder de arm nemen en dat wordt een kostelijke zaak, bovendien zit die persoon in Duitsland. Bovendien biedt hij niet rechtstreeks een illegale download aan, maar een keygen. Dus dat valt meer onder het faciliteren van illegale software, wat zo mogelijk nog meer een grijze zone is.

Tyfius

Legacy Member
Een update van uw programma uitbrengen en proberen een nieuw model van key te gebruiken. Als je kan eventueel via een activation webserver werken of altijd een online controle doen van die key.

Anders is er inderdaad niet veel aan te doen helaas.

Cycloon

Legacy Member
Zelf online controles zijn eenvoudig te omzeilen als je het niet 100% correct implementeert. Jammer genoeg zal je er mee moeten leren leven ofwel er heel veel tijd in investeren om het allemaal goed te implementeren en je te informeren. (en zelf dan nog kan het allemaal wel gehackt worden, maar die moeite zullen ze er niet meer voor over hebben).

Fraggie

Legacy Member
Valt niet veel te te doen. Gebeurt ook veel op gebied van hardware. Developersbords die vrij te koop zijn om een nutteloze chip van onze toestellen volledig uit te testen..

breez

Legacy Member
Aight, bedankt voor de respons ;)

Ik heb de persoon in kwestie via mail gecontacteerd (naam, email en dergelijke staan open beschikbaar op zijn blog) en hem een vriendelijk verzoek gestuurd om de informatie van zijn blog te verwijderen.

Indien hier geen gevolg aan gegeven wordt zal ik in de nieuwe versie een online license check implementeren. Zal wel nog eens goed moeten onderzoeken hoe ik dat het best aanpak :)

Racemaniac

Legacy Member
een kameraad van mij reverse engineered als hobby, en kan zo'n dingen kraken. Hij verspreid da wel ni in't openbaar als hij zoiets doet, maar 'k kan u wel garanderen dat da ver onmogelijk is iemand die wa degelijk kan reverse engineeren tegen te houden... Uiteindelijk moet uw programma op de een of andere manier die functionaliteit aanbieden, en kan iemand met de skills en tijd er wel rond geraken.
'k vind het wel chic da hij da kan, hij doet da puur als hobby en voor de uitdaging ^^

Shaddix

Legacy Member
Probeer het algoritme van het genereren gewoon zo ingewikkeld mogelijk te maken.

- Pak de eerst 5, 6 ... letters van de persoon zijn naam
- Pak de laatste 3 letters van zijn e-mailadres.
- Plak die twee samen met een secret key en encodeer dat met een sha1

en gebruik daarvan dan het resultaat om uw key op te bouwen en vul dat dan wat aan met random letters op vaste plaatsen. dan kan je in je programma gaan controleren of de key die is ingevoerd dat algoritme heeft gevolgd
eer dat ze dat algoritme door hebben ben je wel weer even verder en kan je weer een nieuw implementeren

Fraggie

Legacy Member
Shaddix zei:
Probeer het algoritme van het genereren gewoon zo ingewikkeld mogelijk te maken.

- Pak de eerst 5, 6 ... letters van de persoon zijn naam
- Pak de laatste 3 letters van zijn e-mailadres.
- Plak die twee samen met een secret key en encodeer dat met een sha1

en gebruik daarvan dan het resultaat om uw key op te bouwen en vul dat dan wat aan met random letters op vaste plaatsen. dan kan je in je programma gaan controleren of de key die is ingevoerd dat algoritme heeft gevolgd
eer dat ze dat algoritme door hebben ben je wel weer even verder en kan je weer een nieuw implementeren
Maakt niet uit. Je komt sowieso op het punt waar de CDkey geaccepteerd wordt of juist niet. Vanaf daar terug werken tot het punt waar je de CDkey ingegeven hebt en al wat niet belangrijk is.. is er zo uitgefilterd.
Net zoals code obfuscation weinig zin heeft voor iemand met tijd.

Cycloon

Legacy Member
breez zei:
Indien hier geen gevolg aan gegeven wordt zal ik in de nieuwe versie een online license check implementeren. Zal wel nog eens goed moeten onderzoeken hoe ik dat het best aanpak :)

Let hier goed mee op dat je alle communicatie op zijn minst al versleuteld doet, anders wordt het wel erg simpel om ergens wat proxy software tussen te steken. En zelf dan nog, als de sleutel uit de software wordt gehaald dan kan iemand met een beetje kennis wel het antwoordbericht faken.

MilM

Legacy Member
Als je met een offline programma zit, valt er weinig aan te doen. De belangrijke logica gebeurt dan op de client PC, niet aan server kant. Dat de license check online gebeurt, verandert daar niets aan op zich.

Pas bij online services kun je er echt iets aan doen.

Natuurlijk, als je een nieuw license model implementeert, is de kans zeker bestaande dat die persoon er geen tijd meer in zal steken (in tegenstelling tot populaire commerciële software waar genoeg mensen tijd zullen steken om het uiteindelijk te kraken)

edit: heb je al obfuscation toegepast zoals sommigen aanhalen? Op zich geen oplossing, maar voor u is het een kleine inspanning om het toe te passen en je maakt het de andere persoon er moeilijker op ...

Lethall

Legacy Member
Valt uiteindelijk niet veel aan te doen, als ze willen kraken ze het.

De vraag is hoeveel tijd en moeite wilt ge er in steken om het ze zo lastig mogelijk te maken of het zo lang mogelijk uit te stellen.

Als ge bij wijze van spreken een volledige maand tijd moet insteken om het vrij dicht te krijgen voor 10 euro winst.

Dus het is niet de vraag, is er iets tegen te doen, maar eerder, is het de tijd waard voor het geld dat ik er uit haal.

Cycloon

Legacy Member
En diegene die een keygen gebruiken waren waarschijnlijk ook nooit van plan de applicatie te kopen. Daar moet je je ook van bewust zijn.

SideShow

Legacy Member
ik denk dat een behoorlijk percentage (ik denk dan aan 10 tot 20% van de piraten) dat wel zou doen

silent785

Legacy Member
Om wat voor software gaat het eigenlijk? Ik denk niet dat reverse engineers "zomaar" de moeite doen om even security te omzeilen.

breez

Legacy Member
Veel reverse engineering was er niet aan uiteindelijk. Het gaat om een .NET applicatie waarvan de license key gewoon een SHA1 hash is met een paar random tekens + email adres
De broncode was ook niet obfuscated, dus met reflector kun je het rap vinden.

Om mensen niet op ideeën te brengen ga ik hier niet posten over welke applicatie het gaat, maar wie wil mag natuurlijk een PM sturen ;)

J3rry

Legacy Member
mensen die keygens creeren maken gebruik van debuggers,
hiertegen bestaan oplossingen waardoor het laden van jouw applicatie in hun debugger gewoon crasht

zoek eens op google naar 'protect from debuggers' of zie hier: An Anti-Reverse Engineering Guide - CodeProject®
verder kan je de code wat ingewikkelder maken en je exe inpakken met upx om het hun nog moeilijker te maken

Twilkie

Legacy Member
Shaddix zei:
Probeer het algoritme van het genereren gewoon zo ingewikkeld mogelijk te maken.

- Pak de eerst 5, 6 ... letters van de persoon zijn naam
- Pak de laatste 3 letters van zijn e-mailadres.
- Plak die twee samen met een secret key en encodeer dat met een sha1

en gebruik daarvan dan het resultaat om uw key op te bouwen en vul dat dan wat aan met random letters op vaste plaatsen. dan kan je in je programma gaan controleren of de key die is ingevoerd dat algoritme heeft gevolgd
eer dat ze dat algoritme door hebben ben je wel weer even verder en kan je weer een nieuw implementeren


Dat helpt helemaal niets.
Want ipv dan een keygen te maken kunnen ze gewoon een crack maken waar ze je functie:

Code:
public boolean isCorrectKey(){
    //Jouw algoritme 
}
vervangen door
Code:
public boolean isCorrectKey(){
    return true;
}
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan