Author: | Potsmoke |
Target: | AccuQuest v1.0 |
Tools: | SoftIce v4.x |
|
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 :)
|
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.
|
|
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.....