In het geval van een programma met een bestandscrack. Cracking: hackpraktijk en verdedigingstheorie. De inhoud van de map met het installatiebestand onderzoeken


waarvoor hij zeer dankbaar is. Alle auteursrechten
behoren tot cr0ck

> Vraag: Wat
Raden jullie het gebruik van programma's aan?

A: Debuggers:
DOS: Soft-Ice, DeGlucker, CUP /d, TD (alleen voor
beginners), 386 (ook),
Er zijn ook: AFDPro, GameTools, AxeHack, maar dit is alleen voor
speciale gevallen.
WIN: Soft-Ice, TD, ingebouwde WDASM32-foutopsporing
Kijkers/redacteuren:
DOS/WIN: HiEW, BIEW, QVIEW
WIN:WDASM32
En het coolste is IDA. Dit is het coolste
demontagemachine met veel functies en uitstekend
doordachte ideologie.
Uitpakkers:
DOS: uitpakken, cup386, uitpakken
WIN: procdump

>V: Hmm! Denk je dat woorden mij iets vertellen?
`debugger', `uitpakker', `disassembler'.

EEN: Hm! Heel slecht 🙁
_Debuggers_ (ook wel debuggers genoemd) zijn uitgevonden
zoeken naar fouten in programma's. Maar al snel waren die er
aangepast door hackers voor hun behoeften. En binnenkort
er verschenen speciale hackers
debuggers. Met debuggers kunt u een programma doorlopen
stap voor stap, stop alleen op bepaalde punten
programmalocaties, enz. Tegelijkertijd is de hacker volledig
controleert de getraceerde (zogenaamde
uitvoering stap voor stap) programma. _Uitpakkers_.
Softwarefabrikanten verpakken hun software vaak
programma's (zodat ze minder ruimte in beslag nemen) of
versleutelen (versleutelen) (zodat hackers of
concurrenten konden het niet hacken/bekijken).
De eerste en tweede maken hacken moeilijker. Naar
goede mensen doen om van problemen af ​​te komen
unpackers/uncryptors die dit toestaan
deze programma's uitpakken/unscripteren.
_Disassembler_ maakt het mogelijk vanuit het uitvoerbare bestand (com,
exe, ...) krijg een lijst van dit programma in de taal
assembler Assembleertaal is het equivalent van machinetaal
code, alleen min of meer begrijpelijk opgeschreven
woorden en symbolen.

>V:Wat moet ik weten om te worden
een hacker?

A: Gewoon iets weten is zeker niet genoeg, maar
enkele tips:
Ten eerste kun je niet zonder kennis van assembler.
Je kunt het op verschillende manieren aanleren. Eerst heb je nodig
lees boeken of documenten over assembleertaal, begrijp het
in het computerapparaat (onderbrekingen, organisatie
geheugen, invoer/uitvoer op poortniveau). Niet slecht
schrijven
verschillende kleine programma's op ASMA of op zijn minst
kijk hoe anderen het doen. Het zou leuk zijn
leer een taal op hoog niveau. Persoonlijk
het lijkt mij daarvoor
dit is ideaal voor S. Sommige S
wordt een taal op gemiddeld niveau genoemd, omdat hij is de meest
ligt dicht bij assembler en heeft dat tegelijkertijd ook
enorme kracht.
Begin dan met het breken van allerlei kruimels. Dat zijn ze
Daar zijn ze voor gemaakt 😉 Ga je gang
aan het hacken van programma's. Bekijk eerst de voorbeelden en
breek het dan zelf. Leer gebruiken
diverse programma's. IDA is bijvoorbeeld erg moeilijk
heb het in één klap onder de knie, maar er zijn zoveel mogelijkheden
zij geeft! Soft-Ice heeft ook veel functies die u kunt gebruiken
je weet het misschien nooit, maar wanneer je ze gebruikt
het leven kan veel gemakkelijker worden.

>Vraag: Volledige kennis van Pascal is voldoende
hacken?

A: Ik herhaal wat u allereerst moet weten
asm. Natuurlijk, als je Pascal heel goed kent,
dan heb je aan één een lange tijd genoeg. Maar idealiter
je moet _meerdere_ talen kennen.
Bijvoorbeeld: ASM, C, C++,PAS, Perl, enz.

>V: Bedoel je dat IDA een cool iets is? Waarom ben ik
kan ik het gebruiken? Het is uiteraard duidelijk dat daarvoor
demontage, maar je had het over allerlei soorten
coole functies.

A: Het eenvoudigste: zoeken naar verwijzingen naar strings
registratie. Het programma schrijft bijvoorbeeld naar u op
Scherm "Niet geregistreerd". U zoekt naar deze regel
programma en koppelt er vervolgens naar. Die. jij definieert
op welke plaatsen in het programma is dit toegankelijk?
lijn. En ergens in de buurt zal er een cheque zijn
wachtwoord/registratienummer. Nog zoiets geweldigs.
IDA maakt gebruik van FLIRT-technologie. Daarmee kun je
detecteren in programma's
oproepen naar functies van standaardbibliotheken en in plaats van bellen
12345678u
je zult zien: bel _strcpy
Je zou al moeten weten wat strcpy doet 😉 Terug in IDA
er is een ingebouwde taal die sterk lijkt op die van C.C
Als je het gebruikt, kun je alles met het programma doen
alles: bijvoorbeeld een gecodeerd bestand decoderen
onderdeel van het programma.

>V:Wat is Soft-Ice en hoe gebruik je dit programma?
gebruik?

A: Zoals in het begin werd gezegd, is dit een debugger. Trouwens,
zeer coole debugger. Qua features loopt hij voorop
iedereen. Wat het gebruik betreft, er is veel software
commando's, en je moet weten wat elk van hen doet. Over
dit is te lezen in diverse FAQ’s over
verzachten.

>V: Wat moet ik doen als ik niet zo’n FAQ heb? Wat te doen?

EEN: Zoeken! Misschien in de volgende versie van deze FAQ
Ik zal softize-opdrachten toevoegen, maar voorlopig zal ik dat moeten doen
wees tevreden met het commando `H'. Zonder
parameters het geeft een lijst met alle opdrachten waarmee
een korte beschrijving en eventueel als parameter
geef dan de naam aan van een softwareopdrachtthread
je krijgt wat meer gedetailleerde informatie.

>Vraag: Ik was al bereid om het te verbreken, maar ik besefte dat ik dat niet kon
Ik weet hoe ik software moet gebruiken 🙁

A: Trouwens, als ik het nu over verzachting heb, dan doe ik dat ook
Ik bedoel de Windows-versie. Softize wordt gelanceerd
vanuit de DOS-emulatiemodus op Windows. Je hebt het gewoon nodig
voer het winice.exe-bestand uit. Wanneer Windows wordt geladen
start Symbol Loader. En daarin in Bestand->Openen. Kiezen
breekbaar programma en Module->Laden.

>Vraag: Iedereen heeft het over een of ander soort snuisterijen. Wat is dit?

A: Breekpunt, breekpunt, breekpunt, breekpunt - punt
stop. Met debuggers kunt u een breekpunt invoegen
ergens in het programma en voer het uit. Wanneer
het programma zal dit punt bereiken - het
stop en je bevindt je in de debugger, en daar
doe wat je wilt.

>Vraag: Een van mijn vrienden pochte dat alle programma's
op de een of andere manier breekt het met bithak. Wat is het?

A: Bithack is een hackmethode waarbij
meerdere bits of bytes worden in het programma gewijzigd.
Bijvoorbeeld als bekend is dat dit op dat en dat adres is
er vindt een overgang plaats als het programma dat niet doet
geregistreerd, dan kunt u het sprongcommando gebruiken,
die zich bevindt bij
vervang dit adres bijvoorbeeld door het NOP-commando.
Als je niet weet wat voor soort team dit is, neem het dan serieus.
overweeg om ASMA te studeren 😉

>V: Ik begrijp het. Wat is de Brute Force-methode?

A: Ten eerste is het geschreven met een kleine letter - bruut
force (brute force) ;)) En ten tweede letterlijk vertaald
als een ‘brute force’-methode, d.w.z. eenvoudig
alle mogelijke wachtwoorden proberen.

>V: Waarom staat software je niet toe een breekpunt in te stellen
sommige functies, bijvoorbeeld op GetDlgItemTextA?

A: Alle functies zijn opgeslagen in bibliotheken. Bijvoorbeeld
GetDlgItemTextA bevindt zich in USER32.DLL Naast de functies
op specifieke adressen in het geheugen geladen. EN
breekpunten worden niet op functies geplaatst, maar op adressen
overeenkomend met hen. En zodat softize weet waar - wat,
je moet de benodigde bestanden exporteren om ze te verzachten
bibliotheken. Dit gebeurt in winice.dat

Meestal zijn deze regels er al, maar becommentarieerd en
je hoeft alleen maar de `;" te verwijderen

>Vraag: Ik heb alles gedaan, het gedownload. Nu wil ik beginnen
het programma breken. vraagt ​​ze
registratienummer (RN). Wat te doen?

A: Je moet een plek vinden waar het wordt vergeleken
voer het nummer in met het gewenste nummer en corrigeer het
een beetje

>V: Vind het? Hoe?

Antwoord: Er zijn verschillende manieren.
1. We vangen de plaats op waar de RN wordt geïntroduceerd. Dan
Laten we het stap voor stap volgen totdat we een vergelijking vinden.
Hier doen ze meestal dit. bpx GetDlgItemTextA zet er een breekpunt op
functie die gewoonlijk wordt gebruikt om te lezen
string uit het invoervenster. Je kunt breakpoints plaatsen
andere functies GetDlgItem*, GetWindowText*, hmemcpy. Wil
let op het laatste. Ze is gewoon
kopieert een geheugenlocatie, maar it
universeel gebruikt door alle invoerfuncties
gegevens. Daarom kan het breekpunt er ook op worden geplaatst. Maar
je moet niet vergeten dat het ook veroorzaakt kan worden door
eenvoudig kopiëren van gegevens, zodat het breekpunt erop staat
hoeft alleen te worden ingesteld voordat u op de knop `OK' drukt.
De invoer van de RN kan als volgt worden opgevangen: Voer de RN in. En niet
Klik op OK en druk op Ctrl+D. Nu ben je in zachte xora
data geeft de initiële gegevens.

We gebruiken allemaal graag goede software voor onze doeleinden. Als u bijvoorbeeld afbeeldingen wilt verwerken, PDF-bestanden wilt bewerken, goede games wilt spelen, enz., moet u vaak gebruiksrechten aanschaffen. Maar niet iedereen heeft de mogelijkheid (of wens) om zijn zuurverdiende geld voor dit doel uit te geven. En in dit geval schrijven hackers speciale programma's waarmee u de betalingsprocedure kunt omzeilen. Dergelijke software wordt in de volksmond een “crack” genoemd.

Laten we ons nu niet concentreren op het feit dat dit verkeerd en illegaal is, dat je dergelijke software niet kunt gebruiken. Dit is tenslotte al duidelijk, maar toch maken veel gebruikers graag gebruik van deze mogelijkheid. Vandaag vertellen we je alleen wat een ‘crack’ is en wat de mogelijke gevolgen zijn van het gebruik ervan.

Wat is dit?

Deze term is dus ontleend aan het Engels. De letterlijke betekenis van crack is ‘breken met een knal’. Wanneer een “crack”-programma wordt gestart, worden eenvoudigweg enkele wijzigingen aangebracht in de code van de betaalde software, waardoor niet meer wordt gecontroleerd of er al dan niet voor gebruik is betaald. Opgemerkt moet worden dat “patches” volgens een soortgelijk principe werken. Hun verschil ligt in het feit dat deze laatste verschillende fouten en gebreken in de software kunnen ‘hacken’ en corrigeren.

Maar laten we terugkeren naar onze "rammen". Een "crack" voor Windows wordt heel vaak gebruikt, omdat dit het populairste besturingssysteem is en de meeste software er speciaal voor is geschreven. Gebruikers moeten niet vergeten dat deze hackersoftware, naast het annuleren van betalingen, vaak de computer kan beschadigen. Wanneer hij bijvoorbeeld een “crack” installeert, neemt hij via internet contact op met de fabrikant en ontvangt hij de juiste instructies over wat hij moet doen. U kunt bijvoorbeeld bepaalde gegevens overbrengen, bepaalde services stopzetten, specifieke bestanden infecteren, enzovoort.

Motieven om te schrijven

Begint u al te begrijpen wat een “scheur” is? Het wordt heel vaak niet geschreven vanwege ideologische motieven of altruïstische neigingen. De auteur van dergelijke software streeft in de regel enkele persoonlijke interesses na. Vaak dringt tijdens de installatie een “Trojaans” programma het systeem binnen, dat uw wachtwoorden van accounts of sommige accounts “steelt”, enzovoort.

Veel gebruikers van een van de populaire versies van de illegale "Piggy" hebben ooit volledig ervaren wat een "crack" is en welke gevolgen dit zou kunnen hebben. Toen de licentiecontrole van dit besturingssysteem werd gedeactiveerd, raakte dit laatste besmet met een Trojaans paard. Met alle gevolgen van dien. Lange tijd kon antivirussoftware niets aan dit probleem doen, omdat veel geavanceerde antivirusprogramma's simpelweg niets detecteerden.

"Firewall"

Als u om wat voor reden dan ook nog steeds gebruik maakt van hackprogramma’s, raden wij u ten zeerste aan om naast de antivirus een extra ‘firewall’ te installeren. Met dit laatste kunt u immers verdachte activiteiten in het systeem detecteren en u daarvoor waarschuwen. Er moet bijzondere aandacht worden besteed aan de "crack" voor het spel. Het is specifiek voor games dat er veel ‘hacks’ worden uitgebracht met kwaadaardige verrassingen.

Nog een voorbeeld van de schadelijke effecten van dergelijke software. Deze keer is er sprake van diefstal in de ware zin van het woord. Het programma vereist dat de gebruiker een bericht naar een speciaal kort nummer stuurt, zogenaamd om de vereiste sleutel te ontvangen. Als aan deze vereiste is voldaan, wordt al het geld van uw mobiele account in een onbekende richting overgemaakt. U ontvangt nooit de sleutel.

Het is beter om antivirussoftware niet uit te schakelen

Ook kan nog een kenmerk van "scheuren" niet worden genegeerd. Iedereen die deze software heeft gebruikt of geprobeerd heeft te gebruiken, is de aanbeveling tegengekomen dat het noodzakelijk is om het antivirusprogramma uit te schakelen terwijl het actief is. Dit moet worden gedaan zodat er geen vals alarm zou optreden, waardoor de "crack" -taak niet zou worden voltooid.

Er schuilt enige waarheid in deze verklaring. “Antivirusspecialisten”, die de auteursrechten van ontwikkelaars beschermen, classificeren “cracks” inderdaad als kwaadaardige software, ook al omzeilen ze eigenlijk alleen de betaalde activeringsprocedure. Maar je moet ook begrijpen dat er nu maar heel weinig van zulke ‘onschadelijke’ programma’s zijn. En hoogstwaarschijnlijk zal een kwaadaardige “agent” het systeem binnendringen als u de bescherming van uw computer uitschakelt. Wij hopen dat u begrijpt wat een “scheur” is.

Auteur - IrchaV. Dit is een citaat uit dit bericht

Hoe keygen, crack, patch te gebruiken

Het is geen geheim dat in ons land 90% van de geïnstalleerde programma's op computers geen licentie heeft. De programma's zijn al gehackt, maar het installeren ervan vereist enige vaardigheden. Het artikel bespreekt de meest gebruikelijke methoden voor het installeren van illegale programma's. Hoe keygen gebruiken? Hoe crack gebruiken? Wat is aanvraagcode? Hoe pleister gebruiken?

1. Installatie-instructies in een tekstbestand

Het eerste waar u op moet letten, is of er een bestand “readme.txt” of “readme.txt” in deze map staat (er kunnen andere namen zijn). Heel vaak bevat het instructies voor het correct installeren van het programma. Als er een bestand met instructies is, open het dan gerust en volg de instructies. Als er geen dossier is, wordt de situatie iets ingewikkelder.

2. Serienummer in een tekstbestand

Soms is een serienummer vereist om het eigendom van een programma te verifiëren. Als u dit heeft, kunt u het programma gratis installeren.

Het serienummer kan nodig zijn bij het installeren van het programma, of bij het voor de eerste keer opstarten na de installatie. U kunt deze stap niet overslaan; het programma gaat pas verder als u het serienummer invoert (Fig. 1).

Voorbeeld serienummer: ADE-R119-F196-k9BA-17CD

In de map met het programma (in dezelfde map als het installatiebestand) bevindt zich mogelijk een bestand met een serienummer. Meestal wordt het "Serienummer", "Serienummer", "Sleutel", "sleutel", "crack" genoemd. Open dit bestand, kopieer het serienummer en plak het op de juiste plaats.

Volgorde van acties:

  1. Open een tekstbestand, kopieer het serienummer (Cntr+C)

3. Keygen gebruiken

De programmamap kan een programmabestand bevatten (keygen, crack, ...).

Hier is een voorbeeld van zo'n programma, als u het uitvoert (Fig. 2):

Fig.2 Serienummergenerator

Klik op de knop “Genereren” (Fig. 3)

Afb.3 Serienummergenerator met sleutel

Kopieer het serienummer, plak het op de juiste plaats en je bent klaar. We gaan door met de installatie, of klikken op “Ok” (eventueel “Finish”, “next” ...) als de installatie al is voltooid.

Volgorde van acties:

  1. Begin met het installeren van het programma totdat het om een ​​serienummer vraagt
  2. Keygen-bestand openen
  3. Serienummer genereren en kopiëren (Cntr+C)
  4. Plak het waar nodig (Cntr+V)

4.Toegang verkrijgen via de "Code aanvragen"

Een andere optie. Tijdens de installatie van het programma of na het starten van het geïnstalleerde programma verschijnt er een registratievenster op het scherm. Er zou keygen.exe, crack.exe of iets anders in de map met het installatiebestand moeten staan.
Voorbeeld van een registratievenster (Fig. 4):

Afb.4 Start van registratie met "Request code"

Soms moet u een registratiemodus selecteren, bijvoorbeeld “voer serienummer in”. Er verschijnt een venster voor het invoeren van het serienummer op het scherm. (Afb.5)

In dit geval:
- Ontvang een activeringscode - ontvang een activeringscode
- Voer een activeringscode in - voer de activeringscode in (de optie die we nodig hebben)

Open het bestand keygen.exe (crack.exe, ...) uit de map met de programma-installatie (Fig. 6).

Nu moeten we de “Request code” kopiëren uit het venster in Fig. 4 (Fig. 5) en deze in het venster in Fig. 6 plakken. Selecteer de Request-code en druk op Cntr+C (kopieersneltoets).
Plak de gekopieerde code in het laatste venster (Cntr+V).

Let op!!!
De code is niet volledig gekopieerd, maar alleen de eerste regel. De tweede coderegel moet afzonderlijk worden gekopieerd, in het venster in Fig. 6 moet u een spatie plaatsen, het resterende deel van de "Request code" kopiëren en plakken. Het zou er zo uit moeten zien (Fig. 7):

Afb.7 Generator na het invoeren van "Request code"

Hierna klikt u in het programma in Fig. 7 op de knop "Berekenen" (ook wel Genereer genoemd). Het zou er zo uit moeten zien (Fig. 8):

We kopiëren de "Auth-code" van het programma in Fig. 7 naar het venster in Fig. 5 en krijgen dit (Fig. 9):

Klik op Volgende of Ok. We zouden moeten worden geïnformeerd dat de registratie succesvol was. Nu kan het programma gratis worden gebruikt.

Deze situatie komt vrij vaak voor. Het belangrijkste is om niet te vergeten dat de Request-code uit twee regels bestaat.

Volgorde van acties:

  1. Installeer het programma
  2. Voer het programma uit
  3. Selecteer de serienummerinvoermodus (Enter...)
  4. Keygen openen
  5. Kopieer "Request code" van het programma naar "keygen" (beide regels)
  6. Klik in "keygen" op de knop genereren
  7. Kopieer de ontvangen code in "keygen"
  8. Plak het op de gewenste plaats in het programma (Cntr+V)
  9. Klik op klaar

5. Hoe de pleister te gebruiken

Soms kun je niet zomaar een serienummer genereren om een ​​programma gratis te installeren. In dergelijke gevallen worden speciale programma's gebruikt die bestanden zodanig wijzigen dat het programma geen geld nodig heeft. In de map met het programma-installatieprogramma zou er een bestand "Patch" moeten zijn (dit kan patch, keygen, crack, ... heten). Dit is een programma, ook wel een patch genoemd.

Het eerste dat we moeten doen is het programma installeren (het programma dat we gratis willen maken). Na de installatie hoeft u het programma niet te openen.

Vervolgens moeten we patch (of een ander patchbestand) herschrijven naar de map waarin we het programma hebben geïnstalleerd. Hoogstwaarschijnlijk is dit station C, map Programmabestanden, map met de naam van het programma (C:/Program files/“programmanaam”).

Hier is een voorbeeld van een patch.exe-bestand (Afb. 10):

Afb.10 Patchprogramma

Meestal is er slechts één knop in dit bestand. In dit geval is dit de knop Patch toepassen. In sommige gevallen kan het Crack worden genoemd. Klik op deze knop en je kunt het programma gratis gebruiken.

Volgorde van acties:

  1. Installeer het programma
  2. Kopieer Patch.exe naar de map waarin u het programma hebt geïnstalleerd
  3. Open Patch.exe
  4. Druk op de enige knop in het programma "Patch".
  5. Voer het programma uit

6. Er zijn geen bestanden om het programma gratis te installeren

Het kan ook zijn dat u het programma heeft gedownload zonder een illegaal “medicijn”. Dat wil zeggen, zonder kant-en-klare serienummers, keygens of patches. Dan wordt de taak ingewikkelder. Het is natuurlijk beter om programma's te downloaden met kant-en-klare 'medicijnen'. Maar wat als een dergelijk probleem zich nog steeds voordoet?

Volgorde van acties:

  1. Het programma installeren
  2. Laten we de volledige versie van het programma bekijken. (Bijvoorbeeld Daemon Tools Lite 4.35.6)
    Meestal bevat de naam van het installatiebestand de volledige naam. Als het programma al is geïnstalleerd, staat er in het menu-item "Help" een regel "Over het programma". Daar kunt u ook de volledige versie van het programma vinden. Als u de volledige naam niet kunt vinden, voert u de onvolledige naam in de zoekopdracht in.
  3. Als tijdens de installatie of daarna een serienummer vereist is, voer dan in de zoekopdracht, bijvoorbeeld yandex.ru, het volgende in: serienummer voor "volledige programmanaam" Als andere soorten registratie vereist zijn, voer dan in de zoekbalk, bijvoorbeeld yandex.ru, het volgende in: crack voor "volledige programmanaam"
  4. We doorlopen allerlei links totdat we het juiste medicijn of serienummer downloaden
  5. auteur van het artikel
  6. 2011 Igor Bayanchikov

Origineel bericht en opmerkingen op

Het is geen geheim dat in ons land 90% van de geïnstalleerde programma's op computers geen licentie heeft. De programma's zijn al gehackt, maar het installeren ervan vereist enige vaardigheden. Het artikel bespreekt de meest gebruikelijke methoden voor het installeren van illegale programma's. Hoe keygen gebruiken? Hoe crack gebruiken? Wat is aanvraagcode? Hoe pleister gebruiken?

    Vereiste kennis
    Ik raad je aan om eerst te studeren

De inhoud van de map met het installatiebestand onderzoeken

Open de map met de programma-installatiebestanden en onderzoek de inhoud ervan. Misschien vind je er een crack-map in en open je deze. Hier zijn de mogelijke opties die u kunt vinden.

  1. Tekstbestand (.txt)
  2. Applicatiebestand (.exe). Laten we het openen.
  3. Er staat niets in de map behalve het installatiebestand

1. Installatie-instructies in een tekstbestand

Het eerste waar u op moet letten, is of er een bestand “readme.txt” of “readme.txt” in deze map staat (er kunnen andere namen zijn). Heel vaak bevat het instructies voor het correct installeren van het programma. Als er een bestand met instructies is, open het dan gerust en volg de instructies. Als er geen dossier is, wordt de situatie iets ingewikkelder.

2. Serienummer in een tekstbestand

Soms is een serienummer vereist om het eigendom van een programma te verifiëren. Als u dit hebt, kunt u het programma gratis installeren.

Het serienummer kan nodig zijn bij het installeren van het programma, of bij het voor de eerste keer starten na de installatie. U kunt deze stap niet overslaan; het programma gaat pas verder als u het serienummer invoert (Fig. 1).


Voorbeeld serienummer: ADE-R119-F196-k9BA-17CD


In de map met het programma (in dezelfde map als het installatiebestand) bevindt zich mogelijk een bestand met een serienummer. Meestal wordt het "Serienummer", "Serienummer", "Sleutel", "sleutel", "crack" genoemd. Open dit bestand, kopieer het serienummer en plak het op de juiste plaats.

Volgorde van acties:

  • Open een tekstbestand, kopieer het serienummer (Cntr+C)
  • 3. Keygen gebruiken

    De programmamap kan een programmabestand bevatten (keygen, crack, ...).

    Hier is een voorbeeld van zo'n programma, als u het uitvoert (Fig. 2):



    Fig.2 Serienummergenerator

    Klik op de knop “Genereren” (Fig. 3)


    Afb.3 Serienummergenerator met sleutel

    Kopieer het serienummer, plak het op de juiste plaats en je bent klaar. We gaan door met de installatie, of klikken op “Ok” (eventueel “Finish”, “next”…) als de installatie al voltooid is.

      Volgorde van acties:
    1. Begin met het installeren van het programma totdat het om een ​​serienummer vraagt
    2. Keygen-bestand openen
    3. Serienummer genereren en kopiëren (Cntr+C)
    4. Plak het waar nodig (Cntr+V)

    4.Toegang verkrijgen via de "Code aanvragen"

    Een andere optie. Tijdens de installatie van het programma of na het starten van het geïnstalleerde programma verschijnt er een registratievenster op het scherm. Er zou keygen.exe, crack.exe of iets anders in de map met het installatiebestand moeten staan.
    Voorbeeld van een registratievenster (Fig. 4):


    Afb.4 Start van registratie met "Request code"

    Soms moet u een registratiemodus selecteren, bijvoorbeeld “voer serienummer in”. Er verschijnt een venster voor het invoeren van het serienummer op het scherm. (Afb.5)

    In dit geval:
    - Ontvang een activeringscode – ontvang een activeringscode
    - Voer een activeringscode in – voer de activeringscode in (de optie die we nodig hebben)


    Open het bestand keygen.exe (crack.exe, ...) uit de map met de programma-installatie (Fig. 6).


    Nu moeten we de “Request code” kopiëren uit het venster in Fig. 4 (Fig. 5) en deze in het venster in Fig. 6 plakken.
    Selecteer de Request-code en druk op Cntr+C (kopieersneltoets).

    Let op!!!
    Plak de gekopieerde code in het laatste venster (Cntr+V).


    Afb.7 Generator na het invoeren van "Request code"

    Hierna klikt u in het programma in Fig. 7 op de knop "Berekenen" (ook wel Genereer genoemd). Het zou er zo uit moeten zien (Fig. 8):


    We kopiëren de "Auth-code" van het programma in Fig. 7 naar het venster in Fig. 5 en krijgen dit (Fig. 9):


    Klik op Volgende of Ok.

    We zouden moeten worden geïnformeerd dat de registratie succesvol was. Nu kan het programma gratis worden gebruikt.

      Volgorde van acties:
    1. Deze situatie komt vrij vaak voor.
    2. Het belangrijkste is om niet te vergeten dat de Request-code uit twee regels bestaat.
    3. Installeer het programma
    4. Voer het programma uit
    5. Selecteer de serienummerinvoermodus (Enter...)
    6. Keygen openen
    7. Kopieer "Request code" van het programma naar "keygen" (beide regels)
    8. Klik in "keygen" op de knop genereren
    9. Kopieer de ontvangen code in "keygen"

    Plak het op de gewenste plaats in het programma (Cntr+V)

    Klik op klaar


    5. Hoe de pleister te gebruiken


    Soms kun je niet zomaar een serienummer genereren om een ​​programma gratis te installeren. In dergelijke gevallen worden speciale programma's gebruikt die bestanden zodanig wijzigen dat het programma geen geld nodig heeft.


    In de map met het programma-installatieprogramma zou er een bestand "Patch" moeten zijn (dit kan patch, keygen, crack, ... heten). Dit is een programma, ook wel een patch genoemd.

    Afb.10 Patchprogramma

    Het eerste dat we moeten doen is het programma installeren (het programma dat we gratis willen maken). Na de installatie hoeft u het programma niet te openen.

      Volgorde van acties:
    1. Deze situatie komt vrij vaak voor.
    2. Vervolgens moeten we patch (of een ander patchbestand) herschrijven naar de map waarin we het programma hebben geïnstalleerd. Hoogstwaarschijnlijk is dit station C, map Programmabestanden, map met de naam van het programma (C:/Program files/“programmanaam”).
    3. Hier is een voorbeeld van een patch.exe-bestand (Afb. 10):
    4. Meestal is er slechts één knop in dit bestand. In dit geval is dit de knop Patch toepassen. In sommige gevallen wordt het Crack genoemd. Klik op deze knop en je kunt het programma gratis gebruiken.
    5. Het belangrijkste is om niet te vergeten dat de Request-code uit twee regels bestaat.

    Kopieer Patch.exe naar de map waarin u het programma hebt geïnstalleerd

    Open Patch.exe

      Volgorde van acties:
    1. Druk op de enige knop in het programma "Patch".
    2. Laten we de volledige versie van het programma bekijken. (Bijvoorbeeld Daemon Tools Lite 4.35.6)
      6. Er zijn geen bestanden om het programma gratis te installeren
    3. Als tijdens de installatie of daarna een serienummer vereist is, voer dan in de zoekopdracht, bijvoorbeeld yandex.ru, het volgende in: serienummer voor "volledige programmanaam" Als andere soorten registratie vereist zijn, voer dan in de zoekbalk, bijvoorbeeld yandex.ru, het volgende in: crack voor "volledige programmanaam"
    4. We doorlopen allerlei links totdat we het juiste medicijn of serienummer downloaden

    Conclusie

    Het is mogelijk om meerdere registratiemethoden te combineren.


    In de map met het installatiebestand kan er bijvoorbeeld een serienummer in een tekstdocument staan, evenals Patch. In dit geval voert u tijdens de installatie het serienummer in en gebruikt u na de installatie Patch. Maar hiervoor moet je weten hoe je keygen, crack, patch en serienummer afzonderlijk moet gebruiken.


    Ik waarschuw u dat het materiaal in dit artikel uitsluitend voor informatieve doeleinden is. Het gebruik van programma's zonder licentie brengt strafrechtelijke aansprakelijkheid met zich mee. Als u een fout in de tekst aantreft, selecteert u de tekst en klikt u op


    Ctrl+Enter.

    Als je vragen hebt over dit artikel, schrijf dan in de reacties. Als je het artikel leuk vond, schrijf het dan in de reacties.

    Cracking: hackpraktijk en beschermingstheorie

    Alexander Antipov
    Hallo, beste lezer! Vandaag zullen we het hebben over zo'n interessant en


    Eerst een beetje theorie. De naam zelf "KrEk" (en in de omgangstaal "KrYak") wordt vertaald als "Crack", en in het informele Engels als "Inbraak". De vertaling spreekt voor zich (opmerking van de auteur - voor dummies: kraken is het hacken van shareware (betaald, van het woord "Shareware") software (software), om een ​​volledig functionele versie te verkrijgen, beperkingen te ontgrendelen die worden veroorzaakt door een niet-gelicentieerde of niet-geregistreerde kopie, evenals verlenging/verwijdering van de proefperiode (van het woord Proef - test) of eenvoudigweg het verwijderen van het vervelende venster waarin u elke keer dat u start aan registratie wordt herinnerd). De activiteit van het kraken zelf verscheen met de komst van de eerste betaalde software. Dienovereenkomstig waren er meteen mensen (Robin Hoods, om het zo maar te zeggen) die het echt niet leuk vonden dat ontwikkelaars ook geld gingen vragen voor sommige software. Ze begonnen niet alleen software te breken om te oefenen, maar verspreidden hun "Cracks" ook vrijelijk op internet, waarschijnlijk om de universele vreugde van freebies naar de wereld te brengen (of om de ontwikkelaars te laten begrijpen dat ze veilig volledig kunnen afzien al hun beschermingen, omdat er geen bescherming was die nog niet verbroken was). Oké, laten we aan de slag gaan...

    Om de theorie van bescherming tegen softwarehacking te bestuderen, moet je alle fijne kneepjes van het hacken zelf bestuderen. Dus daar beginnen we eerst mee. Laten we een paar programma's nemen en uitzoeken hoe, wat en waar. Hier. Als alternatief voor alle andere artikelen over kraken neem ik geen buitenlandse software, maar onze Sovjet-software, dat wil zeggen software uit de landen van de voormalige USSR. Trouwens, omdat In Rusland/Oekraïne zijn er meer crackers dan in andere landen, en over het algemeen beschermen onze vakmensen hun software heel goed. Maar zoals u weet, zijn er altijd uitzonderingen op alle regels. Alle. Tot het punt...

    Laten we beginnen met het eenvoudigste. Toegegeven, niet helemaal vanaf het allereerste begin, want ik ga niet als voorbeeld programma's nemen waarin het wachtwoord om het te registreren stilletjes in tekstbronnen staat, aangezien dit een complete primitief is. Laten we daarom beginnen met een Sovjet-programma dat je voortdurend vraagt ​​om een ​​wachtwoord in te voeren, anders zal het programma volledig weigeren te werken.

    Ik heb het echt noodzakelijke programma “Zodchiy” genomen, een databasemanager voor SNiPs (bouwvoorschriften en voorschriften) en GOSTs voor architecten. Om te bewijzen dat het zo nuttig is, heb ik op internet gezocht naar een reeds gemaakte crack ervoor. En ik was zeer verrast toen ik geen enkele gratis crack vond, en de goedkoopste kostte ongeveer 312 UAH. Dat is nog steeds veel goedkoper dan een licentie (geloof me). Haast je trouwens niet om alle cracks van internet te downloaden voor de software waarin je geïnteresseerd bent, want... Naast de dreiging van het 'vangen' van virussen, zijn er ook gewoon 'oplichting' (dummies), waarbij je, in ruil voor een code die je in de toekomst wordt toegezonden, de telefoonrekening van de cracker opwaardeert of zoiets zo. Laat je niet misleiden.

    Oké, laten we teruggaan naar onze zaken. Door op de knop “Registreren” te klikken, verschijnt er een veld waarin de helft van het wachtwoord al is ingevoerd en een prompt om de tweede helft in te voeren. Laten we proberen de verkeerde in te voeren (voor het geval het programma toch start). Helaas werd het programma onmiddellijk afgesloten toen ik op Enter drukte. “Wat moet je hier doen?”, vraag je. En ik zal je antwoorden. In dit geval zijn er 7 benaderingen. Laten we ze allemaal opsommen:

    • U kunt de resource-editor (ResHacker, Restorator) openen, proberen daar het registratievenster te vinden, het verwijderen en kijken of het programma het domweg overslaat en de controle overdraagt ​​aan het hoofdformulier.
    • U kunt het adres vinden van de opdracht die het registratievenster opent en proberen NOP te gebruiken (vervang het door een assembler-opdracht nee(geen operator), dat wil zeggen een lege opdracht) it. Wat in principe ook tot een misser kan leiden.
    • Zoek met behulp van de tekstlink de titel van het hoofdformulier, bereken ongeveer het adres van het toegangspunt en gebruik het adres dat we in de laatste stap hebben ontvangen (vlak voor het registratievenster), spring ervan naar het adres van de hoofdvorm. Dit kan gedaan worden met de "spring" -commando's. jcc. Ze zijn onderverdeeld in onvoorwaardelijke overgangen (sprongen) jmp(van de Engelse sprong “jump”) en voorwaardelijk ( je,jne...). Een gedetailleerde beschrijving ervan vindt u in de assembler-tutorial.
    • Nadat u het adres heeft gevonden van de opdracht die het registratievenster opent (met behulp van tekstzoeken, traceren en debuggen met behulp van breekpunten ( breekpunt– stoppunt)) kunnen we handmatig “stroomopwaarts” van het programma gaan (dat wil zeggen, de voortgang van de ontwikkeling ervan in de tegenovergestelde richting volledig volgen) totdat we een vergelijking/ondervraging van registratiegegevens vinden. Dat wil zeggen, bij het starten van het programma “kijkt” het ook of het geregistreerd is of niet. En schakel deze “vork” om. Vervolgens zal het programma, zonder wachtwoorden, “denken” dat het geregistreerd is.
    • Ontdek zelf het wachtwoord. Dit kan worden gedaan (maar niet altijd) door het programma uit te voeren en voortdurend de processorregisters, RAM en stack te controleren (uit het Engels. stapel- "keppel"). Maar in de meeste gevallen wordt het wachtwoord gecodeerd of eenvoudigweg zo verwerkt dat de debugger het niet kan zien.
    • Welnu, de meest gebruikelijke methode is de methode om de "vork" om te schakelen om de juistheid van het wachtwoord te controleren. Dat wil zeggen het onderscheppen van de uitvoering van code (of eenvoudigweg zoeken in de headers van besturingselementen) op de plaats waar het programma het ingevoerde wachtwoord vergelijkt met het juiste wachtwoord. Als we deze vork naar de tegenovergestelde schakelen, is het mogelijk om elk wachtwoord in te voeren (behalve het juiste).
    • Nou ja, de meest extreme methode. Hierdoor wordt het afsluiten van het programma onderschept en geannuleerd. Dat wil zeggen dat in ons geval, wanneer u op Enter drukt met een verkeerd ingevoerd wachtwoord, het programma een exit-commando geeft. Wat verhindert ons om het te onderscheppen, uit te zoeken waar het vandaan kwam en de oproep te ‘annuleren’. Het nadeel blijft dat je constant een wachtwoord moet invoeren om met het programma te kunnen werken.

    Hier. Om ten minste één van deze methoden te gebruiken, moet u controleren of het programma is gecomprimeerd door een externe packer. Programma's worden vaak voornamelijk gecomprimeerd om veiligheidsredenen, om auteursrechten te behouden en eenvoudigweg om de compactheid van het programma te verbeteren. De meest voorkomende packers (uit het Engels. pak– “pack”): UPX, AsPack (en AsProtect), PECompact, WinUPack, Telock, NeoLite, Yoda, PE-Shield, Armadillo... Ze comprimeren zowel alle (of niet gedeeltelijke) bronnen als de programmacode zelf, wat leidt tot de onmogelijkheid om het te demonteren (decompileren in assembler-broncode), te debuggen (traceren) en zelfs bronnen te bewerken. Daarom is het vóór het kraken noodzakelijk om het experimentele programma te controleren op "compressie".

    Er zijn veel programma's die uitzoeken waarmee het programma precies is gecomprimeerd en veel uitpakkers (dat wil zeggen uitpakkers). Ik geef de voorkeur aan de 2, naar mijn mening, de beste van hen. Dit: PEiD En PE-scan. Elk van hen heeft zijn eigen “schil”: PEiD kan zelfs laten zien in welke programmeertaal het programma is geschreven, en PE-scan heeft zelfs enkele standaard uitpakkers ingebouwd.

    Zoals u kunt zien, is onze “Architect” (het uitvoerbare bestand heet ARM_ARH.EXE) op geen enkele manier gecomprimeerd. En PEiD laat ons zelfs zien dat het in Borland Delphi is geschreven. Ze kunnen ook allebei visuele informatie over de bestandsstructuur weergeven, waar u zich niet per se in hoeft te verdiepen. Omdat ons bestand is op geen enkele manier gecomprimeerd, we kunnen veilig doorgaan met al het andere.

    Laten we proberen met het eenvoudigste te beginnen: controleren of het wachtwoord gecodeerd is. Hiervoor hebben we een dEbagger nodig (uit het Engels. Debugger– “debugger”). Ik ben een fan van OllyDBG. Omdat ik denk dat het tijdperk van SoftICE al voorbij is (maar het is nog steeds relevant voor het debuggen van stuurprogramma's). We openen onze ARM_ARH.EXE erin, wachten tot Olya alle code heeft geanalyseerd en beginnen met foutopsporing. Klik F9 (uitvoeren), onze Architect begint zonder uitzonderingen (uit het Engels. uitzondering- "uitzondering"). Dit betekent dat er geen anti-debug-beveiliging op is geïnstalleerd.


    We voeren alles in in plaats van de tweede helft van de pas (wachtwoord) en kruisen onze vingers en bidden dat we nu het vereiste wachtwoord zullen achterhalen. We drukken op Enter, het Olly-venster “verschijnt” voor ons, in het statuspaneel waarvan we kunnen lezen dat er een uitvoering heeft plaatsgevonden op adres 0EEDFADE. In principe is dit wat we nodig hebben. Nu kijken we rond in de geheugendump (venster rechtsonder). Hier zien we alles wat er met het programma is gebeurd vanaf het moment dat het werd gelanceerd (naar adressen gaan, modules laden, strings, functies oproepen en ervan terugkeren). Maar helaas hebben we het wachtwoord hier nooit gevonden. Maar maak je geen zorgen, het is allemaal niet zo erg.

    Laten we deze theorie eens proberen, wat als het volledige wachtwoord alleen wordt geladen als we het wachtwoord volledig opnieuw invoeren, en niet alleen de tweede helft. Druk hiervoor op het keuzerondje “Herhaal op deze pc” en er verschijnt een volledig leeg TEdit (invoerveld) voor ons. Voer nogmaals iets in en druk op Enter. Opnieuw wordt er een uitzondering gegenereerd met hetzelfde adres. De fout wordt hoogstwaarschijnlijk veroorzaakt doordat het programma vraagt ​​om af te sluiten. Opnieuw ‘schrapen’ we de hele puinhoop op zoek naar wachtwoorden. En... we komen hele interessante regels tegen:

    0012F0D0 |00FA2E18 ASCII-"75ZS8H"

    0012F0D4 |00FA2E04 ASCII-"A3R6NR"

    0012F0D8 |00FA2DC8 ASCII-"75ZS8H2238859"

    0012F0DC |00F9F170 ASCII "A3R6NR306767043"//als je het je herinnert, is dit al ingevoerd-

    0012F0E0 |00F9F18C ASCII "A3R6NR306767043-?" n de helft van ons wachtwoord.

    0012F0E4 |00F9F128 ASCII-"033005"

    Hm. Het is niet moeilijk om te zien dat de ASCII-reeks "75ZS8H2238859" zeer vergelijkbaar is (in lengte) met de tweede helft. Het proberen waard. En... Gefeliciteerd, het is gelukt! Je kunt de onderstaande schermafbeelding zien.

    Alsjeblieft. We hebben te maken gehad met een simpele scheur. Nu hebben we een wachtwoord dat we voor 312 UAH kunnen verkopen. Maar we hebben ook hersenen, dus die gaan we niet redden, want... We weten dat deze acties onder het artikel van het Wetboek van Strafrecht van Oekraïne vallen. Daarom wordt dit artikel alleen beschouwd als een illustratief voorbeeld, dat laat zien hoe zwak softwarebescherming kan zijn. En voor eventueel onrechtmatig gebruik van dit materiaal is uitsluitend de lezer zelf verantwoordelijk.

    Laten we dus verder gaan met een complexere scheur. Laten we vandaag een zeer populaire speler nemen: Light Alloy. Het is gemaakt door ons Sovjet-ontwikkelaarsbedrijf Softella (http://www.softella.com/).

    Om te registreren, nodigen de ontwikkelaars ons uit om een ​​van de raadsels te raden. Maar als het erg moeilijk voor ons is om ze elke keer te raden, dan kunnen we krek schrijven. Ook wordt bij het opstarten eerst het NUG-venster weergegeven. Dat wil zeggen, een venster met een bericht over de demoversie:

    Op de titelbalk van het LA-venster staat een onaangename inscriptie UNREGISTERED. En de registratie zelf vindt plaats in deze vorm:

    Zoals je misschien al geraden hebt, moeten we zoeken naar een ‘splitsing’ in de wachtwoordverificatie. Laten we beginnen. Laten we eerst eens kijken of onze LA.exe ergens mee gevuld is. We sturen het naar PEiD en... we zien dat het schaamteloos wordt gecomprimeerd door de meest populaire packer UPX.

    Om het uit te pakken, gaat u naar internet via de link en downloadt u de UPX-uitpakker of downloadt u deze samen met de GUI (grafische interface), de mijne heet UPX X-Shell 1.02 (http://www.urixsoft.nm.ru/) . Open het daar en klik op de knop "Uitpakken". Als het bericht “...NO ERROR” op het statuspaneel verschijnt, is alles in orde.

    Nu zul je zien dat de grootte van LA.exe is toegenomen van 894 KB naar 2,75 MB en dat er een reservekopie van LA.ex~ met de oude grootte naast het bestand is verschenen. Prima, uitgepakt.

    Nu ter zake. Laad onze speler in Ollie en start ( F9). De uitvoering crasht onmiddellijk. Dit is de eerste anti-debug-beveiliging. Maar Ollie slaat dit gemakkelijk over door op Shift+F9 te drukken.

    Nu zijn we op zoek naar tekstlinks (string na referenties) die overeenkomen met de betekenis. Om dit te doen, klikt u in het hoofdvenster voor foutopsporing met het label “C” en de kop “CPU – hoofdthread, module LA” met de rechtermuisknop -> Zoeken naar -> Alle tekstreeksen waarnaar wordt verwezen en bladert u door op zoek naar iets. Ik kwam deze regel tegen: ASCII "Registratie is succesvol. Start de applicatie opnieuw."

    Dubbelklik en we worden doorgestuurd naar precies het adres waarvan het commando deze tekst laadt. Logischerwijs zou de vork hoger moeten zijn. Laten we naar boven gaan en het vergelijkingscommando bekijken test en spring meteen.

    Woord kort betekent – ​​kort, dat wil zeggen een korte sprong. We zien dat het wordt uitgevoerd (dit wordt weergegeven door een klein vinkje links van de hexadecimale weergave van het commando) en dat het in hetzelfde bestand (LA) springt naar adres 0050417A. Het team zelf je betekent springen als er gelijkheid is, dat wil zeggen springen als er gelijkheid is. Vanaf adres 0050417A komen opdracht/plaatsingsopdrachten beweeg en plaatsing in een register voor algemene doeleinden Edx regels over onjuiste code.

    Dit betekent dat het in de toekomst hoe dan ook zal worden aangeroepen, hoogstwaarschijnlijk in een procedure die door het commando wordt aangeroepen telefoongesprek(van de Engelse oproep - "bellen") op 00504186. Hier. Vervolgens proberen we de pijl te “verwisselen” (voorwaardelijke sprong). Dat wil zeggen dat we alleen naar het bericht "Toegangscode is niet geldig" springen als we precies het juiste wachtwoord invoeren. En wanneer u een ander wachtwoord invoert, zal het programma de uitvoering van de code voortzetten en de vereiste “Registratie is succesvol” bereiken. Dit is de meest standaard en eenvoudigste kraakmethode.

    Laten we eerst de vorige foutopsporingssessie beëindigen door op Ctrl+F2 te drukken. Dubbelklik op de regel met onze sprong (adres 0050415D) en hernoem je V jn(spring indien niet gelijk). En druk nogmaals op Uitvoeren (F9).

    Helaas... Vreemd genoeg toont LA nog steeds dezelfde melding dat het wachtwoord onjuist is. Dit betekent dat het programma daar niet eens doorheen gaat... En dit is slechts bedrog van een programmeur.

    Nou, we geven niet op. De pijlen “>” links van de commandocode betekenen dat een programma vanaf een extern adres kan worden overgedragen naar een commando op dit adres. Dat wil zeggen dat er een sprong- of procedureaanroep wordt gedaan naar het adres dat is gemarkeerd met een pijl.

    Laten we dan proberen een breekpunt te plaatsen op de opdracht met het adres 0050418B. Om dit te doen, moet u deze opdracht “markeren” met uw muis of toetsenbord en op F2 drukken. Het adres wordt gemarkeerd in een opvallende kleur. Druk nogmaals op Ctrl+F2 en F9.

    Het programma start nog steeds, maar als u het verkeerde wachtwoord invoert, stopt het precies daar waar we de pauze hebben geïnstalleerd en draagt ​​het de controle over aan de debugger. Dit betekent dat u en ik ons ​​niet hebben vergist en dat we nog steeds op de goede weg zijn. Dit betekent dat je nog hoger moet stijgen om het ‘echte’ vergelijkingsgebied en de daaropvolgende sprong te vinden.

    We vinden de dichtstbijzijnde (inderdaad de enige in deze subprocedure waarin we ons bevinden) voorwaardelijke overgangen:

    00504096 |. 0F84 86000000 je LA.00504122

    005040E3 75 2A jnz kort LA.0050410F

    Beide hebben kleine vinkjes (ze zijn alleen niet als symbool gekopieerd). Voel je vrij om er pauzes op te installeren en de foutopsporing opnieuw te starten. Wanneer we op de knop drukken om de invoer van het wachtwoord te bevestigen, crasht onze pauze. Dat wil zeggen: alles verloopt volgens plan.

    Nu, puur voor de test, veranderen we het van je in jne en traceren we het met behulp van de Step over-methode (commando-voor-commando debuggen van een programma zonder een subprocedure in te voeren). Als we bij onze tweede sprong komen, zien we dat hij ook “gaat” springen (Jump is genomen). En als hij springt, komen we opnieuw bij “... code is ongeldig”. Dat wil zeggen dat we worden geconfronteerd met een dubbele wachtwoordcontrole.

    Dit geeft aan dat de ontwikkelaars meer dan één convoluties hebben. Hmm, maar wat hebben we nodig? Voel je vrij om te veranderen jnz(wat er ook gebeurt jn) naar het omgekeerde je en geniet van het resultaat:

    Nu moeten we onze wijzigingen in het uitvoerbare bestand opslaan. Om dit te doen, drukt u op de rechterknop -> Kopiëren naar uitvoerbaar bestand -> Alle wijzigingen. Venster “D” wordt geopend, klik op “sluiten”. En u wordt gevraagd om het op te slaan. Typ iets als LA(gekraakt).exe.

    Laten we nu de functionaliteit van ons opgeslagen programma controleren. We starten het en oeps... Het programma geeft twee fouten. Maar alles werkte voor ons in de debugger. Dit betekent dat de ontwikkelaars bij het opstarten ook dubbele wachtwoordauthenticatie hebben geïnstalleerd. Daarom vroegen ze om het programma opnieuw te starten. Onder het mom dat ze zichzelf niet zo kan updaten.

    OK. We zijn LA(gekraakt) al in Ollie aan het laden. Laten we lanceren. We komen twee uitzonderingen tegen, geven ze door de schakelaar en... hetzelfde raam met het opschrift "UNREGISTERED" pronkt voor ons.

    Hmm... Maar waarom zouden we ons niet van hem afduwen. We doorzoeken de tekstlinks en vinden:

    005558A1 |. B9 6C5B5500 mov ecx,LA_c.00555B6C; ASCII "-NIET GEREGISTREERD"

    Je hoeft geen pauze te gebruiken, want... Het programma is zeker hier (deze link is er slechts één). We gaan op zoek naar mogelijke bruikbare vorken, waarvan er in theorie twee zouden moeten zijn...

    0055584E |. 75 70 jnz kort LA_c.005558C0

    0055586D |. 75 51 jnz kort LA_c.005558C0

    In dit geval laten de kleine vinkjes (die gelijkwaardigheid aangeven) ons zien dat de sprong niet zal plaatsvinden. Dit betekent dat het programma “naar beneden gaat” naar “UNREGISTERED”. Daarom moeten we deze sprongen maken. Wij veranderen ze in je, sla de wijzigingen op en voer het reeds opgeslagen bestand uit.

    Alles is geweldig. We zien het Light Alloy-venster zonder ONGEREGISTREERD. Geweldig werk!

    Dus. Ik zal de volgende voorbeelden iets sneller beschrijven. Je hebt immers al ervaring...

    Laten we een ander Sovjetprogramma SlyControl nemen. Dit is een programma voor het op afstand besturen van een computer vanaf allerlei soorten apparaten (WinLIRC, Tekram M205, FlyRC2...). Russen, of mensen die Russisch kennen, kunnen dit programma elke maand registreren (ik kon trouwens niet vinden waar ik de volledige code moest invoeren), maar wij zijn maximalisten. Laten we haar kwaken...

    Waar zullen we ons aan vastklampen? Hm. De debugger herkent alleen Latijnse letters. Laten we zoeken naar het e-mailadres van de ontwikkelaar (e-mail) in de tekstlinks... Nee.

    Oh, xUSSR-knop. Op zoek naar... Ja! Precies wat je nodig hebt. Maar het zijn er twee. We hebben allebei een pauze ingelast.

    004165D7. BA A26C4A00 mov edx,SlyCtrl2.004A6CA2; ASCII "xUSSR"

    00416FED. BA 2C6E4A00 mov edx,SlyCtrl2.004A6E2C; ASCII "xUSSR"

    In principe is het programma volledig functioneel, het enige dat overblijft is om het deze NUG te ontnemen (bericht dat herinnert aan registratie). We traceren... We slaan een paar uitvoeringen over en "komen" de eerste pauze tegen (voor de lol kun je ervoor zorgen dat het programma de tweede pauze niet doorloopt). Maar het registratievenster is nog niet verschenen. Dus we traceren verder om precies zijn oproep te vinden. En we komen tot:

    00413D6D FF92 E8000000 bel dword ptr ds: ; jmp.&vcl60.@Formulieren@...

    00413D73. 8B0D 7CEC4A00 mov ecx,dword ptr ds:; SlyCtrl2._RegForm

    In dit geval is het beter om naar boven te gaan en de “fork” te verwisselen dan simpelweg de Reg.Form-oproep te vullen met NOP's. En op het hoofdformulier staat een inscriptie:

    Dus laten we naar boven gaan... En we zien een heel opmerkelijke structuur:

    Dit kan immers gemakkelijk een vergelijking zijn. Laten we veranderen. Tot onze vreugde verschijnen er geen NUG's en is de formulierkop enorm ten goede veranderd:

    Dit is hoe we een aantal Sovjetprogramma's kapot hebben gemaakt.

    En nu wil ik je laten zien hoe NO-CD's worden gemaakt. Dat wil zeggen, cracks van games om ze zonder schijf uit te voeren en hun volledige functionaliteit te garanderen. Laten we het verre van Sovjet-spel "Heroes of Might and Magic V" versie 1.0 van uitgever 1C nemen. Laten we installeren. Laten we rennen:

    Zoals je kunt zien, vraagt ​​het spel om een ​​schijf. Als je een flinke schroef hebt en het niet erg vindt om er een virtuele schijf van anderhalve gigabyte in te steken, dan hoef je niets te doen. Maar we zullen proberen het te grommen.

    Het programma is op geen enkele manier gecomprimeerd en is geschreven in Microsoft Visual C++ 7.0 Method2. We uploaden het naar Ollie en... vanwege de gezonde grootte (11,26 MB) raakt Ollie overbelast en blijft het hangen op 97,7 procent van de bestandsanalyse.

    Misschien is het binnen een halve dag klaar met laden, maar met mijn PIV 640 3,2 GHz besloot ik dat 10 minuten genoeg was om te begrijpen dat het niet langer zou laden.

    Vervolgens besluiten we om meer primitieve software te gebruiken voor het kraken, zoals W32Dasm en HIEW. Er was eens dat ik er alleen maar op ‘zat’. Dasm(disassembler) heeft het moeilijk, maar letterlijk na 3 minuten laadt en analyseert hij onze H5_Game.exe nog steeds volledig.

    Druk op Ctrl+L (Laden) in plaats van F9 (Olly) en opnieuw zien we een vensterwaarschuwing over het plaatsen van een schijf. We schakelen over naar Dasm, drukken op Pause (met de knop of spatiebalk) en zien dat de besturing niet meteen naar Dasm is overgedragen.

    Nou ja, dat maakt niet uit, we drukken op Herhalen en zien hoe Dasm ons onmiddellijk het adres liet zien van de MessageBox waarin we zojuist op “Herhalen” drukten:

    Het lijkt erop dat hier een ontwerp zit cmp/jne is verantwoordelijk voor onze keuze om op knoppen te drukken (“Herhalen” of “Annuleren”), maar juist het feit dat het dialoogvenster al is opgeroepen, is aanwezig. Dus we gaan naar boven en komen de volgende regels tegen:

    Springen jbe En jn Je kunt het controleren, maar niets werkt. Dit betekent dat het programma hier vanuit een ander deel van het programma “springt”. En van welke ze ons twee regels laten zien: Verwezen door een... Spring naar adressen:

    en 3 jumpadressen van waaruit hier een sprong gemaakt kan worden naar onze MessageBox.

    We zoeken ze op in de asm-lijst (je kunt scrollen, of je kunt "Go" Shift+F12 gebruiken) en pauzes op alle 3 de sprongen zetten. De letters “(C)” en “(U)” betekenen “Voorwaardelijk” en “Onvoorwaardelijk”.

    :00401181 0F8598000000 jne 0040121F

    :004011AB 7472 en 0040121F

    :004011F8 7525 jne 0040121F

    Wij proberen het te veranderen. GigY) Het is niet gelukt?! ;-) Klopt, want W32Dasm is niet ontworpen om een ​​gedecompileerd bestand dynamisch te bewerken.

    Om dit te doen, opent u het in de hexadecimale disassembler-editor HIEW. Ik hernoem het bestand persoonlijk naar H5_Game(c).exe.hiew en selecteer HIEW in "openen met".

    Wanneer HIEW wordt geopend, drukt u twee keer op Enter. Hierdoor wordt het in de disassembler-modus gezet.

    Laten we naar het adres van de onderste sprong gaan. Druk hiervoor op F5 en voer het adres met een punt in: .004011F8.

    Druk op F3 (bewerken) en als u goed thuis bent in het hexadecimale getalsysteem, kunt u eenvoudigweg 5 vervangen door 4 in 2 bytes: 75 25. En als u het moeilijk kunt onthouden, kunt u ook op F2 drukken en de samenstelling bewerken code zelf-team. Opslaan (F9). Kopieer en hernoem nu het bestand H5_Game(c).exe.hiew naar H5_Game(c).exe en voer het uit. Maar dezelfde boodschap verschijnt opnieuw voor ons...

    Laten we de code nog eens bekijken. En we zien dat de sprong:

    :0040121D 7533 jne 00401252

    Moet over MessageBox springen. Dit betekent dat het niet wordt uitgevoerd.

    Dus laten we het omdraaien. Terug bij HIEW. Van 7533 tot 7433. Opslaan (F9). Hernoem het. En wij lanceren. Goh. Het spel begint te laden.

    Laten we nu een redelijk soortgelijk geval nemen. Spel: "FIFA2007" (Je zult zeggen: "Nou, ik heb het al zonder schijf!" Dit betekent dat je hoogstwaarschijnlijk een nieuwe versie hebt met Russische commentatoren of dat je spel van een andere uitgever is). Installeren en uitvoeren:

    Laten we kijken wat we hiermee kunnen doen. We gaan verder zoals we de vorige keer hebben gedaan. PEiD vertelt ons dat fifa07.exe niet gecomprimeerd is. Hier is het naar mijn mening realistisch om de meest gebruikelijke foutopsporingsmethode te gebruiken: pauzes aanbrengen WinAPI functies die een dialoogvenster oproepen of een venster tonen. Welnu, hiervoor moet je ze kennen. Hier zijn enkele van de meest voorkomende: MessageBoxA, MessageBoxW, ShowWindow, ShowWindowEx .

    FIFA in Ollie laden. Open, indien niet standaard geopend, de plug-in " Commandoregel"(Plug-ins->2. Commandoregel). Wij schrijven daar" bpxBerichtenboxA", druk op Enter. En we doen precies hetzelfde met MessageBoxW...

    Als u een pauze wilt selecteren uit de volledige lijst met API-functies die in de applicatie worden gebruikt, kunt u in de plug-in schrijven: “ bpx"iets"". Dat wil zeggen, de verkeerde API. Bijvoorbeeld: " bpx dfgsdfg" En vanuit de lijst aan de rechterkant kunt u de pauze plaatsen waar u maar wilt, zonder iets in te voeren. Nu verschijnt er een lijst met uw geplaatste pauzes in het venster “(B) Breakpoints”. Daarin kunt u de werking van een van de onderbrekers pauzeren of een van deze verwijderen. Dus hebben we de pauzes geïnstalleerd.

    In het dumpvenster kunnen we zien hoe de inhoud van het dialoogvenster in delen is geladen:

    Nu gaan we omhoog (je kunt proberen te springen, maar ze springen niet over de berichtoproep) en we komen de eerste regel van deze subprocedure tegen. Laten we deze regel selecteren en in de statusregel zien:

    Lokale gesprekken vanaf 005EFD12, 005F0595, 005F066D, 005F0694, 005F0D6A, 005F0ED3

    Dit laat ons zien dat onze subroutine is aangeroepen telefoongesprek’ami van de vermelde adressen. Nu hoeft u alleen nog maar breakEykes op al deze te installeren telefoongesprek's en annuleer de aanroep van deze subprocedure. Om dit te doen, gaan we naar elk beladres en installeren we pauzes. Kopieer het eerste adres en klik Ctrl+G, plak en druk op Enter. Ollie springt onmiddellijk naar het ingevoerde adres. Klik F2(pauze) en doe hetzelfde met alle anderen telefoongesprek'ami.

    Laten we nu de vorige foutopsporing voltooien door te klikken Ctrl+F2(Resetten). En laten we opnieuw beginnen ( F9). We zien dat er een pauze is opgetreden op adres 005F0D6A. Het is mogelijk dat er na de controle nog meer volgt, dus u moet nog niet te enthousiast worden. Laten we het proberen NEE geef deze oproep.

    En voila: FIFA startte perfect, zelfs zonder schijf. Nu kun je genieten van het trots gekraakte spel ;-)

    Laten we het laatste voorbeeld wat zwaarder nemen. Het spel heet: "Deer Hunter 2004". Degenen die Engels kennen, zullen raden dat dit de jacht op herten is. Het spel is oud, maar zeer realistisch.

    Hier. Het probleem hier is dat het spel zonder schijf draait. Echter hetzelfde als met de schijf. Maar onze piraten, die dit spel blijkbaar schaamteloos hebben gestolen, hebben niet gemerkt dat het spel zonder schijf alleen beschikbaar is als clientversie. Dat wil zeggen dat dit spel alleen kan worden gespeeld door verbinding te maken met een lokale of internetserver. Dit bericht laat dit zien:

    Laten we gaan... Het programma is op geen enkele manier gecomprimeerd en is geschreven in MS Visual C++ 7.0. Geweldig.

    Het probleem is dat we een schijfverificatiecontrole moeten vinden. Omdat zelfs als ik de gekochte schijf in mijn cd-rom plaats, vindt de game deze nog steeds niet of ziet hij dat deze niet origineel is. Het is oké, we zullen het hem laten zien ;-)

    In deze schermafbeelding (afkorting van Screenshot) kun je zien dat de knoppen “Create a server” en “hunt” zijn uitgeschakeld. En alleen degene die verantwoordelijk is voor het verbinden met de server is niet gedoofd.

    Oké, laten we aan het werk gaan. Laad DH2004.exe in Ollie en zoek naar tekstlinks. Om niet te lijden en door de hele dikke lijst met links te bladeren, kunt u op rechts drukken -> Tekst zoeken -> "En voer een zin in" en als er meer dan één link is, drukt u op rechts -> Zoeken naar volgende.

    Ik zocht liever op het citaat “Wil je”. Bovendien waren er direct naast links links uit dezelfde dialogen over de afwezigheid van schijven:

    0040D232 push DH2004.00561B08 ASCII "Wil je spelen zonder de CD-ROM? Je kunt alleen meedoen aan lokale games."

    0040D252 push DH2004.00561B50 ASCII "Deer Hunter 2004 CD-ROM niet gedetecteerd"

    0040D257 push DH2004.00561ADC "Plaats de Deer Hunter 2004 CD-ROM!"

    We zien hoe de boodschap hier wordt samengesteld. Nu zijn we niet op zoek naar een korte sprong. Omdat een korte zal ons niet uit de dialoog halen. Hier zijn alle sprongen, van onder naar boven (in omgekeerde volgorde) tot de eerste lange:

    0040D226 |. 74 28 | je korte DH2004.0040D250

    Het springt over onze dialoog heen, maar produceert een soortgelijke dialoog:

    0040D21D |. EB 56 | jmp kort DH2004.0040D275

    0040D21B |. 74 02 | je korte DH2004.0040D21F

    Cyclussprongen... En tot slot:

    0040D1E0 |. 0F84 8F000000 | je DH2004.0040D275

    Zoals je kunt zien, is het duidelijk niet kort. Vervangen door jn, we proberen en... HOERA:

    Klik op “jagen!” en geniet van het spel. Het netwerk werkt ook, geverifieerd.

    Als je een goede crack wilt maken die niet veel in beslag neemt en die het spel handiger zou kraken (dat wil zeggen, zonder het uitvoerbare bestand te vervangen), dan kun je het hulpprogramma "PatchCreationWizard" gebruiken. Die kleine programma's kunnen maken die precies die bytes in het uitvoerbare bestand zullen veranderen die je hebt gewijzigd toen je kraakte. Vervolgens hoeft u alleen maar aan te geven waar het bestand dat u gaat patchen zich bevindt en op “Patch” te klikken.

    Laten we een volledig voltooide crack maken voor onze "Hunter". Ik hoop dat je zelf hebt geraden om alle wijzigingen in een ander bestand op te slaan (ik heb deze traditie als DH2004(c).exe).

    Nu starten we PatchCreationWizard, klikken op Volgende, selecteren "Byte Patch", Vervolgens schrijven we in het veld "Your Handle" onze trotse bijnaam of andere belangrijke informatie, in "Doeltitel" is er ook zoiets, nou, ik' Ik ben gewend om daar " Crack on..." te schrijven, en in het veld "Doelbestand" moet je de naam invoeren van het bestand dat we gaan patchen.

    Klik op Volgende, klik op de knop "Bladeren" rechts van het veld "Origineel bestand" en geef dienovereenkomstig het originele, niet-gekraakte bestand aan (in ons geval DH2004.exe); klik vervolgens op “Bladeren” rechts van “Patched File” en selecteer het gekraakte bestand (DH2004(c).exe).

    Klik nog een laatste keer op Volgende en wacht tot onze patch is gegenereerd. Nu is het bestand patch.exe in de spelmap verschenen. Laten we het lanceren. Hij is geweldig in het patchen van het spel.

    Nu, nadat je het spel hebt geïnstalleerd, hoef je het alleen maar in de gamemap te plaatsen, het te starten en op "Patch" te klikken. En het spel zal met succes worden gecrasht. De crack (patch) zal nu slechts 5 KB in beslag nemen (ongeveer), in plaats van het volume van de volledige exe (1,7 MB – Deer Hunter; 5,2 MB – FIFA, 15 MB – Heroes of M&M). Aanzienlijk verschil.

    Maar we moeten niet vergeten dat dit illegaal is en wordt vervolgd door het Wetboek van Strafrecht van Oekraïne. Maar het is nog steeds zonde als je een game koopt en er niet eens een schijf bij zit. We moeten eruit.

    En nu zal ik schrijven over bescherming tegen deze wetteloosheid. Ik zal geleidelijk beginnen met de zwakste en meest ineffectieve. Een van de meest primitieve is bescherming door een wachtwoord te genereren, niet uit het niets, maar op basis van de gebruikersnaam of het computer-ID. Dit elimineert de mogelijkheid om hetzelfde wachtwoord op verschillende computers te gebruiken. Maar als het wordt gekraakt, is het net zo eenvoudig als het gebruik van alleen een wachtwoord.

    Om crackers te verwarren, maken ze niet slechts één wachtwoordinvoerveld, maar 3-6. Het is verwarrend omdat er net zoveel vergelijkingen zijn. Dat wil zeggen, je moet niet slechts naar één "vork" zoeken, maar naar maar liefst zes, die de programmeurs op totaal verschillende plaatsen hadden kunnen plaatsen. Maar voor een ervaren kraker zal dit nog steeds geen groot probleem vormen.

    De truc is om na het invoeren van het wachtwoord om een ​​herstart te vragen, of in ieder geval het dialoogvenster voor het invoeren van het wachtwoord te sluiten (zonder "Hoera! Het wachtwoord is correct" of "Helaas heb je het wachtwoord niet eens 132 keer geraden" ;-) ). Het zal voor een cracker moeilijk zijn om de controle te onderscheppen na het invoeren van een wachtwoord, laat staan ​​een “fork” te vinden, omdat hij zal niets hebben om van uit te gaan om een ​​vergelijking te vinden.

    Een betere bescherming is om alleen via internet te activeren, omdat... dan hoeft de cracker alleen maar over de "uitgang" naar het internet te springen en de vlag terug te geven dat het wachtwoord correct is, of het programma helemaal aan het begin te veranderen, waar het zichzelf controleert op activering bij het opstarten. U moet ook anti-foutopsporingscodesegmenten gebruiken. Die controleren of de debugger in het systeem actief is, en als dat zo is, sturen ze het programma een commando om de werking te weigeren. Of segmenten die een uitzondering veroorzaken die niet kan worden overgeslagen.

    Nou ja, bijna de beste bescherming is het comprimeren van programma's met een aantal onbekende packers, zoals Armadillo. Waarop het zeer moeilijk of bijna onmogelijk is om een ​​uitpakker te vinden. Maar toch zal het, als we het coderingsalgoritme kennen (zien), niet moeilijk zijn voor ‘superieure geesten’ om de omgekeerde koers te schrijven.

    Het is ook belangrijk om hulpprogramma's te gebruiken die de header van het bestand verbergen/nabootsen, namelijk het deel waar het is geschreven en met welke packer het is gecomprimeerd. Dat wil zeggen dat u in PEiD zult zien dat het bestand op geen enkele manier is gecomprimeerd of “like” is gecomprimeerd door de packer wiens naam u in dit programma hebt ingevoerd.

    Hier zijn de bekendste: DotFix FakeSigner, StealthPE, HidePE. De laatste twee zijn beide producten van hetzelfde bedrijf en hebben dezelfde functie, ze zijn gewoon allebei gemaakt om meer geld te verdienen.

    Maar de beste voor vandaag is natuurlijk DotFix FakeSigner. Het omvat zowel kopvervalsing als anti-foutopsporingsbescherming. En voor games van vandaag is de beste bescherming “StarForce”, die ook wordt verbroken, maar door heel weinig mensen. Omdat De bescherming is gebaseerd op het verlagen van de aandrijfsnelheid en het reflecteren van de laser vanaf een speciaal schijfspoor onder een bepaalde hoek...

    Nou, dat is alles. Dat is genoeg voor vandaag. In het volgende artikel zal ik je waarschijnlijk vertellen over het hacken van StarForce en over de beste methode om software te beschermen: een virtuele machine.

    OK. Tot ziens en tot ziens in onze gratis literaire ruimte. ;-) Doei! Ik was bij jou Uncr0wneD.

    ZY Dit artikel moet uitsluitend voor informatieve doeleinden worden beschouwd. De auteur draagt ​​geen enkele verantwoordelijkheid.