Kysymys:
Kuinka erottaa erilaiset mikrokontrolleriperheiden heksatiedostot?
Abdul Rehman
2013-03-24 21:25:06 UTC
view on stackexchange narkive permalink

Onko jollain tavalla mahdollista erottaa erilaiset mikrokontrollerin heksatiedostot? Minulla on hex-tiedosto ja nyt olen unohtanut minkä mikro-ohjaimen se kuuluu. Onko käytettävissä mitään työkalua tämän kertomiseen? tai vinkkejä tai temppuja tietää?

Muokkaa: Samankaltainen kysymys on täällä, mutta tämä kysymys kuuluu nimenomaan PIC-perheelle, kun taas mitä jos meidän on tehtävä ero erilaisista perheistä AVR, 8051, PIC jne.

Aiheeseen liittyvä: http://reverseengineering.stackexchange.com/q/233/187
Ehkä voisit jo määritellä mikro-ohjaimen tuotemerkin? ARM, PIC, ..?
Olen muokannut kysymystäni ja tehnyt siitä selkeämmän
Ehkä joku voisi antaa yhteisiä tavumalleja, jotka todennäköisesti näet eri arkkitehtuureille? Onko tämä kysymys, jonka kysyt?
Kolme vastused:
perror
2013-03-24 22:39:43 UTC
view on stackexchange narkive permalink

Ensimmäinen ajatukseni olisi suorittaa taajuusanalyysi kohdistetuilla tavuilla. Useimpien kokoonpanokielien kohdalla tärkeimmät tavut on kohdistettu merkittävimpiin bitteihin.

Joten voi olla melko helppoa luoda erotin, joka tunnistaa asm-tyypin. Mutta yllättäen, muutaman Googlen jälkeen en löytänyt mitään työkalua tai paperia tästä ...

Ehkä täällä on jotain tekemistä.

Dougall
2013-03-25 05:51:31 UTC
view on stackexchange narkive permalink

En tiedä tätä varten suunniteltuja työkaluja. Käytännössä sen lataaminen IDA: han (tai mihin tahansa muuhun purkimeen) eri arkkitehtuureilla, kunnes se näyttää oikealta, on luultavasti helpoin tapa tehdä se. Saatat pystyä kirjoittamaan komentosarjan tämän automatisoimiseksi.

Jos haluat rakentaa oman työkalun, suosittelen tutustumaan Christopher Domaksen puheeseen "RE-dynaamisen binaarisen visualisoinnin tulevaisuus". Siinä käsitellään useita tekniikoita, joita voidaan käyttää tuntemattomien tietojen analysointiin. Yleinen ajatus kuvaa kunkin tiedoston kahden tai kolmen tavun ryhmän taajuutta. Kaaviot eroavat selvästi eri arkkitehtuureista, ja niitä voidaan käyttää tunnistamaan tietotyypit automaattisesti. Varsinainen työkalu ja tarvitsemasi tietojoukko eivät ole julkisesti saatavilla, mutta näin menisin, jos haluan tehdä automaattisen arkkitehtuurin tunnistuksen.

Yksinkertaisempi tapa olisi etsiä funktion prologia malleja eri arkkitehtuureissa. Vaikka toteutus on yksinkertaisempaa, tietojoukon valmistelu vie enemmän ihmisaikaa (koska funktioprologien tunnistamista ei voida automatisoida). Jotkut prosessorit eivät välttämättä ole riittävän tehokkaita C-koodin suorittamiseen, ja jos koodia ei käännetä, on mahdollista, ettei toiminnoilla ole ennustettavia prologeja. Saatat löytää muita yleisiä toimintoja, joita voit etsiä.

Ensimmäinen ajatukseni oli myös Domaksen Cantor Dust -työkalu, mutta en näytä löytävän demoversiota verkosta missään. Ilman sitä yksinkertainen 2 tai 3 tavun sekvenssin histogrammi tiedostossa voi antaa nopean kuvan millaista dataa siinä on ja johtaa joihinkin yleisiin ohjeisiin. Joissakin hex-muokkaimissa on sisäänrakennettu histogrammitoiminto, jos et halua kirjoittaa omaa työkalua.
@nopnopgoose Cantor Dustin 'demo / alfa' -versio voidaan ladata [black hat media -arkistoista] (https://media.blackhat.com/bh-us-12/Arsenal/Domas/_cantor.dust_.7z.zip ). Jos nimät binaarisi uudeksi nimeksi "visual_re.example" kohdassa / resources /, voit leikkiä sen kanssa vähän.
Drew DeVault
2013-03-25 00:28:54 UTC
view on stackexchange narkive permalink

Yritä saada käsitys siitä, minkälaisiin suorittimiin se voisi kohdistaa. Voit todennäköisesti arvata myös suorittimen bittipituuden katsomalla tätä tiedostoa (file_size% 32 == 0? Todennäköisesti 32 bittiä). Kun sinulla on yksinkertainen luettelo, suorita binaari joidenkin purkajien läpi ja katso, onko koodilla järkevää. Yritä käyttää sitä joissakin emuloiduissa suorittimissa ja katso, toimiiko se jotain.

Pidä myös mielessä, että virheelliset ohjeet eivät välttämättä tarkoita, että sinulla on väärä suoritin, se voi olla vain tietoja tai jotain. Todellakin kannattaa tarkistaa tiedosto, jos et löydä merkkijonoja tai mitään, vain saadaksesi paremman käsityksen asioiden sijainnista.

Puhumme tässä mikrokontrollereista, siellä on myös 8-bittisiä ja 16-bittisiä MCU: ita. Tässä ei ole kyse tietokoneesta.
Voi, lukekaa kysymys väärin. Anteeksi.


Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 3.0-lisenssistä, jolla sitä jaetaan.
Loading...