Laiteohjelmistonäköistiedostojen analysointi
Opitte purkamaan, analysoimaan ja tunnistamaan laiteohjelmistonäköistiedostojen komponentteja Binwalkin kaltaisilla työkaluilla.
Laiteohjelmistonäköistiedostojen analysointi on ilmainen Ohjelmistojen käänteinen suunnittelu ja binäärien analysoinnin perusteet-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Ohjelmistojen käänteinen suunnittelu ja binäärien analysoinnin perusteet-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Ohjelmistojen käänteinen suunnittelu ja binäärien analysoinnin perusteet-kurssilla on yhteensä 4 oppituntia.
Mitä laiteohjelmistokuvat ovat?
Laiteohjelmisto on kuin sulautettujen laitteiden käyttöjärjestelmä. Se on laitteistoon pysyvästi tallennettua ohjelmistoa, joka ohjaa laitteen perustoimintoja. Älytelevisiosta Wi-Fi-reitittimeen laiteohjelmisto saa nämä laitteet toimimaan. Laiteohjelmiston käänteinen suunnittelu auttaa ymmärtämään niiden toimintaa, löytämään haavoittuvuuksia ja jopa muokkaamaan niiden toimintaa.
Laiteohjelmistoa kaikkialla
Laiteohjelmisto ei ole piilossa ainoastaan laitteiden sisällä. Sitä jaetaan usein päivitystiedostoina, jotka voi ladata valmistajan verkkosivustolta. Nämä tiedostot ovat yleensä yksittäisiä binäärejä, jotka voivat olla pakattuja tai salattuja. Yleisiä esimerkkejä ovat reitittimien päivitykset, IoT-laitteiden korjauspäivitykset sekä tietokoneiden BIOS- ja UEFI-päivitykset.
Laiteohjelmistotiedostojen purkaminen osiin
Yksittäinen laiteohjelmistokuva on harvoin vain yksi tiedosto. Se on usein monimutkainen arkisto, joka sisältää useita komponentteja. Siitä voi löytyä käynnistyslatain (käynnistyksen aikainen koodi), Linux-ydin ja yksi tai useampi juuritiedostojärjestelmä. Nämä tiedostojärjestelmät sisältävät yleensä laitteen sovellukset, määritystiedostot ja kirjastot.
Binwalkin esittely
Laiteohjelmistokuvan analysoinnin aloittamiseen tarvitaan työkaluja sen purkamiseen osiin. Binwalk on tähän tarkoitukseen suunniteltu keskeinen avoimen lähdekoodin työkalu. Se etsii binäärikuvasta upotettuja tiedostoja ja suoritettavaa koodia. Binwalk tunnistaa tunnetut tiedostotyypit ja tietorakenteet allekirjoitusanalyysin avulla.
Laiteohjelmistokuvan skannaaminen
Katsotaanpa Binwalkia käytännössä. Helpoin tapa käyttää sitä on antaa laiteohjelmistotiedosto sen käsiteltäväksi. Tämä komento skannaa koko tiedoston ja luettelee kaikki tunnistetut komponentit. Se on ensimmäinen vaihe sen ymmärtämisessä, mitä tiedoston sisään on piilotettu.
binwalk firmware.binSkannaustulosten ymmärtäminen
Kun binwalk on suoritettu, näette taulukon, jossa on kolme pääsaraketta:
- OFFSET: heksadesimaalinen osoite, josta komponentti löytyi.
- DECIMAL: siirtymän desimaalimuotoinen vastine.
- DESCRIPTION: tunnistetun tiedoston tai datan tyyppi (esimerkiksi LZMA-pakattu data tai Squashfs-tiedostojärjestelmä).
Tuloste kertoo tarkasti, mistä laiteohjelmiston eri osat alkavat ja mitä ne ovat.
Tiedostojen purkaminen Binwalkilla
Binwalk ei ainoastaan tunnista tiedostoja, vaan voi myös purkaa niitä. Kun käytätte lippua -e (tai --extract), Binwalk yrittää irrottaa ja purkaa tunnistetut komponentit. Se luo uuden hakemiston, jonka nimi on yleensä _firmware.bin.extracted ja joka sisältää kaiken puretun datan.
binwalk -e firmware.binPuretun laiteohjelmiston tarkastelu
Purkamisen jälkeen näette laiteohjelmiston sisältöä vastaavan kansiorakenteen. Siellä voi olla esimerkiksi:
squashfs-root/: pääasiallinen tiedostojärjestelmä, joka sisältää binäärit, komentosarjat ja määritykset.kernel: purettu Linux-ytimen kuva.- Muita pakattuja tiedostoja tai arkistoja.
Tässä vaiheessa varsinainen syvällinen tarkastelu alkaa, sillä voitte nyt analysoida yksittäisiä tiedostoja.
Manuaalinen purkaminen dd-komennolla
Vaikka Binwalk on tehokas, joskus tarvitaan tarkempaa hallintaa tai se saattaa jättää jotain huomaamatta. dd-komennolla (data duplicator) voi purkaa tiedostosta tiettyjä tavuja. Binwalkin skannauksen OFFSET- ja SIZE-tietojen avulla voitte irrottaa komponentin manuaalisesti.
dd if=firmware.bin of=extracted_part.bin bs=1 skip=12345 count=67890Laiteohjelmiston analysointihaaste
Kuvitelkaa, että suoritatte binwalk-komennon laiteohjelmistokuvalle ja näette merkinnän "Squashfs filesystem" kohdassa OFFSET 0x12345. Mitä tämä tarkoittaa?
Laiteohjelmiston analysoinnin yhteenveto
Tässä oppitunnissa tutustuimme laiteohjelmistokuvien maailmaan sekä niiden rakenteeseen ja merkitykseen. Opimme, kuinka Binwalk on korvaamaton työkalu komponenttien tunnistamiseen ja purkamiseen. Tutustuimme myös manuaaliseen purkamiseen dd-komennolla. Näiden tekniikoiden avulla voitte nyt aloittaa sulautettujen laitteiden laiteohjelmistojen perinpohjaisen tutkimisen!
Opi Assembly tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 12
- Oppitunnit
- 48
Usein kysytyt kysymykset
Onko oppitunti ”Laiteohjelmistonäköistiedostojen analysointi” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Ohjelmistojen käänteinen suunnittelu ja binäärien analysoinnin perusteet-oppimispolun 3 oppituntia, myös oppitunnin “Laiteohjelmistonäköistiedostojen analysointi”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Ohjelmistojen käänteinen suunnittelu ja binäärien analysoinnin perusteet-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Laiteohjelmistonäköistiedostojen analysointi”?
Opitte purkamaan, analysoimaan ja tunnistamaan laiteohjelmistonäköistiedostojen komponentteja Binwalkin kaltaisilla työkaluilla. Harjoittelet Ohjelmistojen käänteinen suunnittelu ja binäärien analysoinnin perusteet-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Ohjelmistojen käänteinen suunnittelu ja binäärien analysoinnin perusteet-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Ohjelmistojen käänteinen suunnittelu ja binäärien analysoinnin perusteet-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”Laiteohjelmistonäköistiedostojen analysointi”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Ohjelmistojen käänteinen suunnittelu ja binäärien analysoinnin perusteet-oppitunnilla?
Kyllä. Jokainen Ohjelmistojen käänteinen suunnittelu ja binäärien analysoinnin perusteet-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Laiteohjelmistonäköistiedostojen analysointi
- Sulautettujen binäärien emulointi
- Laitteistokiihdytteinen virheenjäljitys
- Laiteohjelmistojen tiedostojärjestelmien poiminta ja analysointi