Pitanje:
Kako razlikovati od različitih hex datoteka različitih obitelji mikrokontrolera?
Abdul Rehman
2013-03-24 21:25:06 UTC
view on stackexchange narkive permalink

Postoji li neki način za razlikovanje hex datoteka različitih mikrokontrolera? Imam hex datoteku i sada sam zaboravio kojem mikrokontroleru pripada. Postoji li dostupan alat koji to može reći? ili neki savjet ili trik za znati?

Uredi: Postoji slično pitanje ovdje, ali ovo pitanje posebno pripada obitelji PIC, a ja što ako se moramo razlikovati od različitih obitelji poput AVR, 8051, PIC itd.

Povezano: http://reverseengineering.stackexchange.com/q/233/187
Možda biste već mogli odrediti marku mikrokontrolera? ARM, PIC, ..?
Uredio sam svoje pitanje, čineći ga jasnijim
Možda bi netko mogao doprinijeti uobičajenim uzorcima bajtova koje ćete vjerojatno vidjeti za različite arhitekture? Je li to pitanje koje postavljate?
Tri odgovori:
#1
+6
perror
2013-03-24 22:39:43 UTC
view on stackexchange narkive permalink

Moja prva ideja bila bi provesti analizu frekvencije na poravnanim bajtovima. Za većinu montažnih jezika najrelevantniji bajtovi poravnati su na najznačajnijim bitovima.

Stoga bi moglo biti prilično lako stvoriti razlikovnik koji može prepoznati vrstu asma. Ali, iznenađujuće, nakon nekoliko guglanja, nisam pronašao nikakav alat ili papir o ovome ...

Možda ovdje treba nešto učiniti.

#2
+4
Dougall
2013-03-25 05:51:31 UTC
view on stackexchange narkive permalink

Ne znam za alate dizajnirane za ovo. U praksi je učitavanje u IDA (ili bilo koji drugi rastavljač) s različitim arhitekturama dok ne izgleda ispravno vjerojatno najlakši način za to. Možda ćete moći napisati skriptu za automatizaciju ovoga.

Ako želite izraditi vlastiti alat, predlažem da pogledate govor Christophera Domasa "Budućnost RE dinamičke binarne vizualizacije". Raspravlja o brojnim tehnikama koje se mogu koristiti za analizu nepoznatih podataka. Općenita ideja prikazuje učestalost svake grupe od dva ili tri bajta u svakoj datoteci. Grafovi se razlikuju između različitih arhitektura i mogu se koristiti za automatsko prepoznavanje tipova podataka. Stvarni alat i skup podataka koji će vam trebati nisu javno dostupni, ali to je put kojim bih išao da želim automatsko otkrivanje arhitekture.

Jednostavniji pristup bio bi traženje prologa funkcije obrasci u različitim arhitekturama. Iako je implementacija jednostavnija, za pripremu skupa podataka trebalo bi više ljudskog vremena (jer identificiranje prologa funkcija ne može se automatizirati). Neki procesori možda nisu dovoljno moćni za pokretanje C koda, a ako kôd nije kompiliran, moguće je da nemaju predvidljive prologe funkcija. Možda ćete moći pronaći druge uobičajene operacije koje biste mogli tražiti.

Moja prva misao je bio i Domasov alat Cantor Dust, ali čini se da nigdje ne mogu pronaći demo verziju na mreži. Ako toga nema, jednostavni histogram od 2 ili 3 bajta u nizu u datoteci može dati brzu sliku o vrsti podataka u njoj i dovesti do nekih uobičajenih uputa. Neki hex uređivači imaju ugrađenu funkciju histograma ako ne želite sami napisati svoj alat.
@nopnopgoose 'demo / alfa' verzija Cantor Dust može se preuzeti iz [arhiva medija crnog šešira] (https://media.blackhat.com/bh-us-12/Arsenal/Domas/_cantor.dust_.7z.zip ). Ako preimenujete svoju binarnu datoteku u "visual_re.example" pod / resources /, možete se malo poigrati s njom.
#3
-2
Drew DeVault
2013-03-25 00:28:54 UTC
view on stackexchange narkive permalink

Pokušajte dobiti ideju na koje CPU-ove može ciljati. Vjerojatno također možete pogoditi bitnu duljinu CPU-a gledajući ovu datoteku (file_size% 32 == 0? Vjerojatno 32 bit). Nakon što napravite jednostavan popis, pokrenite binarni program kroz neke rastavljače i provjerite ima li kod smisla. Pokušajte ga pokrenuti u nekim emuliranim CPU-ima i provjerite čini li nešto.

Također, imajte na umu da nevaljane upute možda ne znače da imate pogrešan CPU, to mogu biti podaci ili nešto slično. Zapravo je vrijedno provjeriti datoteku i provjeriti ne možete li pronaći niti ili bilo što drugo, samo da biste bolje razumjeli gdje se stvari nalaze.

Ovdje govorimo o mikrokontrolerima, postoje i 8-bitni i 16-bitni MCU-ovi. Ovdje se ne radi o računalu.
Ups, pogrešno ste pročitali pitanje. Isprike.


Ova pitanja su automatski prevedena s engleskog jezika.Izvorni sadržaj dostupan je na stackexchange-u, što zahvaljujemo na cc by-sa 3.0 licenci pod kojom se distribuira.
Loading...