View Single Post
m0b
m0b's Avatar
DonorAdministrator
Disclaimer: I denne guiden vil jeg ta for meg hvordan man kan cracke og/eller modifisere flash filer til det man selv vil de skal gjøre. Dette kan være nyttig å kunne dersom man enten ønsker å vinne konkurranser eller toppe highscore lister. Jeg har skrevet det slik at jeg opplyser om flere muligheter som finnes, men jeg vil kun gå litt i detalj på én av dem. Jeg oppfordrer deg heller ikke på noen måte å gjøre dette, jeg gjør faktisk det stikk motsatte. Ikke crack! Ikke hack! Det du gjør er ulovglig og du blir før eller siden nødt til å betale for det du gjør! FY!

Dette er ingen heksekunst i seg selv. Det du trenger er en disassembler, en dose tolmodighet og en kurv nyplukket logisk sans.

Vi er så heldige at til dags dato kan man "dekompilere" flashfiler til et format man kan lese. Dette kan vi eksempelvis gjøre med en disassembler kalt flasm. Flasmkan du hente ned fra www.nowrap.de og jeg anbefaler deg å lese igjennom hvordan man bruker den, og hvordan man leser koden(jeg kommer ikke til å gå inn på flasm språket hverken i detalj eller i det hele tatt).

Først og fremst finner vi ut hva vi vil cracke , deretter prøver vi det litt ut og tenker litt på hva vi kanskje kan gjøre med dette. Vi ser at en velkjent sjokoladefabrikk har en konkurranse gående og vi har litt lyst til å vinne den, har vi ikke? Konkurransen er altså et spill, og det er om å gjøre å fullføre spillet på kortest mulig tid. Vi må først gjøre oss litt kjent med spillet, så v i kjører igjennom det et par ganger.

Spillet går ut på å snu brikker og memorisere bildene, og tilslutt finne alle bildene(You all know the game). Vi ser at det er en teller som tar tiden vi bruker på fullføre spillet. Når vi er ferdige å spille, stopper telleren og vi får muligheten til å sende inn tiden vår, med navn og adresse. Vent litt, sende inn sa jeg? Vi bruker litt av vår fornuftige sans til å tenke oss at det ikke er usannsynlig at de har en server som mottar tid, navn, adresse og all annen unyttig informasjon. Men hvordan gjør de dette? Mulighetene er mange.

De mulighetene jeg umiddelbart tenker er enten skjulte felter med POST, som sendes til en side, eller noe så enkelt som en asp eller php side som tar imot varabler direkte i urlen. Det er også mulig at det opprettes kontakt til en database som den sender inn svarene til. Uansett hvilken løsning de har valgt å bruke så kan vi alltids finne ut av dette i selve flash fila.

Nå er selvfølgelig ikke dette den eneste muligheten til å finne ut hva som skjer. Vi vet at alle flashfiler kjøres lokalt på din pc gjør vi ikke? Det vil bety at det på en eller annen måte må sendes data fra din pc og til serveren, hvordan kan vi snappe opp den? Svaret er like enkelt som det er genialt, vi bruker ettercap. Ser på dataen som sendes, og prøver å gjøre det samme. Jeg går ikke i detalj på dette, for det er ikke det jeg er interessert i å skrive akkurat nå.

Tilbake til flash fila
Jeg sporet litt av, men nå skal vi tilbake til å tenke og se litt på selve flash fila. Vi vet allerede at det sendes inn svar. Vi har faktisk flere muligheter med denne konkurransen. Vi kan manipulere selve spillet og gjøre det lettere å fullføre det eller vi kan overvåke dataen som sendes inn , og sende inn de svarene vi vil ha(for eksempel med ettercap).

Jeg har lyst til å gå for første mulighet, har ikke du? Klart du har, dette innebærer manipulering av kode.

Så, hvordan ønsker vi egentlig å manipulere spillet? Her er også mulighetene mange; Vi kan enten sette tiden til å være fast, slik at vi kan sende inn den tiden vi selv ønsker. Vi kan gjøre slik at dersom vi trykker på en knapp så er spillet ferdig. Vi kan modifisere spillereglene slik at vi kan fullføre spillet kjappere.

I og med at vi vet fra vi spilte spillet, at det er 6 x 6 brikker totalt i spillet så tenker jeg vi kanskje skal modifisere spillereglene litt. Hva med 2 x 2 ruter vi spiller med? Dette vil da gi oss en solid fordel i forhold til de andre som spiller på normal måte.

The good stuff
Vi vet at alle flash spill lagres på disken, vi kan gå i temporary internet files for å hente det Eller dersom vi er late, bare hente ned spillet manuelt. Vi kan finne adressen til flash fila ved å høyreklikke og deretter til view source. Antar at du er i stand til å finne og hente det ned selv. Flasm som jeg tidligere snakket om har du selvfølgelig hentet ned, og lest dokumentasjonen? Ok.

Klare til aksjon går vi i ledeteksten (cmd.exe) og går til mappen vi har lagt flasm og flash fila. Vi kjører kommandoen

Kode

flasm.exe -d godterispill.swf > godterispill.flm
Dette resulterer i at vi dumper all data inn i filen godterispill.flm. Som tidligere nevnt så vil det være leselig tekst, da vil det være naturlig at vi åpner opp .flm fila i notepad eller lignende program. Hva ser vi? Åja, en rekke kode (dette kan du selvfølgelig fra før, ettersom du hører på hva jeg sier og allerede har gjort deg kjent med flasm språket

Det er nå vi må ta på oss tenkehatten litt, vi gjør oss litt kjent med koden i spillet og prøver å se for oss hva som skjer. Vi ser på de forskjellige variablene og hva de heter, dette kan gi oss noen solide hint om hva vi leter etter. Siden vi vil forandre på antall brikker så er vi på utkikk etter ting som har med X og Y akser å gjøre, og som sannsynligvis har verdien 6.

Vi scroller nedover og vi ser variabler som heter ting som iTotalYblocks og iTotalXblocks. Dette virker interessant.

Kode

constants 'iStartX', 'iStartY',
 'iTotalXBlocks', 'iTotalYBlocks',
 'shuffleArray', 'Array', 'i', 'length', 
'trycount', '0', 'GameCount', 'CountX', 
'CountY', 'CurrentCount', '/Card0',
 'Card', '/Card', 'GetCard', 'MyCard',
 '/:NewCard', '  ', ' ', 'Card ', ' is number ',
 'ClickCount', 'FirstClick', '', 'on', 'klokke',
 'gotoAndStop', 'baseTimer'
Vi har nå funnet de variablene som har noe å si for selve spillets gang. Vi går enda litt mer ned, og tror du ikke at vi er så heldige at vi finner dette:

Kode

    push 'iTotalXBlocks', 6
    setVariable
    push 'iTotalYBlocks', 6
    setVariable
Coincidence? I think not!
Vi prøver å forandre på verdiene til 2? Høres bra ut.

For at vi skal kunne legge inn endringene våre, må vi først lagre forandringene og deretter tilbake til flasm.

Kode

flasm.exe -a godterispill.flm
Forhåpentligvis får vi ingen feilmelding når vi gjør dette. Nå har vi patchet flash fila, og vi prøver å kjøre den i en webbrowser, og jøss - tror du ikke vi nå kan nyte spillet med 2 x 2 ruter? Vi sender selvfølgelig ikke inn svar på 3 og 4 sekunder, dette vil være altfor åpenlyst - vi tenker 30-40 sekunder kanskje kunne vært passende for en ekspert på slike spill. Fyller inn mitt navn, adresse og venter til neste søndag for å se om mitt navn ender opp blandt de beste. Dersom det gjør det så er vi så heldige å få en eske sjokolade i postkassa. Vel bekomme!

Jeg er fullstendig klar over at jeg skriver i det vide og det brede om muligheter, dette er selvfølgelig fordi detter ikke skal være en guide der du kun kopierer og paster 100%. Jeg er også klar over at jeg ikke har gitt overdådig mye informasjon om hvor konkurransen befinner seg, men dette burde du være i stand til å finne ut.

Det skal også nevnes at det støtt og stadig legges ut konkurranser med mer eller mindre svar sikkerhet eller errorcheck. Redzone som Coca Cola drev på med var intet unntak, og jeg har sett X antall bokkonkurranser.
Sist endret av m0b; 30. desember 2007 kl. 18:50.