Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  13 1213
Idag har jeg lekt meg litt med OllyDbg, mest for å lære meg å bruke den. Så i den anledning vil jeg skrive veldig kort og enkelt om hva jeg gjorde. I første omgang gidder jeg ikke forklare så veldig dypt omkring hvorfor jeg gjør ting og oppgir heller ikke noen adresser i programmet som vil være veldig versjonsbestemt, dere får heller spørre i tråden

Det å ha lest den gamle tråden om cracking av Hex Workshop vil være en stor fordel.

WinZip 8.0
Her tenkte jeg først jeg bare skulle finne en gyldig registrasjonsnøkkel. Det burde være grei skuring tenkte jeg når jeg startet OllyDbg og lastet inn WinZip.exe.

Først måtte jeg ordne meg noen breakpoints så jeg kunne begynne å lese hvor WinZip hentet inn sine variabler for å validere det jeg skriver inn. Et breakpoint forteller debuggeren(OllyDbg) hvor den skal bryte inn i kjøringen og la meg se hva som skjer. Av erfaring så tenker jeg at WinZip bruker User32 APIen GetDlgItemTextA for å hente inn det jeg skriver i dialogboksen.

Jeg trykker CTRL+N i OllyDbg for å få opp en liste over alle "names" den finner i WinZip.exe. Ved å sortere på "Name" finner jeg fort fram til user32.GetDlgItemTextA og ved å høyreklikke på den og velge "Set breakpoint on every reference" får jeg et breakpoint på alle plasser som bruker GetDlgItemTextA.

Da er jeg klar til å kjøre WinZip og trykker F9(Run). WinZip starter, jeg finner fram registrasjonsskjermbildet på "Help" menyen og skriver inn "Brukernavn" som navn og "123456" som registrasjonsnummer. I dét jeg trykker OK bryter OllyDbg av og jeg kan se at "Brukernavn" som jeg nettopp skrev inn ligger i et register. Det forteller meg at WinZip har tenkt å sammenligne det jeg skrev inn med noe den generer.

Ved å trykke F8(Step Over) så kjører jeg programmet steg for steg. Grunnen til at jeg bruke Step Over og ikke Step Into er at jeg i første omgang ikke er så interessert i hva som skjer i subrutinene så jeg vil ikke se hva som skjer ved "Calls". Etter noen steg så ser jeg WinZip sammenligner "Brukernavn" med strengen "MuradMeraly" som den har skaffet fram fra et sted. Det vil jo selvsagt ikke gå, men nå er jeg først og fremst ute etter hva den sammenligner registrasjonsnøkkelen med.

Ved å gå videre steg for steg så ser jeg "123456" blir lastet inn i registeret og etterhvert kommer det også "50785491" inn i registeret og blir sammenlignet med min "123456". Aha , tenker jeg og fjerner alle breakpoints(ctrl+n, høyreklikk på user32.GetDlgItemTextA og "Remove all breakpoints") og trykker F9(Run) igjen.

WinZip forteller meg at registreringen var mislykket, men nå prøver jeg igjen. Denne gangen skriver jeg inn "Brukernavn" og "50785491" og trykker OK. Og jaggu så får jeg opp en meldning om at registeringen var vellykket. Avslutter WinZip og OllyDbg og når jeg starter WinZip igjen så er alle nagscreens borte og jeg har en registrert WinZip

FlashFXP
Denne var litt spesiell, siden jeg er så veldig glad i å lese at jeg er på dag 1437 av min 30 dagers evalueringsperiode så ville jeg gjerne beholde meldinga, men fjerne den 30 sekunders ventetida. Igjen opp med OllyDbg og lastet inn FlashFXP.exe.

Timere hadde jeg aldri debugget etter før og lurte igrunn veldig på hvordan jeg skulle angripe denne problemstillingen. Men jeg fant fram listen over API-kall(ctrl+n) og begynte å lete etter "SetTimer", "GetTimer" og "Timer" siden det var de 3 mest logiske alternativene jeg kunne tenke meg. Og der fant jeg jaggu en User32.SetTimer og jeg satte breakpoints på alle.

Ved å starte FlashFXP(F9) så kom skjermbildet opp og OllyDbg avbrøt kjøringen på en SetTimer. Jeg begynte å trykke F8(Step Over) og tenkte først at jeg skulle finne ut hvor de 30 sekundene kom fra. Men etter å ha gjort dette mange ganger ble jeg ikke noe særlig klokere da jeg rett og slett ikke skjønte hva FlashFXP drev med. Alt jeg så var at antall sekund kom fra ESI-registeret.

Da tenkte jeg det var best å skifte taktikk og se om jeg ikke kunne finne en annen måte å omgå telleren på. Jeg kunne ikke endre PUSH ESI(som anga antall sekund til timeren) til NOP uten å ødelegge hele rutinen rundt. Tilfeldigvis la jeg merke til at EAX-registeret ble tømt litt lengre opp og dermed var 0000000.

Ved å trykke mellomrom når linja som inneholder PUSH ESI er market får jeg opp en dialogboks hvor jeg kan endre linja. Jeg endret PUSH ESI til PUSH EAX, fjernet alle breakpointene og kjørte FlashFXP(F9). Og da kom dialogboksen opp uten 30 sekunds nedtelling

Ved å høyreklikke på den samme linja og velge "Copy to Executable->Selection" og lukke vinduet som da spretter opp gjorde jeg endringen permanent og oppdaterte FlashFXP.exe.

Noen ord
Nå hjelper kanskje ikke denne artikkelen deg så veldig mye i selve debugginga, men jeg ville heller at du leser den også prøver en del på egenhånd. Du lærer ikke så mye om jeg hadde skrevet ned alle adressene og nøyaktig hva du skal gjøre. Jeg tror det er verdt å gjøre et forsøk iallefall. Det er uansett bare å stille spørsmål i tråden så skal jeg og de som kan dette så uhyre mye bedre enn meg hjelpe dere.
Sist endret av TipeX; 16. april 2006 kl. 20:35.
winzip:

brukte winzip versjon 10, skrev inn brukernavn, og kode 123456.
jeg finner ikke dette "murad" greia, men trykker heller f8.
(jeg fant brukernavn og 123456 i debugge programmet)
dette ender med at jeg tilslutt får en melding fra winzip om at
koden er feil.

kunne du gi noe tips om hvor "murad" er hen?
Det fungerte greit, hva skal du med murad teksten?
Sitat av flexd
Det fungerte greit, hva skal du med murad teksten?
Vis hele sitatet...
Ved å trykke F8(Step Over) så kjører jeg programmet steg for steg. Grunnen til at jeg bruke Step Over og ikke Step Into er at jeg i første omgang ikke er så interessert i hva som skjer i subrutinene så jeg vil ikke se hva som skjer ved "Calls". Etter noen steg så ser jeg WinZip sammenligner "Brukernavn" med strengen "MuradMeraly" som den har skaffet fram fra et sted. Det vil jo selvsagt ikke gå, men nå er jeg først og fremst ute etter hva den sammenligner registrasjonsnøkkelen med.


Jeg finner den bare ikke.
jaja, men antar det er en random string siden de har skaffet den fra noe sted, hvorfor se etter den når du kan se etter regkeyen du skrev inn?
Nub!
TipeX's Avatar
Trådstarter
Nå var dette WinZip 8.0 så jeg kan ikke garantere at det er likt i 10. Men egentlig så trenger du ikke å bry deg om brukernavnet fordi du må bruke "Brukernavn" som brukernavn neste gang også. Registrasjonsnøkkelen og brukernavnet er avhengig av hverandre og hadde jeg brukt MuradMurlay ville jeg fått en annen nøkkel igjen.
Jeg lurer på en ting angående crackinga av FlashFXP; Hvordan kom du på å skifte fra ESI til EAX, og hva disse to ordene egentlig betyr. For å si det sånn: Jeg hadde aldri tenkt tanken å skifte, og det henger nok sammen med at du har vært borti dette tidligere
Kan være det er noe å lære på f.eks www.fhcf.net, mange resurser rundtforbi. Er litt kjedelig at det er så mye nytt og vanskelig i nyere programmer :/

Hiew er forøvrig min one-choice hex-editor, søt liten gammel sak som gjør det meste
Kan også prøve å disassemble exe-filen om en ikke er comfy med realtime debugging, eller en kombinasjon. w32dasm er koselig, IDA pro er også god
Sist endret av ProZhen; 18. april 2006 kl. 00:24.
Finfin guide TipeX
Kan ikke noen bare feie over WinZip 10 og bare si hva jeg skal se etter?
A Real Human Bean
Mullah's Avatar
Donor
Hva for en version av FlashFXP er det snakk om her forresten?
Nub!
TipeX's Avatar
Trådstarter
FlashFXP 2.0 RC3(876), men jeg fant ut at hacken min hadde en skitten bieffekt Den samme timeren blir brukt i til andre oppgaver, som f.eks. anti-idle funksjonen. Og da bruker selvsagt også den samme register så den vil sende en anti-idle kommand hele tiden.
Halla

Takker for nice guide/prog, jeg fikk det til her også på 8.0 av winzip, selv med litt "juks" brukte samme som deg på brukernav/passord, men har litt dårlig tid nå, skal på jobb om ti min

Skal teste ut dette mere i kveld etter jobb

mvh DrDoc
jeg finner brukernavn og 123456, men jeg overser den koden den skal sammenligne med.
kan ikke noen bare ta en screendump og bare merke tydelig av hvor det er?