Hvilke værktøjer og teknikker findes der til enten at dekompilere eller analysere bytekoden i en SWF-fil? Hvilke ressourcer har reverse engineer til rådighed for at lære mere om SWF-interner?
Hvilke værktøjer og teknikker findes der til enten at dekompilere eller analysere bytekoden i en SWF-fil? Hvilke ressourcer har reverse engineer til rådighed for at lære mere om SWF-interner?
Der er et godt værktøj flasme, som er open source og indeholder både flash-assembler og disassembler. Og flare, som er gratis, men lukket kilde, og indeholder flash-dekompiler. Det ser ud til, at begge er opgivet (sidste opdatering fra 2007) og ikke understøtter ActionScript 3, men måske kan nogen udvide dem.
Først vil jeg anbefale at læse gennem specifikationerne for SWF-filformat og ActionScript. Jeg vil ikke anbefale at læse det hele (det bliver kedeligt). Bare de første tre eller fire kapitler. Dette vil hjælpe med at have et fundament af viden om strukturen og nøgleordene. Her er de to, jeg vil anbefale.
SWF-filformat PDF, Oversigt over ActionScript Virtual Machine 2 (AVM2) PDF
Når du har et grundlag for videnkontrol ud nogle indlæg på Flash-udnyttelser. Her er en liste over indlæg i ingen bestemt rækkefølge eller værdi 1, 2, 3, 4, 5, 6, 7. Søgning i RE Reddit er også en anden god ressource til SWF / Flash-analyse.
På godt og ondt er der gjort meget stort arbejde af udnyttelsesfællesskabet til reverse engineering SWF / ActionScript / Flash / osv. Der vil jeg anbefale et antal forskere at google forfølge deres arbejde. Haifei Li er en bemærkelsesværdig person. En hurtig google-søgning efter filtype: PDF + "Haifei Li" vil give mange gode ressourcer. Eksempel: link.
HVIS du er træt af at læse, vil jeg anbefale at downloade nogle eksempler. Contagiodump er et godt sted at hente prøver. Prøven har typisk det korrekte CVE-nummer. Dette kan være nyttigt, fordi en hurtig google af CVE-nummer + "analyse" gør det muligt for dig at gøre hjemme-versionen. Selvfølgelig har du brug for værktøjer. Jeg personligt vil anbefale REMnux af Lenny Zeltser. Næsten alle de værktøjer, der er anført i denne tråd, er allerede installeret i den. Hvis du arbejder med SWF'er indlejret i dokumenter, vil jeg anbefale xxxswf.py til udpakning af dem. Kildekoden er ikke så dårligt kommenteret, så det giver dig nogle grundlæggende oplysninger om filstrukturen. Ansvarsfraskrivelse: mit værktøj.
Et par værktøjer, der ikke er anført, som jeg vil anbefale, er Flash Decompiler af Trillix og Yogoda. Begge disse værktøjer er til Windows.
Brugte SWFWire Debugger en gang til at udtrække en AES-nøgle fra et flashspil. Det kan spore funktioner og deres parametre under udførelse. Jeg finder det yderst nyttigt.
Tjek Sebastian Porsts arbejde [1] (se især kataloget / slides for en oversigt, og derefter kan resten af koden findes fra roden).
Der er et IDA Pro-plugin, der giver dig mulighed for at adskille SWF-filer ligesom enhver anden eksekverbar.
Der findes allerede mange værktøjer til at gøre dette, gør bare en hurtig google-søgning.
Et eksempel ville være asdec
Også her er et gentaget spørgsmål "gør-en-actionscript-decompiler-get-actionscript-from-dynamically-linked-as-file"
Også Gnash og Lightspark er open source-implementeringer af flash, der burde være interessante.
Jeg har tidligere brugt pakken SWFTools ( http://www.swftools.org) til analyse af swf-filer.
Værktøjet swfextract i den pakke giver dig mulighed for at udpak alle slags artefakter fra en swf-fil.
Værktøjet swfdump i samme pakke kan adskille alle versioner af ActionScript (v1-3). Det pæne ved swfdump er, at det viser output i menneskeligt læsbart p-kode-format, som hjælper meget med analyse.
Der er også kommercielle decompilere som Sothink SWF Decompiler og Flash Decompiler Trillix. Jeg har ingen erfaring med at bruge dem og kan ikke anbefale, hvor godt de fungerer.
Hvis du mest bekymrer dig om den rå kode, kan jeg anbefale dig RABCDAsm
https://github.com/CyberShadow/RABCDAsm
Dette vil generere meget brugbar Actionscript bytecode og giver dig også mulighed for at lappe det tilbage.
Jeg kan godt lide Sothinks Flash Decompiler. Selvom det er kommercielt, er det virkelig det værd, hvis du lejlighedsvis reverse engineer flash-filer.
Den fulde version (som jeg ejer og bruger) kan dekompilere hele SWF-filer tilbage til FLA, understøtter de nyeste versioner af AS (når andre er gratis værktøjer ikke var), giver dig mulighed for at ændre og køre SWF-filer samt oprette en modificeret SWF-version, tillader redigering af alle ressourcetyper (ikke kun kode) og har en fuldstændig funktionsrig GUI.