Hoe worden cracks gemaakt?

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

  • me1299
  • Registratie: Maart 2000
  • Laatst online: 14-12 20:48

me1299

$ondertitel

Topicstarter
Beetje algemeen topic.

Ik wil nix illegaals provoceren, ik ben alleen benieuwd hoe zoiets ongeveer in zijn werk gaat.

Ik heb het dan over cracks voor programma's en spellen om eventuele beveiligingen oid eruit te slopen.

Ik vraag me dan af, hoe vind je uit waarin het programma iets gewijzigd diend te worden.

En op wat voor niveau gebeurt dat?

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


Verwijderd

Met reverse engineering. Dat is het (illegaal) openbreken van files zodat je de broncode te zien krijgt. Als je in staat bent om het alghoritme te pakken te krijgen waarmee software beveiligd is, kan je ook software schrijven om die beveiliging ongedaan te maken of er een geldige key voor te genereren. Zoiets toch?

  • DJSmiley
  • Registratie: Mei 2000
  • Laatst online: 13-11 18:21
yeps, zie rubenski..

wat ook vaak gedaan wordt is het proces volgen wat er gebeurt bij het intikken van een verkeerde serial.. die jumps worden gevolgd en getraced...

simpel gezien:
if serial_invalid then ongeldig else continue

naja, dat gaat allemaal op assembler nivo, iig, die regel wordt via een crack dan:
goto continue

ipv die check :)

op die manier kun je dus ook het hele algorithme achter een serial eruit sleutelen.
no-cd cracks worden ook op die manier gedaan. Verder zijn een aantal beveiligingen standaard, denk bv aan securom en safedisc.. dus da's een redelijk identiek principe.

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 18-11 16:53

D2k

volgens mij is deze discussie al eens geweest (zal zo ff searchen) [rml][ ALG] het hoe schrijf je een virus topic[/rml] maar dat ging over virussen. een deel van de info in dat topic (systemkennis enzo) gaat voor dit ook wel op.

een waarschuwing vooraf: plaats geen linkjes naar dubieuze sites. Het beleid mag bekend zijn

Doet iets met Cloud (MS/IBM)


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)

  • whoami
  • Registratie: December 2000
  • Laatst online: 01:05
Er is een boek die over dat topic handelt, ik heb hem zelf in m'n boekenkast liggen:

PC Underground. (Het is wel al een redelijk oud boek). Ik zal thuis eens kijken wat het ISB nummer is enzo.

https://fgheysels.github.io/


Verwijderd

DJSmiley schreef op 23 september 2002 @ 03:15:
wat ook vaak gedaan wordt is het proces volgen wat er gebeurt bij het intikken van een verkeerde serial.. die jumps worden gevolgd en getraced...

simpel gezien:
if serial_invalid then ongeldig else continue
idd, check waar de controlle plaatsvind dan je het gewoon de jump (not) even veranderen.
done.

  • pagani
  • Registratie: Januari 2002
  • Niet online
Dat houdt dan meestal in dat je een jne (jump not equal in asm) verandert in een je (jump if equal), of omgekeerd natuurlijk... (andere jumps kunnen natuurlijk ook)

  • CyeZ
  • Registratie: September 2001
  • Laatst online: 10-09 03:41

CyeZ

Vroem vroem!!!

De meeste mensen hier hebben een nogal simpel voorstelling van het cracken van de hedendaagse programma's. Simpel een paar jumpjes aanpassen is het niet meer echt, er gaat heel veel onderzoekwerk aan vooraf omdat de meeste code tegenwoordig zwaar verkloot is.
Dingen als encrypted coding die runtime wordt uitgepakt of het met opzet aanroepen van invalid opcodes om zo andere stukken coden aan te laten roepen.
Wil je echt cracks gaan schrijven dan zijn er 3 dingen die je moet doen:
1. Leer programmeren in c/c++/asm/etc..
2. Lezen, lezen, lezen, lezen, lezen.
3. Gewoon proberen. Begin met iets simpels. En werk langzaam omhoog in de richting van securom en safedisc. Vooral safedisc is pittig, securom stelt opzich niet zo veel voor.

[18:54] <Prammenhanger> |HunterPro|eet
[18:55] <Prammenhanger> lijkt best op
[18:55] <Prammenhanger> |HunterProFeet


Verwijderd

Met veel geduld :Y)

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 23:36

Reptile209

- gers -

Aanvullend op CyeZ: schrijf zelf eens een "beveiliging" voor serial code 2 en kijk eens of je 'm daarna zo kan hacken (zonder source :P) dat hij ook serials 0-9 accepteert. Probeer dan je eigen "hack" eens ongedaan te maken door je software te beveiligen en kraak 'm opnieuw. Het is niet helemaal "the real thing", want je weet al hoe je beveiliging werkt, maar het is een mooi begin om je debugger te leren kennen!

edit:
Laat je programma zijn eigen checksum eens controleren en probeer dat eens te omzeilen; Maak eens in runtime wat code aan en laat dat het werk doen; Maak het jezelf moeilijker en laat het programma zichzelf vernietigen als je een foutje maakt bij het hacken :*) Kraak de licence-code van Windows een bekend operating system dat door 90% van de computergebruikers wordt gebruikt :X

Zo scherp als een voetbal!


  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Ik weet dat het niet serieus was, maar iha wil je niet gewoon een jump aanpassen, veel te riskant. Je weet bv niet of dat wel de enige check is. Misschien wordt er wel random in een interrupt gechecked wanneer je het level uit speelt, of met een kans van 1 op 3 op de helft van het branden van je cd >:) En vaak kijkt de code gewoon of de checksum van zichzelf klopt...allemaal dat soort dingen. Moet het vanaf de grond goed doen, dus gewoon de correcte code er uit vissen :)

  • Steven
  • Registratie: December 2000
  • Laatst online: 09-12 14:46
Vaak wordt er toch gewoon een legale code ingevoerd en daarna met een programmatje gekeken wat het verschil is tussen het oude en het nieuwe bestand? Sommige proggies schrijven dan zelfs hun eigen executable :)

  • Fatamorgana
  • Registratie: Augustus 2001
  • Laatst online: 21-07 01:24

Fatamorgana

Fietsen is gezond.

Je kunt bv bij een serial door debuggen uitvissen waar deze wordt opgeslagen, dan kun je de routine(s) gaan volgen die daar iets mee doen. Als je dan uiteindelijk de plek hebt gevonden waar het te vergelijken resultaat komt te staan dan kun je deze waarde in de te vergelijken waarde zetten en zo 'denkt' het programma dat je serial goed is. Het is dan zaak om een zogenaamde 'loader' te maken die via interrupt handlers op het goede moment inspringt en zo het programma voor de gek houdt.

Neem bv de oude Lucas Arts games zoals Tie fighter, X-Wing, Indiana Jones and the fate of Atlantis en Day of the tentacle. Daar zat best een goede beveiliging op, maar er was ook een erg zwak punt. Na invoer van een goede code werd er in het geheugen een flag op '1' gezet zodat na resetten van de game niet meer om de code gevraagd werd. Na het maken van een loader die op het goede moment die '1' op de goede plek zette had ik dus nooit meer last van een protectie scherm.

Met loaders voorkom je aanpassen van de originele code en daarmee voorkom je dat aanpassingen in die code vreemde bijverschijnselen zouden kunnen hebben. De game Desert Strike op de PC hadden ze gecracked toen die lang geleden uit kwam, maar na spelen van level 1 zat er weer een check en kon je nog niet verder. Op de zelfde manier als de Lucas Arts games was dit met een loader zo opgelost en kwam je door iedere check.

Verwijderd

Disassembler en hexeditors... nagaan bij welk command het "beveiligings" schermpje komt, en dan de hexwaarde opzoeken, en veranderen of deleten

Verwijderd

Kijk eens op **url verwijderd** daar staan crackme's op met een tutorial erbij hoe je de beveiliging kan omzeilen,patchen etc

[ Voor 0% gewijzigd door dusty op 23-09-2002 15:05 . Reden: url verwijderd. ]


  • Demo
  • Registratie: Juni 2000
  • Laatst online: 14-12 22:38

Demo

Probleemschietende Tovenaar

Verwijderd schreef op 23 september 2002 @ 14:35:
Kijk eens op http://www.watbenjedan.nl daar staan crackme's op met een tutorial erbij hoe je de beveiliging kan omzeilen,patchen etc
De waarschuwing van D2k zeker niet gelezen?

Unix doesn't prevent a user from doing stupid things, because that would necessarily prevent them from doing brilliant things.
while true ; do echo -n "bla" ; sleep 1 ; done


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 18-11 16:53

D2k

HERHALING: plaats geen linkjes naar dubieuze sites. Het beleid mag bekend zijn

Doet iets met Cloud (MS/IBM)


Verwijderd

Als jullie nu eens eerst op de site kijken voordat jullie beginnen te schreeuwen. Ik weet niet of jullie weten wat crackme's zijn daarom zal ik het dan eens uitleggen:

[crackme uitleg modus]

Een crackme is een stukje code wat een serienummer check nabootst met een zelf bedacht algoritme wat de check uitvoert. Deze worden dan op een site gezet en iedereen die wil mag proberen deze te "cracken". De enige voorwaarde is dat je een tutorial schrijft hoe je deze crackme hebt gecracked.

[/crackme uitleg modus]

wat is dubieus aan een crackme site. De programma's worden speciaal gemaakt om gecracked te worden vandaar crack ME.
Dit is ongeveer hetzelfde als die site's met verschillende security niveau's waar je doorheen mag proberen te hacken. :)

  • PipoDeClown
  • Registratie: September 2000
  • Niet online

PipoDeClown

Izze Zimpell

whoami schreef op 23 september 2002 @ 09:04:
Er is een boek die over dat topic handelt, ik heb hem zelf in m'n boekenkast liggen:

PC Underground. (Het is wel al een redelijk oud boek). Ik zal thuis eens kijken wat het ISB nummer is enzo.
Is dat:
Stap binnen in de wereld van freaks en software-goeroe's
Nu onthuld: De geheime trucs uit de hacker-scene
Want dat gaat alleen maar over assembler, vga, mode-x, sb, gus, modplayers, geheugen aansturing en wat 386 instructies 8)7
Edoch boeiend en ter leering ende vermaeck.

God weet alles, want hij is lid van de Mosad. To protect your freedom i will take that away from you. Mijn drankgebruik heeft ernstig te lijden onder mijn gezondheid.


  • Demo
  • Registratie: Juni 2000
  • Laatst online: 14-12 22:38

Demo

Probleemschietende Tovenaar

Verwijderd schreef op 23 september 2002 @ 15:34:
Als jullie nu eens eerst op de site kijken voordat jullie beginnen te schreeuwen. Ik weet niet of jullie weten wat crackme's zijn daarom zal ik het dan eens uitleggen:

[crackme uitleg modus]

Een crackme is een stukje code wat een serienummer check nabootst met een zelf bedacht algoritme wat de check uitvoert. Deze worden dan op een site gezet en iedereen die wil mag proberen deze te "cracken". De enige voorwaarde is dat je een tutorial schrijft hoe je deze crackme hebt gecracked.

[/crackme uitleg modus]

wat is dubieus aan een crackme site. De programma's worden speciaal gemaakt om gecracked te worden vandaar crack ME.
Dit is ongeveer hetzelfde als die site's met verschillende security niveau's waar je doorheen mag proberen te hacken. :)
Bewijs jij maar eens dat die tutorials bij de door jou genoemde site niet op een willekeurig ander stuk software gaan werken...

Unix doesn't prevent a user from doing stupid things, because that would necessarily prevent them from doing brilliant things.
while true ; do echo -n "bla" ; sleep 1 ; done


Verwijderd

Dat is toch hetzelfde met die site wat je kan hacken. Het gaat erom dat die software die op die site staat niet illegaal is en de dingen die ze daar doen of bespreken ook niet. Die crackme's hebben geen copyright of iets dergelijks en ik heb nog nooit iemand daar gezien wat een safedisc beveiliging heeft nagebouwd. En trouwens als je je eigen beveiliging bouwt is die ook sterker omdat niemand weet wat je hebt gebrouwen.
Maar dit gaat helemaal offtopic. Die site is gewoon bedoeld voor diegene wat een paar echte voorbeelden wil zien.

Verwijderd

D2k schreef op 23 september 2002 @ 15:16:
<h1><font color=red>HERHALING: plaats geen linkjes naar dubieuze sites. Het beleid mag bekend zijn</font></h1>
Ik neem aan dat het toch geen probleem is sites te promoten die uitleggen hoe je programma's moet cracken. Dus NIET hoe je 'een bepaald programma' moet cracken, maar hoe het princiepe in elkaar zit. Dus meer het idee erachter, dat is gewoon kennis. Kennis is iets wat je niemand kwalijk kan nemen.
Pas als je te specefiek word, lijkt het mij een probleem.
Bewijs jij maar eens dat die tutorials bij de door jou genoemde site niet op een willekeurig ander stuk software gaan werken...
dan nog is het (...vind ik...) geen probleem, zolang deze crack-me-cracks maar niet geschreven zijn / gepromoot worden met dat doel.

  • Tom-Eric
  • Registratie: Oktober 2001
  • Laatst online: 25-03 09:11
Verwijderd schreef op 23 september 2002 @ 17:29:
Dat is toch hetzelfde met die site wat je kan hacken. Het gaat erom dat die software die op die site staat niet illegaal is en de dingen die ze daar doen of bespreken ook niet. Die crackme's hebben geen copyright of iets dergelijks en ik heb nog nooit iemand daar gezien wat een safedisc beveiliging heeft nagebouwd. En trouwens als je je eigen beveiliging bouwt is die ook sterker omdat niemand weet wat je hebt gebrouwen.
Maar dit gaat helemaal offtopic. Die site is gewoon bedoeld voor diegene wat een paar echte voorbeelden wil zien.
Ik ben het wel met je eens, dat crackme's leuk zijn en dat ze niet illegaal zijn, je moet het vergelijken met een denkspelletje alleen dan iets ingewikkelder.
DJSmiley schreef op 23 september 2002 @ 03:15:
yeps, zie rubenski..

wat ook vaak gedaan wordt is het proces volgen wat er gebeurt bij het intikken van een verkeerde serial.. die jumps worden gevolgd en getraced...

simpel gezien:
if serial_invalid then ongeldig else continue

naja, dat gaat allemaal op assembler nivo, iig, die regel wordt via een crack dan:
goto continue

ipv die check :)

op die manier kun je dus ook het hele algorithme achter een serial eruit sleutelen.
no-cd cracks worden ook op die manier gedaan. Verder zijn een aantal beveiligingen standaard, denk bv aan securom en safedisc.. dus da's een redelijk identiek principe.
Het is niet alleen jne's op je of jmp zetten hoor, vooral niet bij safedisc of securerom of dergelijke programma's. Ik ga hier echter niet verder op in :P.

Ik vind cracken zowiezo meer een puzzel. Dat je veel verstand moet hebben van een programmeertaal vind ik een beetje onzin, simpele dingen als mirc of andere freeware heb je redelijk snel gecracked en het is gewoon een leuke ervaring. Ik zie in het cracken opzich niet veel kwaads, je moet wel gaan uitkijken als je het gaat verspreiden, maar wat is nou het verschil tussen de datum van windows vooruit zetten voor het installeren, of ff een crackje maken die de datum check eruit sloopt.

Die crackme's kunnen volgens mij niet veel kwaad. Cracken is een denkwijze die je hebt, die kan je leren ja, maar als je dat kan leren dan kan je ook op google kijken en dan heb je al redelijk snel illegale linkjes in je bezit.

i76 | Webdesignersgids | Online Gitaarlessen & Muziekwinkels


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Mensen ga es ontopic zeg.
Niet zo zeveren over wat wel en niet mag kwa linkjes, dat is een discussie voor LA die al meerdere malen gevoerd is.

Verwijderd

Voor shareware blijft het meestal bij een keygen maken of een jmp eruit slopen.
Maar omdat de mensen tegenwoordig slimmer zijn zorgen ze bv. dat de code zichzelf eerst extract voor het gerunt wordt. veel andere methoden zijn om te controleren of er een debugger draait.
kijk bv. naar het programma mircstats 1.9, die sluit veel 'crack' programma's af voordat ie runt en crasht bij veel andere programma's.
een oplossing daarvoor is om eerst de debugger te 'verbergen'.

  • madwizard
  • Registratie: Juli 2002
  • Laatst online: 26-10-2024

madwizard

Missionary to the word of ska

Het hangt heel erg van het programma af. Veel programmeurs van shareware hebben geen idee hoe crackers werken en denken dat een ingewikkelde serial-formule genoeg is. Meestal is het omzetten van een jxx dan genoeg, zeker als het programma duidelijk aangeeft of een code goed of fout is (bijvoorbeeld een messagebox), beter is helemaal niks te laten merken (gewoon venster sluiten ofzo). Ik heb ooit wel eens een programma gezien met een DLL die een functie als isRegistered ofzo exporteerde |:().

Andere programmeurs zijn creatiever en maken het wel lastiger door bijvoorbeeld self-modifying code toe te voegen, encryptie van delen code of loze bytes tussen de opcodes om de disassembly in de war te gooien.

Dingen als checksums, packing, debugger detection enzo zijn hoogstens irritant, meestal gemakkelijk te omzeilen. Veel grote bedrijven gebruiken standaard beveiligingsproducten zoals vbox of sales agent. Op zich zitten er wel goede trucs in dat soort beveiligingen maar zodra er 1 gekraakt is kan er meestal wel een algemene crack voor gemaakt worden.

30-dagen trials e.d. zijn meestal wel te vinden door met een debugger de code te vinden die de huidige tijd leest, de starttijd ergens vandaan vist en deze vergelijkt. Voor een keygen is het complete algoritme natuurlijk nodig, tenzij de functies zo netjes geschreven zijn dat je ze er rechtstreeks uit kunt plukken.

Veel betere beveiligingen zijn programma's die heel subtiel laten weten dat ze niet geregisteerd zijn, bijvoorbeeld door bij een text editor bij het printen wat blokjes of andere troep mee te sturen zodat de print wel redelijk leesbaar is maar niet echt bruikbaar. Als ik het me goed herinner wordt bij operation flashpoint het beeld steeds vager terwijl je speelt als je een illegale kopie hebt. Dat soort dingen zijn veel lastiger te vinden (maar niet onmogelijk natuurlijk).

In ieder geval heb je een hoop kennis van assembly en het OS (de API, executable file format) nodig. Je kunt er ook een hoop van leren, en het uiteraard misbruiken :(.

www.madwizard.org

Pagina: 1