Author: Potsmoke
Target: AccuQuest v1.0
Tools: SoftIce v4.x

 

Intro

Har du noen gang prøvd å cracke et program der "OK" knappen er disablet?
Du skriver inn username og serial men når du skal trykke på "OK" knappen finner du ut at den er disablet :)
Dette viser seg å være et stort problem for mange da de ikke kan bruke getwindowtexta eller getdlgitemtexta siden de ikke får trykket på "OK" knappen.
Programmene er nok laget slik for å stoppe en del crackere, programmet enabler først "OK" knappen når serialen du har skrevet inn er riktig, det vil jo egentlig si at programmet sjekker serialen vår hver gang vi skriver inn et tegn/tall.
Jeg skriver egentlig denne tutorialen for å slippe å svare på det samme spørsmålet hver gang, folk som har spurt meg hvordan de skal komme forbi denne type beskyttelse har jeg gitt svaret bruk hmemcpy og da har de ikke skjønt noe mer av den grunn, da vet de sikkert ikke hvordan hmemcpy fungere men det skal vi se litt mer på nu :)

Tutorial

Ikke bry deg om selve programmet, det er gammelt og stygt men vi er kun ute etter et program med disablet "OK" knapp så for oss betyr det ikke noe.
Dette programmet har ingen "OK" knapp men det har to disablede knapper som du kun får brukt hvis du vet hva Administrator passordet er, dette passordet kan jo vi prøve å finne.
Beskyttelsen på dette programmet fungerer mer eller mindre som et program som enabler "OK" knappen når username/serial er riktig, håper eksempelet duger og at du skjønner hvordan du skal komme deg forbi slikt neste gang du møter på det.
Først av alt begynner vi med å skrive inn Administrator Password (Serial i et vanlig program) jeg velger 112288 som passord, det er viktig at du skriver inn dette før vi setter breakpoint ellers vil det ikke fungere.
Etter at 112288 er skrevet inn fyrer vi opp SoftIce ved å trykke på Ctrl-D, vi setter et breakpoint på hmemcpy ved å skrive bpx hmemcpy og går ut av SoftIce i det vi trykker F5.
Da 112288 er skrevet inn og du har satt breakpoint på hmemcpy legger du til et tall etter 112288 slik at det feks blir 1122889, hvilket tallet du legger til er ikke så viktig men du må legge til et tall.

Akkurat i det du legger til dette ekstra tallet etter 112288 popper SoftIce opp, hvorfor? Fordi breakpoint på hmemcpy vil si at softIce skal poppe opp når data blir flyttet rundt i minnet eller noe i den duren (hmemcpy - CopyMemory?), prorgrammet sjekker jo hele tiden om serialen/passwordet vi har skrevet inn er riktig, den sjekker hver gang vi skriver inn et nytt tegn/tall.
Vi havner som vanlig i kernel32 så vi trykker F12 46 ganger for å komme oss inn i program koden, eller trykk F12 til du ser det står ACCUQUEST nede i softice, da ser du dette:


004044CF  8B4508              MOV       EAX,[EBP+08]                      
004044D2  50                  PUSH      EAX                                
004044D3  8B08                MOV       ECX,[EAX]                          
004044D5  FF5108              CALL      [ECX+08]          <--- Stå her og dump
004044D8  8B4DEC              MOV       ECX,[EBP-14]                       
004044DB  8B45FC              MOV       EAX,[EBP-04]                       
004044DE  5F                  POP       EDI                                
004044DF  5E                  POP       ESI                                
004044E0  64890D00000000      MOV       FS:[00000000],ECX                  
004044E7  5B                  POP       EBX                                
004044E8  8BE5                MOV       ESP,EBP                            
004044EA  5D                  POP       EBP                                
004044EB  C20400              RET       0004         

Når du står på CALL [ECX+08] (4044D5) kan du skrive "D ECX" og så scrolle oppover i data window ved hjelp av Alt-PageUp, (jeg har 19 linjers data window og da tok jeg Alt-ArrowUp 48 ganger)
Hvis du ikke gidder å scrolle kan du heller skrive D ECX-3900 mens du står på CALL [ECX+08] (4044D5), dette vil du se når du har scrollet deg frem eller dumpet ECX-3900:


00402174 67 65 00 00 0C 00 7C 00-00 00 00 00 00 00 00 00  ge....|.........
00402184 00 00 00 00 00 00 00 00-E1 4E AD 33 99 66 CF 11  .........N.3.f..
00402194 B7 0C 00 AA 00 60 D3 93-D9 4E AD 33 99 66 CF 11  .....`...N.3.f.. 
004021A4 B7 0C 00 AA 00 60 D3 93-F1 4E AD 33 99 66 CF 11  .....`...N.3.f.. 
004021B4 B7 0C 00 AA 00 60 D3 93-08 00 00 00 20 00 2D 00  .....`...... .-. 
004021C4 2D 00 20 00 00 00 00 00-0E 00 00 00 31 00 31 00  -. .........1.1. <-- Hmm.... rips?
004021D4 37 00 38 00 36 00 39 00-36 00 00 00 56 42 41 35  7.8.6.9.6...VBA5 <--
004021E4 2E 44 4C 4C 00 00 00 00-5F 5F 76 62 61 53 74 72  .DLL....__vbaStr 
004021F4 43 6D 70 00 5F 5F 76 62-61 46 72 65 65 53 74 72  Cmp.__vbaFreeStr 
00402204 4C 69 73 74 00 00 00 00-5F 5F 76 62 61 46 72 65  List....__vbaFre 
00402214 65 4F 62 6A 00 00 00 00-00 00 00 00 5F 5F 76 62  eObj........__vb 
00402224 61 46 72 65 65 56 61 72-4C 69 73 74 00 00 00 00  aFreeVarList.... 
00402234 5F 5F 76 62 61 46 72 65-65 4F 62 6A 4C 69 73 74  __vbaFreeObjList 
00402244 00 00 00 00 5F 5F 76 62-61 46 72 65 65 53 74 72  ....__vbaFreeStr 
00402254 00 00 00 00 5F 5F 76 62-61 56 61 72 43 61 74 00  ....__vbaVarCat. 
00402264 5F 5F 76 62 61 53 74 72-56 61 72 56 61 6C 00 00  __vbaStrVarVal.. 
00402274 5F 5F 76 62 61 45 6E 64-00 00 00 00 5F 5F 76 62  __vbaEnd....__vb 
00402284 61 48 72 65 73 75 6C 74-43 68 65 63 6B 4F 62 6A  aHresultCheckObj
00402294 00 00 00 00 5F 5F 76 62-61 4F 62 6A 53 65 74 00  ....__vbaObjSet.

1.1.7.8.6.9.6 dette er kanskje serialen?
Dette programmet er et visual basic program og da er serialen lagret med mellomrom mellom hvert tegn, serialen er altså 1178696 så skriv den inn og se at de 2 knappene blir enablet, nesten magisk :)

Denne tutorialen var kun ment for å vise hvordan man kommer forbi disablede "OK" knapper så måten jeg fant serialen på er kanskje ikke av de enkleste, jeg vet det finnes et VB triks men jeg orket ikke begynne å forklare hvordan dette fungerer.

Greets

Som vanlig alle i FHCF

Arachno, Charles Manson, Elessar, Glassius, Juice, Kir0N, Melk, SpiritMaster, Stormgren, Viper, ^AlX^
Jeg vil også hilse til Diablo og Aricz som ikke lenger er med oss :( savner dere begge to.
Stor hilsen til ElWolfie :) og en hilsen til Cobb
Takk til Stormgren for rettskrivning av denne tuten, jepp jeg skriver som en fyllik.


Slutt

All kritikk sendes til elessar@runbox.com (som vanlig :)
All positiv tilbakemelding smeller du inn på #Cracking.no

Flere norske og engelske tutorials finner du på www.fhcf.net, du kan også ta turen innom #Cracking.no på IRC EFNet.

Natt.....