D’fhoilsigh Anna Antonenko, a fhorbraíonn córais leabaithe agus ina cuid ama saor a fhorbraíonn córas oibriúcháin BOSS (Córas Oibriúcháin le Slándáil bunaithe ar BEAM), torthaí na hinnealtóireacht droim ar ais an sintéiseoir ceoil Yamaha PSR-E433. Le linn na hoibre a rinneadh, aithníodh comhéadan bhlaosc obfuscated sa sintéiseoir, rud a d'fhág gur féidir feidhmiú a chóid a eagrú ag an leibhéal firmware. Faightear rochtain ar an gcomhéadan bhlaosc trí phaicéid MIDI ina bhfuil teachtaireachtaí SysEx a sheoladh, ar féidir iad a tharchur nuair a bhíonn an sintéiseoir ceangailte trí USB. Tá faisnéis faoin sliseanna agus firmware a fuarthas le linn innealtóireacht droim ar ais, chomh maith le samplaí cód agus dumpaí dífhabhtaithe, ar fáil ar GitHub.
Tháinig spéis san innealtóireacht droim ar ais roinnt blianta ó shin, tar éis do Anna cinneadh a dhéanamh taobh istigh den sintéiseoir a ghlanadh ó dheannach agus ag an am céanna a fiosracht a shásamh a bhaineann leis an fonn a fheiceáil ar an taobh istigh den fheiste. Bhí sliseanna YAMAHA SWL01U ag an mbord, nach bhféadfaí faisnéis mhionsonraithe a fháil faoi ar an Idirlíon. Cúpla mí ó shin, tháinig Anna trasna ar lámhleabhar le haghaidh samhail sintéiseoir den chineál céanna, ina raibh pinout an tslis seo. Rinne Anna an gléas a dhíchóimeáil arís agus chuir sí tús le turgnaimh, ag baint úsáide as na bioráin atá ar fáil ar an gclár don chomhéadan dífhabhtaithe JTAG agus don phort UART.

Ag baint úsáide as an dífhabhtóir OpenOCD, ag nascadh le JTAG agus turgnaimh, fuarthas amach go n-úsáideann an bord sliseanna le croí próiseálaí ARM7TDMI. Tar éis dúinn staidéar a dhéanamh ar leagan amach na cuimhne sa dífhabhtóir, bhíomar in ann ábhar an fhirmware atá suite i gcuimhne ROM agus Flash a dhíluchtú. Tar éis seo, rinneadh anailís ar na híomhánna firmware sa phacáiste innealtóireachta droim ar ais Ghidra.
Agus tú ag féachaint ar na sonraí teaghrán a bhaintear as an firmware, tugadh faoi deara sraith línte (“cabhair”, “info”, “ver”, “logout”, etc.) atá cosúil le horduithe bhlaosc. Nuair a scrúdaíodh na leideanna do na línte seo nochtaíodh cód a ghlaoigh feidhmeanna chun orduithe a phróiseáil, a chuir i gcuimhne do chomhéadan logáil isteach agus blaosc ordaithe. Tugadh le fios freisin chun an bhlaosc a ghníomhachtú, go soláthraítear an t-ordú “logáil isteach”, a gcaithfidh tú an focal faire “#0000” a chur air. neamhní shell_run_command(char * command_input) { más rud é (shell_login_state == 0) { más rud é (shell_compare_command(command_input, "login") == 0) { shell_ask_passwd(); // prints" passwd? " shell_login_state = 1; } } eile más rud é (shell_login_state == 1) { más rud é (shell_compare_command(command_input, "#0000") == 0) { shell_login_ok(); // priontaí "logáil isteach OK" shell_login_state = 2; } eile { shell_print("Earráid Passwd\r"); shell_login_state = 0; } } eile {// rith an t-ordú } }
Léirigh scrúdú breise ar an bhfirmware go ndéantar orduithe a phróiseáil i mbaisceanna, ag tosú i gcónaí leis na 8 mbeart céanna sonraí agus ag críochnú leis an gcód 0xf7. Ós rud é nach ndéantar idirghníomhú seachtrach leis an sintéiseoir ach amháin trí MIDI, agus go soláthraíonn an tsonraíocht MIDI cineál seirbhíse speisialta de theachtaireachtaí SysEx, glacadh leis go bhféadfaí é seo a úsáid chun orduithe a tharchur. Ba é an buille faoi thuairim a neartú tuilleadh ná gur thosaigh teachtaireachtaí SysEx agus paicéid a parsáil an bhlaosc le cód amháin, 0xf0, agus ina dhiaidh sin ID an mhonaróra 0x43 (Yamaha).
Chun an hipitéis a thástáil, scríobhadh script Python a d'aistrigh na sonraí ionchuir go paicéid prótacail MIDI. Agus d'oibrigh an modh: logáil isteach passwd? #0000 logáil isteach ceart go leor > cabhrú le logáil amach cabhair ? info Ver stack perf-on perf-off perf-disp d dp d xxxxx d/s xxxxx m SONRAÍ SEOLADH m/b SONRAÍ SEOLADH m/w SONRAÍ SEOLADH m/l SONRAÍ SEOLADH > info DevelopName PSR-E433 DevelopUimhir #3341 Príomh-Forbair Uimhir # 3341 Déan sonraí & am BEALTAINE 16 2012 19:00:57 J/E Roghnaigh Béarla >
Áiríodh leis an leid a léiríodh nuair a seoladh an t-ordú “cabhrach”, i measc rudaí eile, orduithe chun inneachar an chuimhne a athrú. Ag baint úsáide as na horduithe seo, bhíothas in ann cód treallach a luchtú isteach sa chuimhne agus rialú a aistriú chuige, ag athsholáthar an phointeora ar an gcruach a úsáideadh chun filleadh tar éis próiseáil na n-orduithe a chríochnú. Mar thurgnamh, cuireadh feidhmchlár simplí scríofa i dteanga tionóil i limistéar cuimhne nár úsáideadh a aschuireann an teaghrán “HeloWrld” chuig táscaire LCD 8-charachtar. Rinneadh an clár a fhormáidiú mar chomhad MIDI rialta, nach raibh le déanamh ach é a aistriú chuig an bhfeiste.

Tar éis seo, cuireadh tús le hobair ar staidéar a dhéanamh ar ghnéithe aschuir grafaicí ar thaispeántas LCD, rud a chríochnaigh le hullmhú cód a aschuireann ábhar picteilín treallach isteach sa limistéar carachtar, go sioncrónach le hathsheinm físeán Bad Apple ar fheiste seachtrach (físeán le léiriú ).


Foinse: oscailtenet.ru
