Hoe kan ik een "systeem hash" berekenen?

Pagina: 1
Acties:
  • 409 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • FooBarWidget
  • Registratie: September 2004
  • Laatst online: 12-09-2024
Ik ben wat aan het nadenken over manieren om mijn software te beschermen tegen piraterij. Ik weet dat een 100% fool proof manier niet mogelijk is, maar ik wil de boel wel zo moeilijk mogelijk maken voor de script kiddies. Ik wil weer niet zo ver gaan als het installeren van een root kit.

Bij een van mijn ideeen heb ik een "systeem hash" nodig. Die hash moet aan de volgende eisen voldoen:
1. Het is (bijna) uniek voor elke Windows installatie.
2. Het wordt nooit of bijna nooit veranderd.
3. Het kan niet makkelijk veranderd worden, zonder dat het negatieve gevolgen heeft voor het systeem.

Is er een manier om zo'n hash te berekenen? De volgende hash voldoet aan eisen 1 en 2, maar waarschijnlijk niet aan 3:
sha1(windows product ID + EzcIdentification*)
* Ik weet niet wat dit is maar het staat in het register en lijkt uniek te zijn.

Acties:
  • 0 Henk 'm!

  • DarthPlastic
  • Registratie: Augustus 2005
  • Laatst online: 03-02 14:57
Deze methode van beveiligen wordt vaak gebruikt, laat je programma deze waarden bijvoorbeeld pakken:
- CPU-serienummer
- Serienummer mobo
- Volumenaam harddisk
- Product-ID Windows
- edit: MAC-adres is idd ook een goede :)

Er is altijd een kans dat een gebruiker iets aan zijn systeem verandert, laat dus bijvoorbeeld 1 of 2 wijzigingen toe.
Een waarde zoals de ProductID klopt bijna altijd, het ligt daarom ook voor de hand om deze als 'vaste waarde' in te programmeren, maar let op mensen met een illegale versie die met het Microsoft-tooltje hun key veranderen, de ProductID is dan ook anders...

Let ook op dat je het niet té bont maakt, mensen vinden het heel irritant als een beveiliging te streng is, naarmate je programma populairder is geworden neigt dit ook meer om er een crack voor te maken.

edit: Laat bovenstaande punten in een variabele schrijven, codeer deze op je eigen manier (wat omkeerbaar moet zijn) naar bijvoorbeeld een reeks getallen, de gebruiker dient deze door te geven, jij decodeert de gegevens, maakt er een code op, en stuurt hem op naar de gebruiker.
Elke keer bij het opstarten controleert je programma of de gebruikerscode nog om te rekenen is naar het serienummer, zo niet dan controleert hij ieder punt individueel. Is er te veel veranderd dan wordt er een melding weergegeven :)

Ik heb iig geen ervaring mer programmeren, maar bovenstaande opzet is de beveiliging in grote lijnen.

[ Voor 29% gewijzigd door DarthPlastic op 05-08-2006 13:30 ]

Owner SuitIT, https://www.suitit.nl


Acties:
  • 0 Henk 'm!

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Als je niet weet wat EzcIdentification is, dan kan je er niet zondermeer vanuit gaan dat deze (bijna) nooit veranderd!

Een combinatie van windows product ID en harddisk serial number (eigenlijk het nummer van een van de partities op je harddisk) lijkt me dan een betere combinatie. Het windows product ID gedeelt voor mensen die een normale windows xp hebben, en het hardisk serial nummer voor de mensen die makkelijk het windows id kunnen veranderen via een corporate key changer.

[ Voor 6% gewijzigd door Infinitive op 05-08-2006 12:41 ]

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


Acties:
  • 0 Henk 'm!

  • PiepPiep
  • Registratie: Maart 2002
  • Laatst online: 18-01-2023
/offtopic
Grappig dat het over windows xp key's veranderen gaat in een topic over software beveiligen tegen kopyeren, voor zover ik weet hoef je bij een legale xp nooit die key te veranderen :)

/ontopic
Ik zou zelf kijken naar serienummers van hardware en dus niet van partities, die zijn namelijk best makkelijk te veranderen.
Ook raad ik je aan om iets te doen als

lees_harddisk_serienummer();
doe_veel_code(); /init's ofzo
lees_macadres();
doe_weer_veelcode();
bereken_eerstedeel_hash();

Deel het lekker op in veel stukjes, op die manier is het moeilijker om met softice of dat soort tools de berekening te zoeken.
Kijk ook of je op meerdere plekken in je code een deel van de hash controleerd en exit niet op dezelfde manier, stel je maakt een routine geef_copyright_error() dan hoef je alleen maar naar elke plek te zoeken waar deze wordt aangeroepen.
Verder kan je ook op internet zoeken naar voorbeelden van hoe software gehackt kan worden, daar kan je best erg veel van leren.

486DX2-50 16MB ECC RAM 4x 500MB Drive array 1.44MB FDD MS-Dos 6.22


Acties:
  • 0 Henk 'm!

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Begrijp wel dat je het ook je klanten veel lastiger maakt met jouw pakket te werken. Persoonlijk vind ik dat al snel een rede om over te stappen naar een ander pakket. Als ik ergens geld aan ga besteden om het eerlijk te kopen wil ik niet elke keer veel moeite doen om het pakket te kunnen draaien.

We adore chaos because we like to restore order - M.C. Escher


Acties:
  • 0 Henk 'm!

  • Amotea
  • Registratie: Mei 2004
  • Laatst online: 23-01 17:45
LordLarry schreef op zaterdag 05 augustus 2006 @ 13:23:
Begrijp wel dat je het ook je klanten veel lastiger maakt met jouw pakket te werken. Persoonlijk vind ik dat al snel een rede om over te stappen naar een ander pakket. Als ik ergens geld aan ga besteden om het eerlijk te kopen wil ik niet elke keer veel moeite doen om het pakket te kunnen draaien.
Ben het hier mee eens. Ik heb laatst met partition magic m'n Windows partitie kleiner gemaakt zodat ik een paar partities voor Linux kon aanmaken. Toen ik vervolgens Windows weer wilde booten kreeg ik één of andere melding dat Windows niet meer de echtheid/legaliteit kon controleren van de Windowsinstallatie en dat ik daarom Windows niet meer mocht opstarten. Kon ik heel Windows weer opnieuw gaan installeren.

Koop je verdomme is een echte licentie voor Windows wordt je alsnog genaaid.

Acties:
  • 0 Henk 'm!

  • Punksmurf
  • Registratie: September 2002
  • Laatst online: 06-01-2024
PiepPiep schreef op zaterdag 05 augustus 2006 @ 13:22:
/offtopic
Grappig dat het over windows xp key's veranderen gaat in een topic over software beveiligen tegen kopyeren, voor zover ik weet hoef je bij een legale xp nooit die key te veranderen :)
Je kan niet vanuit gaan dat mensen een legale windows windows hebben, dus moet je rekening houden met het feit dat mensen hun ID veranderen... Als iedereen z'n windows legaal zou hebben, was het een eitje.

Dit soort methoden zijn overigens zwaar irritant, zie het voorbeeld hierboven. Helaas weet ik ook niet hoe je het beter kan doen, buiten zorgen dat je loyale klanten hebt.

[ Voor 14% gewijzigd door Punksmurf op 05-08-2006 13:34 ]

met een hamer past alles


Acties:
  • 0 Henk 'm!

  • FooBarWidget
  • Registratie: September 2004
  • Laatst online: 12-09-2024
Begrijp wel dat je het ook je klanten veel lastiger maakt met jouw pakket te werken.
Rustig! Ik heb helemaal niets gezegd over het totaal blokkeren van het programma wanneer het systeem hash niet klopt, zoals bij sommige posts worden gesuggereerd. Bovendien is mijn licentie erg flexibel: mensen mogen het installeren op oneindig veel computers, zolang maar maximaal 2 mensen het programma gebruiken. De prijs is zeer laag (minder dan 20 dollar) en ze krijgen 1 jaar lang gratis ondersteuning en updates. Desondanks zijn er mensen die het programma willen kopieren en verspreiden. Een groot deel van mijn klanten zijn tieners, die niet onbekend zijn met warez en cracks. Ze kopieren het niet alleen maar naar hun vrienden, maar ze zetten het ook op forums waarop ze opscheppen over hoe dom ik ben dat mijn programma gecrackt is door [een of andere script kiddie alias] "LoLololoLOloL!!" terwijl 200 andere mensen replies als "OMG thx loLolOL" met tonnen typefouten erin. Nou ja je begrijpt mijn punt vast wel. :p

De bedoeling is juist om een beveiliging te ontwikkelen die het niet of nauwelijks lastiger maakt voor klanten, maar wel lastiger voor de piraten. Het enige wat er wordt gevraagd is, bij een eerste start, een gebruikersnaam en wachtwoord, die de klant tijdens registratie zelf heeft gekozen. Aangezien hij ook daarmee moet inloggen op de website om het programma te kunnen downloaden, is dit niet veel moeite. Bij het veranderen van het systeem hash moet de gebruiker de inloggegevens gewoon opnieuw invullen. Het voordeel hiervan dat wanneer mensen een kopie verspreiden, ik gemakkelijk kan achterhalen van wie dat is.

Bedankt voor de reacties mensen.

[ Voor 30% gewijzigd door FooBarWidget op 05-08-2006 14:57 ]


Acties:
  • 0 Henk 'm!

Anoniem: 37691

DarthPlastic schreef op zaterdag 05 augustus 2006 @ 12:32:
- edit: MAC-adres is idd ook een goede :)
Gelieve NIETS aan het MAC adres te hangen. Ik verander mijn MAC adres ongeveer dagelijks (op mijn laptop iig). Hier heb ik een klein stukje software voor, zodat ik bij onbeveiligde AP's een ander macadres kan gebruiken. Ook op mijn werk heb ik weer een ander MAC adres toegelaten dan thuis in mijn netwerk kan komen. Ik wissel dus tussen 3 of 4 MAC adressen (thuis, werk, public, lanparty).
[/semi-offtopic]

[ Voor 6% gewijzigd door Anoniem: 37691 op 05-08-2006 16:06 ]


Acties:
  • 0 Henk 'm!

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

FooBarWidget schreef op zaterdag 05 augustus 2006 @ 14:49:
Rustig! Ik heb helemaal niets gezegd over het totaal blokkeren van het programma wanneer het systeem hash niet klopt, zoals bij sommige posts worden gesuggereerd.
...
Een groot deel van mijn klanten zijn tieners, die niet onbekend zijn met warez en cracks
Ik ben rustig :) Dus je programma wordt toch wel gekraakt en de mensen die je gekraakte programma gebruiken hoeven geen moeite te doen als er wat aan hun systeem veranderd. Mensen die wel eerlijk je programma gekocht hebben moeten wel elke keer als er wat aan hun systeem veranderd moeite doen. Het lijkt juist wel of je het kraken van je programma toejuigt/bemoedigd.

PS: Ik ben m er bewust van dat wel nu wel heel erg offtopic gaan, maar ik wil je graag behoeden voor eventuele verspilde moeite en verlies van klanten

We adore chaos because we like to restore order - M.C. Escher


Acties:
  • 0 Henk 'm!

  • FooBarWidget
  • Registratie: September 2004
  • Laatst online: 12-09-2024
Ik begrijp wat je bedoelt, maar mijn programma bestaat al 2 jaar. Helemaal aan het begin, dus 2 jaar geleden, had het programma geen enkele vorm van kopieerbeveiliging. Ik hoopte dat de lage prijs in combinatie met de goede support ervoor zal zorgen dat men het niet de moeite waard vind om het te kopieren.
Wat was ik naief geweest! Toen kwam een of andere kerel aan die mijn programma verspreidde op een forum en mij uit lachte. Sindsdien heb ik geen spijt van gekregen dat ik een vorm van kopieerbeveiliging in mijn programma heb gebouwd. Sterker nog, er zijn tot nu toe bijna geen klachten geweest over de kopieerbeveiliging (ik kan ze met 1 hand tellen), de meeste support vragen gaan over het gebruik van het programma.

En wat het systeemhash betreft: ik ben ook niet van plan om de Mac adres erin te stoppen. Veel mensen in Azie hebben geen breedbandverbinding en dus ook geen ethernetkaart met Mac adres.

Acties:
  • 0 Henk 'm!

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Je maakt ons nu wel nieuwsgierig over wat voor een gewild programma het gaat :)

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 07-03 23:58
Kun je niets doen met de Security Identifier van een machine? Iedere Windows NT-based machine heeft die, en die wijzigt alleen wanneer de machine in een domein wordt gehangen of daaruit wordt gehaald, wanneer iemand zelf NewSID draait of wanneer de machine wordt geherinstalleerd.

We are shaping the future


Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 09-05 21:01

Gerco

Professional Newbie

De SID gebruiken lijkt me ook een goed idee ja, die verandert als het goed is niet of weinig en is voor elk systeem uniek. Hardware veranderen is ook geen probleem en als je Windows opnieuw installeert moet je toch ook je programma opnieuw installeren, dus een nieuwe code vragen lijkt me dan ook geen probleem.

PS. Over welk programma hebben we het eigenlijk?

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 07-03 23:58
Over de SID:
http://windowssdk.msdn.mi...-us/library/ms757544.aspx

Je kunt die SIDs eventueel opslaan in een DB, gekoppeld aan username en password?

We are shaping the future


Acties:
  • 0 Henk 'm!

  • r5d
  • Registratie: Februari 2002
  • Niet online

r5d

Read more, write less...

Kun je niet beter, in plaats van zelf wat uit te vinden, een UUID gebruiken? Veel talen (o.a. Java, Python, C++) bieden hier wel ondersteuning voor. Een UUID is uiteraard zelf ook gebaseerd op bijv. calander tijd of het MAC adres. Maar het onderliggende concept is in ieder geval complexer dan een doe-het-zelf hash.

Later betaal je meer, maar dan heb je wel een gratis datalimiet....


Acties:
  • 0 Henk 'm!

  • FooBarWidget
  • Registratie: September 2004
  • Laatst online: 12-09-2024
Een van de eisen van mijn hashfunctie is dat hij voor dezelfde machine dezelfde hash moet genereren. Een UUID is daar dus niet geschikt voor. Bovendien is zo'n UUID makkelijk te faken, het is slechts een kwestie van een andere waarde in het register zetten (of waar mijn programma het ook op slaat). Een hard drive serial kan je niet zomaar veranderen. Heeft het veranderen van de Windows product ID gevolgen voor Windows Update?
Wordt de SID ook ergens anders voor gebruikt? Zo niet dan is het helaas niet echt geschikt.

Acties:
  • 0 Henk 'm!

  • Swerfer
  • Registratie: Mei 2003
  • Laatst online: 12-04 09:27

Swerfer

Hmm...

Ik heb eens gegoogled naar CPU Serial number motherboard serial number en ik denk dat daar wel bruikbare links tussen zitten...

Home Assistant | Unifi | LG 51MR.U44 | Volvo EX30 SMER+ Vapour Grey, trekhaak | SmartEVSE V3 | Cronos Crypto.com


Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 07-03 23:58
Een SID wordt door Windows gebruikt om je computer op een domein te authenticeren. Voor meer info: http://en.wikipedia.org/wiki/Windows_SID

We are shaping the future


Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 14-04 17:27
Hoe ga je uberhaupt een VM verifieren? Voor zover ik weet kunnen de nieuwste VMs zelfs een draaiend programma migreren. Wat je eist is in feite een rootkit a la SONY.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

Anoniem: 91634

:? Je wilt niet dat men jou programma niet illigaal kan gebruikt maar je wilt wel dat mensen jou programma kunne gebruikken op illigale software gebruiken ?
Dat is wel heel erg krom zeg.Wat wordt de volgende stap, een illigale versie van XP bij je programma leveren ?

[ Voor 23% gewijzigd door Anoniem: 91634 op 06-08-2006 08:15 ]


Acties:
  • 0 Henk 'm!

  • Cyberpope
  • Registratie: April 2000
  • Niet online

Cyberpope

When does the hurting stop??

Anoniem: 91634 schreef op zondag 06 augustus 2006 @ 08:12:
:? Je wilt niet dat men jou programma niet illigaal kan gebruikt maar je wilt wel dat mensen jou programma kunne gebruikken op illigale software gebruiken ?
Dat is wel heel erg krom zeg.Wat wordt de volgende stap, een illigale versie van XP bij je programma leveren ?
Dit is pas onzin... totale onzin. Of verwacht jij dat een benzinepomphouder die niet blij is met niet betalende klanten ook maar iedereen weigerd die wel eens te hard rijd of door rood? Hij wil gewoon dat zijn programma werkt op windows. Of mensen een legale windows hebben of illegaal is niet zijn zaak en hoeft hij dus ook geen rekening mee te houden. Simpel as that.

With so many things coming back in style, I can't wait till loyalty, intelligence and morals become a trend again.......


Acties:
  • 0 Henk 'm!

  • Ozzy
  • Registratie: April 2000
  • Laatst online: 09-05 17:39

Ozzy

omnia mutantur, nihil interit

Wat heeft zo'n systeemhash voor zin als ze volgens de licentie het op oneindig veel computers mogen installeren? Het voegt dan niets toe, omdat je aan de hash toch niet kunt zien of het een klant is of een piraat. Je wilt controleren op personen, maximaal 2. Sja, ik denk dat je dan toch bij vingerafdrukken, een dnascan of een irisscan of iets dergelijks uitkomt. Of even wachten tot iedereen een RFID paspoort heeft, dan kun je die scannen. Dat laatste kan overigens zomaar een beveiligingslek opleveren omdat het blijkbaar nog steeds niet zo moeilijk is op een paspoort-kloon te maken.

[ Voor 46% gewijzigd door Ozzy op 06-08-2006 09:41 ]

omnia mutantur, nihil interit


Acties:
  • 0 Henk 'm!

  • FooBarWidget
  • Registratie: September 2004
  • Laatst online: 12-09-2024
Het systeemhash wordt gebruikt in combinatie met iets anders, niet op zichzelf. Bovendien is de methode niet bedoeld om 100% fool proof te zijn, maar slechts om de drempel hoger te maken voor de mensen die het zonder toestemming kopieren, terwijl de drempel zo laag mogelijk te houden voor de mensen die wel toestemming hebben. Ik wil de hash combineren met een registratieprocedure: als iemand het programma op een ander computer wilt installeren dient hij (alleen bij de eerste start van het programma) zijn registratiegegevens in te voeren.

Ik wil de methode zo maken dat wanneer iemand het programma ergens op Internet zet dat hij dan ook zijn registratiegegevens moet uitgeven. Dat zal verraden wie hij is.

Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 14:08

alienfruit

the alien you never expected

Je kan beter tijd besteden aan het beter maken van je product dan zulke beveiligen er in te bouwen, wat binnen een uurtje kraken valt. Zoals met FlexLM of Alladin beveiligde producten. Maar goed ik denk dat jij ook meer wilt richten op de 'domme' gebruiker die zijn programma op het Internet wilt gooien?

[ Voor 39% gewijzigd door alienfruit op 08-08-2006 15:15 ]


Acties:
  • 0 Henk 'm!

  • FooBarWidget
  • Registratie: September 2004
  • Laatst online: 12-09-2024
Mijn gebruikers zijn juist die 'domme' gebruikers waarvan 99% niet weet wat hacken betekent. Tegen de zeer bekwame 1% kan je toch niks doen maar dat betekent niet dat de rest van de 99% wel mag.

Geloof me, ik heb genoeg ervaring met het niet hebben van kopieerbeveiliging om te weten dat dit het waard is. Er bestaan altijd uitzonderingen en dit is zo'n een.

Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 14-04 17:27
Het probleem is niet hoeveel mensen je programma niet kraken. Niemand weet van de Titanic nog hoeveel waterdichte schotten nog heel zijn.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

  • hneel
  • Registratie: Maart 2001
  • Laatst online: 15:05

hneel

denkt er het zijne van

** SCHOP **

Is de registry key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\LicenseInfo" hier niet voor te gebruiken? Het lijkt me dat die redelijk uniek moet zijn en ook niet zomaar te veranderen in de registry. Ik vermoed dat windows dat niet leuk gaat vinden.

Ik ben ook naar zoiets op zoek. Het hoeft niet helemaal hacker-proof te zijn, maar een leek moet de applicatie niet zomaar met dezelfde key op meerdere computers kunnen installeren. Ook niet als ze op meerdere computers dezelfde windows met hetzelfde serienummer zouden gebruiken.

Acties:
  • 0 Henk 'm!

  • hneel
  • Registratie: Maart 2001
  • Laatst online: 15:05

hneel

denkt er het zijne van

Nee dus. Deze wijzigt met elke keer inloggen...

Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Na 1 jaar mag je er vanuit gaan dat FooBarWidget inmiddels wel een oplossing heeft verzonnen ;)

edit:

En ik begrijp nu dat je hetzelfde probleem hebt :) *moi heeft niks gezegd*

[ Voor 26% gewijzigd door BtM909 op 03-08-2007 15:19 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 07-03 23:58
Je zou de licentie aan het volume-ID van %systemdrive% kunnen koppelen, en eventueel bij start even checken met een centrale server of de gebruikte key wel overeenstemt met het volume-ID. Als dat niet zo is een optie geven om een nieuw volume-ID te koppelen (dit wel beperken ofcourse)...

We are shaping the future

Pagina: 1