[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.00,0:00:03.00,Default,,0000,0000,0000,,Translated by Markus Aurala\N(KYBS2004 course assignment at JYU.FI) Dialogue: 0,0:00:03.00,0:00:12.71,Default,,0000,0000,0000,,{\i1}rC3-intromusiikkia{\i0} Dialogue: 0,0:00:12.71,0:00:19.34,Default,,0000,0000,0000,,Herald: Seuraavasta puhujastamme... Hän\Non tietoturvatutkija, joka on erikoistunut Dialogue: 0,0:00:19.34,0:00:26.50,Default,,0000,0000,0000,,sulautettuihin järjestelmiin, viesti-\Nliikenteeseen ja matkapuhelimiin. Dialogue: 0,0:00:26.50,0:00:33.00,Default,,0000,0000,0000,,Forbes nimesi hänet alle 30-vuotiaiden\Nteknologiavaikuttajien listalleen ja Dialogue: 0,0:00:33.00,0:00:39.94,Default,,0000,0000,0000,,hän on voittanut OWASP Appsec CTF:n. Dialogue: 0,0:00:39.94,0:00:46.79,Default,,0000,0000,0000,,Hän on myös löytänyt ja raportoinut\Nvastuullisesti haavoittuvaisuuksia. Dialogue: 0,0:00:46.79,0:00:52.28,Default,,0000,0000,0000,,Ja erityisesti toivon teidän Nintendo-\Nintoilijoiden katsovan seuraavan videon, Dialogue: 0,0:00:52.28,0:00:56.27,Default,,0000,0000,0000,,joka on todella uskomaton ja jota\Ntulette rakastamaan. Kiitos paljon. Dialogue: 0,0:00:56.30,0:01:00.82,Default,,0000,0000,0000,,{\i1}näyttää Nintendo-pelikasettia{\i0} Dialogue: 0,0:01:00.82,0:01:06.06,Default,,0000,0000,0000,,{\i1}laittaa sen sisään konsoliin{\i0} Dialogue: 0,0:01:09.53,0:01:10.53,Default,,0000,0000,0000,,{\i1}Nintendo päästää ääniä{\i0} Dialogue: 0,0:01:10.53,0:01:14.85,Default,,0000,0000,0000,,Thomas: Voi himpskatti.\N{\i1}ottaa pelikasetin{\i0} Dialogue: 0,0:01:14.85,0:01:19.98,Default,,0000,0000,0000,,{\i1}puhaltaa siihen{\i0}\N{\i1}laittaa sisään uudelleen{\i0} Dialogue: 0,0:01:22.15,0:01:23.45,Default,,0000,0000,0000,,{\i1}Nintendo päästää ääniä{\i0} Dialogue: 0,0:01:26.24,0:01:29.42,Default,,0000,0000,0000,,{\i1}musiikki soi{\i0} Dialogue: 0,0:02:52.81,0:02:56.10,Default,,0000,0000,0000,,Thomas Roth: Voi, mikä matka.\NTervetuloa esitykseeeni Dialogue: 0,0:02:56.10,0:03:00.81,Default,,0000,0000,0000,,"Uuden Nintendo Game & Watch Super\NMario Brothersin hakkerointi". Nimeni Dialogue: 0,0:03:00.81,0:03:05.29,Default,,0000,0000,0000,,on Thomas Roth. Olen tietoturvatutkija\Nja -kouluttaja Saksasta. Löydät minut Dialogue: 0,0:03:05.29,0:03:10.72,Default,,0000,0000,0000,,Twitteristä nimellä @ghidraninja ja\NYouTubesta nimellä stacksmashing. Dialogue: 0,0:03:10.72,0:03:16.44,Default,,0000,0000,0000,,Tämä vuosi on suosikkiputkimiehemme,\NSuper Marion, 35-vuotisjuhlavuosi. Dialogue: 0,0:03:16.44,0:03:20.70,Default,,0000,0000,0000,,Juhlan kunniaksi Nintendo julkaisi uuden\Npelikonsolin, Nintendo Game & Watch Super Dialogue: 0,0:03:20.70,0:03:26.67,Default,,0000,0000,0000,,Mario Brothersin. Konsoli on höyhenen-\Nkevyt ja näyttää kivalta. Ja siinä on Dialogue: 0,0:03:26.67,0:03:31.86,Default,,0000,0000,0000,,valmiiksi asennettuna kolme peliä ja myös\Ntämä animoitu kello. Kolme peliä ovat Dialogue: 0,0:03:31.86,0:03:36.92,Default,,0000,0000,0000,,Super Mario Brothers (alkuperäinen NES-\Npeli), Super Mario Brothers 2 The Lost Dialogue: 0,0:03:36.92,0:03:44.83,Default,,0000,0000,0000,,Levels, ja myös uudelleensovitus\Nvanhasta Game & Watch -pelistä, Ballista. Dialogue: 0,0:03:44.83,0:03:49.94,Default,,0000,0000,0000,,Tiedätkin varmasti ettei tämä ole\NNintendon ensimmäinen retrokonsoli. Dialogue: 0,0:03:49.94,0:03:57.40,Default,,0000,0000,0000,,Vuonna 2016 he julkaisivat NES Classicin\Nja vuonna 2017 SNES Classicin. Nyt nuo Dialogue: 0,0:03:57.40,0:04:01.73,Default,,0000,0000,0000,,laitteet ovat todella suosittuja\Nharrastelijakehittäjien keskuudessa, Dialogue: 0,0:04:01.73,0:04:05.78,Default,,0000,0000,0000,,koska niihin on todella helppo lisätä\NROM:eja. Niiden laiteohjelmistoja on Dialogue: 0,0:04:05.78,0:04:10.54,Default,,0000,0000,0000,,helppo muokata jne. Voit vain pistää\Npiuhat kiinni koneeseesi, asentaa Dialogue: 0,0:04:10.54,0:04:14.96,Default,,0000,0000,0000,,yksinkertaisen ohjelmiston ja tehdä\Nmitä haluat sillä. Syy on se, että ne Dialogue: 0,0:04:14.96,0:04:21.14,Default,,0000,0000,0000,,ne ajavat Linuxia ja niissä on\Nmelkoisen tehokas ARM-prosessori. Dialogue: 0,0:04:21.14,0:04:27.36,Default,,0000,0000,0000,,Niillä on kiva puuhastella.\NJa kun Nintendo julkaisi tämän Dialogue: 0,0:04:27.36,0:04:31.65,Default,,0000,0000,0000,,uuden konsolin, monet ihmiset\Ntoivoivat siitä mobiilia Dialogue: 0,0:04:31.65,0:04:38.81,Default,,0000,0000,0000,,laitetta harrastelijaohjelmoijille.\NJos tekisimme nyt Venn-kaavion Dialogue: 0,0:04:38.81,0:04:43.10,Default,,0000,0000,0000,,minun suurimmista kiinnostuksistani,\Nsiinä olisi takaisinmallinnus, laite- Dialogue: 0,0:04:43.10,0:04:48.54,Default,,0000,0000,0000,,hakkerointi ja retrokoneilu. Tämä\Nuusi Game & Watch olisi näitä kaikkia. Dialogue: 0,0:04:48.54,0:04:52.92,Default,,0000,0000,0000,,Kun se julkistettiin 3. syyskuuta,\Ntiesin, että minun oli pakko saada Dialogue: 0,0:04:52.92,0:04:58.93,Default,,0000,0000,0000,,sellainen. Ja tietäen miten hankala NES-\Nja SNES-retrokonsoleita oli aluksi ostaa, Dialogue: 0,0:04:58.93,0:05:03.39,Default,,0000,0000,0000,,ennakkotilasin sen 4-5 eri\Nsivustolta. Pari niistä peruttiin. Dialogue: 0,0:05:03.39,0:05:09.47,Default,,0000,0000,0000,,Mutta olin melko innoissani, koska minulla\Noli kolme ennakkotilausta, joiden piti Dialogue: 0,0:05:09.47,0:05:15.38,Default,,0000,0000,0000,,lähteä 13. marraskuuta.\NJa minä niin odotin sitä. Dialogue: 0,0:05:15.38,0:05:19.91,Default,,0000,0000,0000,,Söin aamiaista 12. marraskuuta kun\Novikello soi ja DHL:n kuriiri Dialogue: 0,0:05:19.91,0:05:25.73,Default,,0000,0000,0000,,toimitti minulle uuden Game & Watchin\Npäivää ennen virallista julkaisua. Dialogue: 0,0:05:25.73,0:05:30.30,Default,,0000,0000,0000,,Siinä vaiheessa laitteesta ei ollut\Nmitään teknistä tietoa saatavilla. Dialogue: 0,0:05:30.30,0:05:35.45,Default,,0000,0000,0000,,Ei kerrassaan mitään. Jos etsit "Game &\NWatch" Twitteristä, et löytänyt muuta Dialogue: 0,0:05:35.45,0:05:40.68,Default,,0000,0000,0000,,kuin julkaisun tai ehkä kuvan, jonka\Njoku toinen ennakkotilaaja oli ottanut. Dialogue: 0,0:05:40.68,0:05:44.90,Default,,0000,0000,0000,,Ei ollut mitään purkamisesta, ei kuvia\Nsisuskaluista. Ja mikä tärkeintä, Dialogue: 0,0:05:44.90,0:05:50.32,Default,,0000,0000,0000,,kukaan ei ollut vielä murtanut sitä.\NJa tämä antoi minulle, laitehakkerille, Dialogue: 0,0:05:50.32,0:05:55.67,Default,,0000,0000,0000,,ainutlaatuisen tilaisuuden olla ehkäpä\Nensimmäinen joka murtaa uuden konsolin. Dialogue: 0,0:05:55.67,0:06:00.20,Default,,0000,0000,0000,,Ja minä kirjaimellisesti jätin\Nkaiken muun kesken ja aloin tutkimaan Dialogue: 0,0:06:00.20,0:06:05.95,Default,,0000,0000,0000,,laitetta. Nyt minun täytyy sanoa,\Nettä normaalisti pysyn kaukana Dialogue: 0,0:06:05.95,0:06:11.46,Default,,0000,0000,0000,,uusien konsolien murtamisesta. Pääasiassa\Npiratismin takia. En halua olla tekemässä Dialogue: 0,0:06:11.46,0:06:18.93,Default,,0000,0000,0000,,siitä mahdollista. En halua olla\Nosallinen. Enkä halua rakentaa Dialogue: 0,0:06:18.93,0:06:23.93,Default,,0000,0000,0000,,työkaluja, joilla toiset piratisoivat.\NMutta koska tähän laitteeseen ei voinut Dialogue: 0,0:06:23.93,0:06:28.90,Default,,0000,0000,0000,,ostaa pelejä ja kaikki\Nsiinä olevat pelit olivat Dialogue: 0,0:06:28.90,0:06:33.84,Default,,0000,0000,0000,,julkaistu jo yli 30 vuotta sitten, en\Nollut huolissani piratismista eikä Dialogue: 0,0:06:33.84,0:06:39.45,Default,,0000,0000,0000,,minulla ollut ongelmaa jakaa kaikkea\Ntutkimusteni tietoa eikä myöskään Dialogue: 0,0:06:39.45,0:06:44.49,Default,,0000,0000,0000,,niitä ongelmia, joiden avulla\Npystyimme muokkaamaan laitetta. Dialogue: 0,0:06:44.49,0:06:49.39,Default,,0000,0000,0000,,Tässä esityksessä kerron teille\Nmiten me mursimme laitteen Dialogue: 0,0:06:49.39,0:06:54.93,Default,,0000,0000,0000,,ja miten sinä voit tehdä sen kotona\Nsuhteellisen halvoilla laitteilla. Dialogue: 0,0:06:54.93,0:07:03.04,Default,,0000,0000,0000,,Toivottavasti nautit siitä. Katsotaan\Nalkuun sitä laitetta. Laite on Dialogue: 0,0:07:03.04,0:07:08.47,Default,,0000,0000,0000,,höyhenenkevyt ja kotelo on mukavan\Nkokoinen. Joten se todella... Se todella Dialogue: 0,0:07:08.47,0:07:14.89,Default,,0000,0000,0000,,istuu hyvin käteeni. Siinä on 320 x 240\Npikselin LCD-näyttö, ristiohjain, A- ja Dialogue: 0,0:07:14.89,0:07:19.53,Default,,0000,0000,0000,,B-napit ja lisäksi vielä kolme nappia,\Njoilla vaihdetaan pelimoodien välillä. Dialogue: 0,0:07:19.53,0:07:23.94,Default,,0000,0000,0000,,Oikealla sivulla on virtanäppäin\Nja USB-C -portti. Mutta ennen kuin Dialogue: 0,0:07:23.94,0:07:28.64,Default,,0000,0000,0000,,innostut USB-portista, voin\Nkertoa, että valitettavasti Dialogue: 0,0:07:28.64,0:07:33.03,Default,,0000,0000,0000,,Nintendo on päättänyt olla\Nkytkemättä USB-portin datalinjoja. Dialogue: 0,0:07:33.03,0:07:38.55,Default,,0000,0000,0000,,Joten sitä voi käyttää vain\Nlataamiseen. Ja koska on kyse Dialogue: 0,0:07:38.55,0:07:43.98,Default,,0000,0000,0000,,Nintendosta, he käyttävät omia\NTri-Point -ruuvejaan. Avataksesi Dialogue: 0,0:07:43.98,0:07:48.73,Default,,0000,0000,0000,,laitteen, tarvitset meisseliin tuon\Nerikoiskärjen. Onneksi tuo löytyy Dialogue: 0,0:07:48.73,0:07:54.12,Default,,0000,0000,0000,,nykyisin useimmista seteistä. Mutta se\Non silti ikävää kun tilaat laitteen ja Dialogue: 0,0:07:54.12,0:07:59.64,Default,,0000,0000,0000,,sitten et voikaan avata sitä työkalun\Npuuttuessa. Kun olet avannut laitteen, Dialogue: 0,0:07:59.64,0:08:03.78,Default,,0000,0000,0000,,huomaat ensimmäisenä varmastikin\Nakun. Ja jos olet koskaan avannut Dialogue: 0,0:08:03.78,0:08:07.60,Default,,0000,0000,0000,,Nintendo Switchin peliohjaimen,\Nsaatat tunnistaa akun, koska se Dialogue: 0,0:08:07.60,0:08:12.73,Default,,0000,0000,0000,,on täsmälleen sama kuin peliohjaimessa.\NTämä on siistiä, koska jos joskus, Dialogue: 0,0:08:12.73,0:08:16.53,Default,,0000,0000,0000,,sanotaan kahden-kolmen vuoden\Npäästä Game & Watchin akku kuolee, Dialogue: 0,0:08:16.53,0:08:20.65,Default,,0000,0000,0000,,voit korvata sen peliohjaimen\Nakulla, joita voit ostaa Dialogue: 0,0:08:20.65,0:08:26.52,Default,,0000,0000,0000,,halvalla melkein mistä vain. Akun\Nvieressä, oikealla puolella, on Dialogue: 0,0:08:26.52,0:08:32.35,Default,,0000,0000,0000,,pieni kaiutin, joka ei ole kovinkaan\Nhyvä. Ja sen alla on pääpiirilevy Dialogue: 0,0:08:32.35,0:08:37.51,Default,,0000,0000,0000,,prosessorilla, kaikilla muisteilla\Nja niin edelleen. Katsotaanpa niitä. Dialogue: 0,0:08:37.51,0:08:44.78,Default,,0000,0000,0000,,Laitteen pääprosessori on STM32H7B0.\NTämä on Cortex M7 STMicroelectronicsilta, Dialogue: 0,0:08:44.78,0:08:53.20,Default,,0000,0000,0000,,1.3 megatavulla keskusmuistia ja 128 kilo-\Ntavulla flash-muistia. Se toimii 280 MHz:n Dialogue: 0,0:08:53.20,0:08:59.46,Default,,0000,0000,0000,,kellotaajuudella ja on aika tehokas mikro-\Nkontrolleri, mutta se häviää prosessori- Dialogue: 0,0:08:59.46,0:09:03.86,Default,,0000,0000,0000,,tehossa NES- ja SNES-retrokonsoleille.\NTämä prosessori on todellakin vain mikro- Dialogue: 0,0:09:03.86,0:09:09.26,Default,,0000,0000,0000,,kontrolleri, eikä se voi ajaa Linuxia tai\Nerityisen monimutkaisia ohjelmistoja. Dialogue: 0,0:09:09.26,0:09:14.17,Default,,0000,0000,0000,,Koodia kirjoitetaan suoraan raudan\Npäälle. Laitteessa on raudalle koodattu Dialogue: 0,0:09:14.17,0:09:20.58,Default,,0000,0000,0000,,laiteohjelmisto. Siitä oikealle\Nnäette 1 megatavun SPI flash -muistin. Dialogue: 0,0:09:20.58,0:09:26.18,Default,,0000,0000,0000,,Yhteensä tässä laitteessa on\Nn. 1,1 megatavua tallennustilaa. Dialogue: 0,0:09:26.18,0:09:31.28,Default,,0000,0000,0000,,Useimmissa - tai oikeastaan kaikissa -\Nmikrokontrollereissa on debuggausportti. Dialogue: 0,0:09:31.28,0:09:36.37,Default,,0000,0000,0000,,Jos katsot piirilevyä, voit nähdä\Nviisi liitintä, jotka eivät ole käytössä. Dialogue: 0,0:09:36.37,0:09:40.98,Default,,0000,0000,0000,,Ja pari niistä käyttämättömistä\Nliittimistä on sijoitettu lähelle Dialogue: 0,0:09:40.98,0:09:47.51,Default,,0000,0000,0000,,prosessoria. Se on todennäköistä, että\Nsiinä on debuggausportti. Ja onneksi Dialogue: 0,0:09:47.51,0:09:54.45,Default,,0000,0000,0000,,STM32:n tuotetietolomake on julkisesti\Nsaatavilla. Ja voimme tarkistaa kytkennät Dialogue: 0,0:09:54.45,0:09:59.05,Default,,0000,0000,0000,,ja tarkistaa yleismittarilla\Nonko nämä pinnit todellakin Dialogue: 0,0:09:59.05,0:10:04.50,Default,,0000,0000,0000,,debuggausliittymä. Ja niinhän se oli.\NSitten löysimme SWD-debuggausliittymän, Dialogue: 0,0:10:04.50,0:10:11.63,Default,,0000,0000,0000,,kuten myös VCC:n ja maan näistä\Npinneistä. Tämä tarkoitti, että Dialogue: 0,0:10:11.63,0:10:16.78,Default,,0000,0000,0000,,voimme käyttää debuggeria. Pystyimme\Nkytkeytymään laitteeseen esimerkiksi Dialogue: 0,0:10:16.78,0:10:21.98,Default,,0000,0000,0000,,J-Linkillä tai ST-Linkillä. Ja koska\Nnämä liitännät ovat hyvin esillä, Dialogue: 0,0:10:21.98,0:10:25.87,Default,,0000,0000,0000,,sinun ei tarvitse edes juottaa. Voit\Nvain liittää pari testipinniä ja Dialogue: 0,0:10:25.87,0:10:32.60,Default,,0000,0000,0000,,kytkeä ne debuggeriisi. Seuraava\Nongelma on, että useimmissa laitteissa Dialogue: 0,0:10:32.60,0:10:36.90,Default,,0000,0000,0000,,debuggausliittymä lukitaan valmistus-\Nprosessin aikana. Tämä tehdään, jotta Dialogue: 0,0:10:36.90,0:10:42.55,Default,,0000,0000,0000,,ihmiset kuten me emme voisi tehdä\Nlaitteella mitä haluamme ja estääkseen Dialogue: 0,0:10:42.55,0:10:47.45,Default,,0000,0000,0000,,meitä näkemästä laiteohjelmistoa,\Nehkä uudelleenohjelmoimasta sitä jne. Dialogue: 0,0:10:47.45,0:10:52.19,Default,,0000,0000,0000,,Joten minä olin utelias näkemään jos\Nvoisin ottaa yhteyttä debuggausporttiin. Dialogue: 0,0:10:52.19,0:10:56.09,Default,,0000,0000,0000,,Kun käynnistin J-Linkin ja yritin\Nottaa yhteyttä, voimme nähdä sen Dialogue: 0,0:10:56.09,0:11:01.23,Default,,0000,0000,0000,,onnistuvan. Mutta kun tutkit asiaa\Ntarkemmin, huomaat viestin jonka Dialogue: 0,0:11:01.23,0:11:09.27,Default,,0000,0000,0000,,mukaan laite aktiivisesti lukusuojattu.\NTämä siksi, että STM32-sirussa on Dialogue: 0,0:11:09.27,0:11:15.65,Default,,0000,0000,0000,,ominaisuus nimeltään RDP-suojaustaso,\Nreadout protection level. Tämä on Dialogue: 0,0:11:15.65,0:11:20.30,Default,,0000,0000,0000,,periaatteessa tietoturva-asetus\Ndebuggausliittymälle ja siinä on kolme Dialogue: 0,0:11:20.30,0:11:26.77,Default,,0000,0000,0000,,tasoa. Taso 0 tarkoittaa, että suojaus on\Npois päältä. Tasolla 1 flash-muisti on Dialogue: 0,0:11:26.77,0:11:31.84,Default,,0000,0000,0000,,suojattu ja me emme pysty\Nkopioimaan sen sisältöä. Kuitenkin, Dialogue: 0,0:11:31.84,0:11:36.94,Default,,0000,0000,0000,,me voimme kopioida keskusmuistin sisällön\Nja myös ajaa koodia keskusmuistissa. Ja Dialogue: 0,0:11:36.94,0:11:42.24,Default,,0000,0000,0000,,sitten on myös taso 2, joka estää\Nkaikki debuggaustoiminnallisuudet. Dialogue: 0,0:11:42.24,0:11:46.63,Default,,0000,0000,0000,,Vaikka siru olisi tasolla 2,\Nmeidän ei pidä antaa periksi. Dialogue: 0,0:11:46.63,0:11:51.59,Default,,0000,0000,0000,,Esimerkiksi esityksessämme "wallet.fail"\Nparin vuoden takaa, näytimme miten Dialogue: 0,0:11:51.59,0:11:56.00,Default,,0000,0000,0000,,generoimalla virheitä ohitimme tason 2\Nsuojauksen ja tiputimme sirun tasolle 1. Dialogue: 0,0:11:56.00,0:12:00.82,Default,,0000,0000,0000,,Kuitenkin, Game & Watchin tapauksessa,\Nolimme onnekkaita ja liittymää ei oltu Dialogue: 0,0:12:00.82,0:12:07.14,Default,,0000,0000,0000,,täysin estetty. Se oli tasolla 1 eli me\Npystyimme kopioimaan keskusmuistin, mikä Dialogue: 0,0:12:07.14,0:12:11.30,Default,,0000,0000,0000,,on hyvä aloituspiste, vaikka emme vielä\Npystykään kopiomaan laiteohjelmistoa. Dialogue: 0,0:12:11.30,0:12:17.01,Default,,0000,0000,0000,,Nyt kun saimme keskusmuistin laitteelta,\Nolin kiinnostunut sen sisällöstä. Dialogue: 0,0:12:17.01,0:12:21.66,Default,,0000,0000,0000,,Yksi epäilyistäni oli, että se oli ehkä\Nemulaattori, joka toimii laitteella, Dialogue: 0,0:12:21.66,0:12:29.00,Default,,0000,0000,0000,,lataa alkuperäisen Super Mario\NBrothersin ROM:in keskusmuistiin. Dialogue: 0,0:12:29.00,0:12:34.83,Default,,0000,0000,0000,,Ja minä ihmettelin jos voisin löytää\NROM:in keskusmuistin kopiosta. Dialogue: 0,0:12:34.83,0:12:39.75,Default,,0000,0000,0000,,Ja minä avasin heksaeditoriin sen\Nkeskusmuistin kopion ja alkuperäisen Dialogue: 0,0:12:39.75,0:12:44.45,Default,,0000,0000,0000,,Super Mario Brothersin ROMin.\NYritin etsiä sen ROM:in osia Dialogue: 0,0:12:44.45,0:12:49.41,Default,,0000,0000,0000,,keskusmuistin kopiosta. Ja kävi\Nilmi, että kyllä, se NES-ROM Dialogue: 0,0:12:49.41,0:12:55.38,Default,,0000,0000,0000,,ladataan keskusmuistiin ja aina\Nsamaan osoitteeseen. Luultavasti Dialogue: 0,0:12:55.38,0:13:00.29,Default,,0000,0000,0000,,se kopioidaan keskusmuistiin\Nkäynnistyksen yhteydessä tai jotain. Dialogue: 0,0:13:00.29,0:13:05.42,Default,,0000,0000,0000,,Ja tämä on kiva tietää, koska se kertoo\Nmeille parikin asiaa. Ensiksikin Dialogue: 0,0:13:05.42,0:13:09.79,Default,,0000,0000,0000,,tiedämme nyt, että debuggausportti\Non toiminnassa, mutta valitettavasti Dialogue: 0,0:13:09.79,0:13:16.32,Default,,0000,0000,0000,,vain RDP-tasolla 1 ja voimme kopioida vain\Nkeskusmuistin. Ja me tiedämme myös, että Dialogue: 0,0:13:16.32,0:13:21.26,Default,,0000,0000,0000,,NES:in ROM ladataan keskusmuistiin.\NSiellä täytyy olla oikea NES-emulaattori. Dialogue: 0,0:13:21.26,0:13:25.68,Default,,0000,0000,0000,,Ja jos me olemme onnekkaita, voimme\Nesimerkiksi korvata ROM:in laitteella Dialogue: 0,0:13:25.68,0:13:29.84,Default,,0000,0000,0000,,toisella ROM:illa ja pelata siten\Nvaikka omaa NES-peliämme. Dialogue: 0,0:13:30.60,0:13:33.46,Default,,0000,0000,0000,,{\i1}pieni tauko{\i0} Dialogue: 0,0:13:33.93,0:13:37.01,Default,,0000,0000,0000,,Seuraavaksi oli aika\Nkopioida laitteen Dialogue: 0,0:13:37.01,0:13:41.16,Default,,0000,0000,0000,,flash-muistisiru. Käytän tähän\Nlaitetta nimeltä Mini Pro ja yhtä Dialogue: 0,0:13:41.16,0:13:46.96,Default,,0000,0000,0000,,näistä hyödyllisistä SOIC-8 -siruista.\NVoit kiinnittää nämä flash-muistisiruun Dialogue: 0,0:13:46.96,0:13:52.24,Default,,0000,0000,0000,,ja kopioida sen sisällön. Varoitus:\Nlaitteen flash-muistisiru toimii Dialogue: 0,0:13:52.24,0:13:56.22,Default,,0000,0000,0000,,1,8 voltin jännitteellä. Haluat varmasti\Nvarmistaa, että ohjelmointilaitteesi Dialogue: 0,0:13:56.22,0:14:01.84,Default,,0000,0000,0000,,tukee 1,8 V:n jännitettä. Jos vahingossa\Nyrität lukea muistia 3,3 V:n jännitteellä, Dialogue: 0,0:14:01.84,0:14:06.77,Default,,0000,0000,0000,,hajotat sen muistin. Usko pois -\Nse tapahtui yhdelle minun Dialogue: 0,0:14:06.77,0:14:12.94,Default,,0000,0000,0000,,laitteistani. Nyt kun meillä on tämä\Nkopio flash-muistista, voimme analysoida Dialogue: 0,0:14:12.94,0:14:17.32,Default,,0000,0000,0000,,sitä. Ensimmäiseksi tykkään katsoa\Nkopion entropiaa tai satunnaisuutta. Dialogue: 0,0:14:17.32,0:14:23.35,Default,,0000,0000,0000,,Käyttämällä binwalkia optiolla\N"-E", saamme hienon entropiakuvaajan. Dialogue: 0,0:14:23.35,0:14:27.41,Default,,0000,0000,0000,,Tässä tapauksessa voitte nähdä, että\Nentropia on hyvin korkealla melkein koko Dialogue: 0,0:14:27.41,0:14:32.90,Default,,0000,0000,0000,,sisällön osalta. Yleensä tämä\Nindikoi sitä, että muistin sisältö on Dialogue: 0,0:14:32.90,0:14:37.24,Default,,0000,0000,0000,,kryptattu. Se voisi myös tarkoittaa\Npakkausta, mutta jos se olisi pakattu, Dialogue: 0,0:14:37.24,0:14:43.53,Default,,0000,0000,0000,,näkisimme siinä enemmän tiputuksia.\NTässä tapauksessa se on yhtä korkean Dialogue: 0,0:14:43.53,0:14:48.83,Default,,0000,0000,0000,,entropian virtaa. Huomasimme myös, että\Nsiinä ei ole minkäänlaisia toistoja, mikä Dialogue: 0,0:14:48.83,0:14:53.35,Default,,0000,0000,0000,,kertoo meille, että todennäköisesti\Nkyseessä ei ole yksinkertainen XOR-salaus Dialogue: 0,0:14:53.35,0:14:58.34,Default,,0000,0000,0000,,vaan pikemminkin AES tai vastaava.\NSe, että flash-muisti on salakirjoitettu Dialogue: 0,0:14:58.34,0:15:02.20,Default,,0000,0000,0000,,ei tarkoita, että meidän pitäisi antaa\Nperiksi. Päinvastoin. Nyt tästä vasta Dialogue: 0,0:15:02.20,0:15:06.83,Default,,0000,0000,0000,,tuleekin mielenkiintoista, koska tässä on\Nhaaste joka ei ole ihan itsestään selvä. Dialogue: 0,0:15:06.83,0:15:13.02,Default,,0000,0000,0000,,Yksi suurimmista kysymyksistäni oli:\Nonko flash-muistin sisältö varmistettu? Dialogue: 0,0:15:13.02,0:15:18.16,Default,,0000,0000,0000,,Eli käynnistyykö tämä laite jos flash-\Nmuistin sisältöä on muutettu? Jos se Dialogue: 0,0:15:18.16,0:15:24.79,Default,,0000,0000,0000,,käynnistyisi, se avaisi useita\Nhyökkäysvektoreita, kuten pian näette. Dialogue: 0,0:15:24.79,0:15:30.72,Default,,0000,0000,0000,,Varmistaakseni asian, kirjoitan\Nnollia satunnaisiin paikkoin muistissa. Dialogue: 0,0:15:30.72,0:15:35.76,Default,,0000,0000,0000,,Niinpä laitoin niitä osoitteeseen 0,\Nvähän osoitteeseen 0x2000 jne. Dialogue: 0,0:15:35.76,0:15:39.91,Default,,0000,0000,0000,,Ja sitten kokeilin käynnistyykö\Nlaite vielä. Useimmilla flash-muistin Dialogue: 0,0:15:39.91,0:15:44.37,Default,,0000,0000,0000,,muutoksilla se käynnistyi ihan OK.\NTämä kertoo meille, että vaikka Dialogue: 0,0:15:44.37,0:15:48.60,Default,,0000,0000,0000,,flash-muistin sisältö on salattu, sitä ei\Nole varmistettu, ei tarkistussummilla Dialogue: 0,0:15:48.60,0:15:54.61,Default,,0000,0000,0000,,eikä muutenkaan. Joten me voimme ehkä\Nhuijata laitteen hyväksymään muunnellun Dialogue: 0,0:15:54.61,0:15:58.53,Default,,0000,0000,0000,,kopion flash-muistista. Tämä on tosi\Ntärkeä tieto, kuten pian huomaat. Dialogue: 0,0:15:58.53,0:16:05.31,Default,,0000,0000,0000,,Seuraava epäilykseni oli, että ehkä\Nse NES-ROM, jonka näimme keskusmuistissa Dialogue: 0,0:16:05.31,0:16:12.84,Default,,0000,0000,0000,,oli ladattu ulkoiselta flash-muistilta.\NJa selvitääkseni tämän, otin sen Dialogue: 0,0:16:12.84,0:16:18.94,Default,,0000,0000,0000,,flash-muistin kopion ja lisäsin\Nsiihen nollia eri kohtiin. Dialogue: 0,0:16:18.94,0:16:24.55,Default,,0000,0000,0000,,Kirjoitin sen laitteelle, käynnistin sen,\Nkopioin keskusmuistin ja vertasin sitä Dialogue: 0,0:16:24.55,0:16:29.62,Default,,0000,0000,0000,,NES-ROM:iin, jonka löysin keskus-\Nmuistin kopiosta. Vertasin, ovatko Dialogue: 0,0:16:29.62,0:16:35.40,Default,,0000,0000,0000,,ne identtisiä. Koska epäilykseni oli,\Nettä voisin ehkä ylikirjoittaa Dialogue: 0,0:16:35.40,0:16:41.52,Default,,0000,0000,0000,,muutaman tavun salatussa flash-muistissa\Nja sitten muokata NES-ROM:ia. Sen jälkeen Dialogue: 0,0:16:41.52,0:16:46.76,Default,,0000,0000,0000,,kun olin tehnyt sen, ehkä puoli tuntia\Nmyöhemmin, minua onnisti ja sain Dialogue: 0,0:16:46.76,0:16:51.40,Default,,0000,0000,0000,,muutettua neljä tavua flash-nuistissa ja\Nkeskusmuistissa... Sori... ROM:issa, Dialogue: 0,0:16:51.40,0:16:56.79,Default,,0000,0000,0000,,jonka latasin keskusmuistiin. Ja tämä\Nkertoo meille melkoisesti. Se tarkoittaa, Dialogue: 0,0:16:56.79,0:17:04.45,Default,,0000,0000,0000,,että ROM ladataan keskusmuistiin flash-\Nmuistilta, eikä sen sisältöä validoida. Dialogue: 0,0:17:04.45,0:17:10.28,Default,,0000,0000,0000,,Ja mikä on myös tärkeää on se, että \Nmuutimme neljä tavua flash-muistissa Dialogue: 0,0:17:10.28,0:17:15.51,Default,,0000,0000,0000,,ja neljä tavua muuttui puretussa ROM:issa.\NTämä on tärkeää tietää, koska jos me Dialogue: 0,0:17:15.51,0:17:19.74,Default,,0000,0000,0000,,katsomme mitä odotimme tapahtuvan flash-\Nmuistin sisältöä muutettaessa, se olisi Dialogue: 0,0:17:19.74,0:17:23.88,Default,,0000,0000,0000,,voinut päättyä eri lopputuloksiin. Ja\Ntässä meillä on SPI flash -muistin Dialogue: 0,0:17:23.88,0:17:29.31,Default,,0000,0000,0000,,sisäsltö vasemmalla ja keskusmuistin\Nsisältö oikealla. Ja keskusmuistin Dialogue: 0,0:17:29.31,0:17:35.41,Default,,0000,0000,0000,,on purettu versio SPI flash -muistin\Nsisällöstä. Sanotaan, että muutamme Dialogue: 0,0:17:35.41,0:17:41.75,Default,,0000,0000,0000,,neljä tavua salatusta flash-kopiosta\Nnolliksi. Kuinka odottaisimme keskus- Dialogue: 0,0:17:41.75,0:17:47.58,Default,,0000,0000,0000,,muistin sisällön muuttuvan jos,\Nesimerkiksi, 16 tavua keskusmuistista Dialogue: 0,0:17:47.58,0:17:52.96,Default,,0000,0000,0000,,muuttuisi. Tämä tarkoittaisi, että\Nkäytössä on ehkä salausalgoritmi Dialogue: 0,0:17:52.96,0:17:57.65,Default,,0000,0000,0000,,kuten AES ECB-moodissa (Electronic\NCodebook). Koska jos se on lohko- Dialogue: 0,0:17:57.65,0:18:03.18,Default,,0000,0000,0000,,pohjainen salaus ja me muutamme\N4 salattua tavua, koko puretun lohkon Dialogue: 0,0:18:03.18,0:18:09.73,Default,,0000,0000,0000,,eli 16 tavun pitäisi muuttua. Toinen\Nmahdollisuus on, että muutamme 4 Dialogue: 0,0:18:09.73,0:18:16.16,Default,,0000,0000,0000,,tavua flash-muistissa ja kaikki niitä\Nseuraava data muuttuisi. Tässä Dialogue: 0,0:18:16.16,0:18:21.83,Default,,0000,0000,0000,,tapauksessa käytössä olisi ehkä AES\NCBC-moodissa (Chaining Cipher). Dialogue: 0,0:18:21.83,0:18:27.60,Default,,0000,0000,0000,,Kuitenkin jos muutamme 4 tavua flash-\Nmuistissa ja vain 4 tavua muuttuu Dialogue: 0,0:18:27.60,0:18:33.51,Default,,0000,0000,0000,,keskusmuistissa, käytössä on ehkä\NAES CTR-moodissa (Counter). Ja Dialogue: 0,0:18:33.51,0:18:40.27,Default,,0000,0000,0000,,ymmärtääksesi tämän, otetaan parempi\Nnäkymä siihen miten AES toimii Dialogue: 0,0:18:40.27,0:18:45.93,Default,,0000,0000,0000,,CTR-moodissa. Se ottaa salaamattoman\Ntiedon ja XOR:aa sen AES-salausvirran Dialogue: 0,0:18:45.93,0:18:53.21,Default,,0000,0000,0000,,kanssa, joka on generoitu avaimella,\Nnoncella ja Counter-algoritmilla. Dialogue: 0,0:18:53.21,0:18:57.37,Default,,0000,0000,0000,,Se AES-virta, jolla tietosi\NXOR:ataan, on aina sama jos avain Dialogue: 0,0:18:57.37,0:19:02.84,Default,,0000,0000,0000,,ja nonce ovat samat. Tämän takia on\Nhuipputärkeää, että käyttäessäsi Dialogue: 0,0:19:02.84,0:19:08.78,Default,,0000,0000,0000,,AES-CTR:ää, valitset aina uniikin noncen\Njokaiseen salaukseen. Jos käytät samaa Dialogue: 0,0:19:08.78,0:19:15.06,Default,,0000,0000,0000,,noncea kahdesti samankaltaisen datan\Nsalaamiseen, lopputulos näyttää samalta. Dialogue: 0,0:19:15.06,0:19:19.96,Default,,0000,0000,0000,,Salaamaton data XOR:ataan\NAES-CTR -virralla ja niin saamme Dialogue: 0,0:19:19.96,0:19:26.57,Default,,0000,0000,0000,,salatun datan. Jos tiedämme mitä\Nsalaamaton data oli, eli keskusmuistiin Dialogue: 0,0:19:26.57,0:19:32.27,Default,,0000,0000,0000,,ladattu ROM-tiedosto, ja meillä\Non se salattu koodi, eli flash-muistin Dialogue: 0,0:19:32.27,0:19:38.01,Default,,0000,0000,0000,,kopio, voimme suorittaa käänteisen Dialogue: 0,0:19:38.01,0:19:44.58,Default,,0000,0000,0000,,operaation. Lopputuloksena meillä\Non AES-CTR -virta, jolla flash-muisti Dialogue: 0,0:19:44.58,0:19:52.05,Default,,0000,0000,0000,,salakirjoitettiin. Ja tämä tarkoittaa,\Nettä voimme ottaa ROM-tiedoston, XOR:ata Dialogue: 0,0:19:52.05,0:19:57.83,Default,,0000,0000,0000,,sen juuri selvittämällämme\NAES-CTR -virralla ja generoida oman Dialogue: 0,0:19:57.83,0:20:02.01,Default,,0000,0000,0000,,salatun flash-kopiomme, esimerkiksi\Nmuunnellun ROM:in. Joten kirjoitin Dialogue: 0,0:20:02.01,0:20:08.34,Default,,0000,0000,0000,,muutamia Python-skriptejä kokeillakseni\Ntätä. Ja jonkun ajan kuluttua minulla Dialogue: 0,0:20:08.34,0:20:14.29,Default,,0000,0000,0000,,oli hakkeroitu Super Mario Brothers\Nalkuperäisen sijasta. Jeejee, hakkeroimme Dialogue: 0,0:20:14.29,0:20:18.87,Default,,0000,0000,0000,,Nintendo Game & Watchin päivää ennen\Nvirallista julkistusta. Ja voimme asentaa Dialogue: 0,0:20:18.87,0:20:23.99,Default,,0000,0000,0000,,muokattuja Super Mario Brothers ROM:eja.\NLöydät käyttämäni skriptit GitHubistani. Dialogue: 0,0:20:23.99,0:20:28.26,Default,,0000,0000,0000,,Ne ovat tallennustilassa nimeltään\N"Game & Watch Hacking". Olin todella Dialogue: 0,0:20:28.26,0:20:33.57,Default,,0000,0000,0000,,innoissani, koska olin onnistunut ja olin\Nmurtanut Nintendon konsolin päivää ennen Dialogue: 0,0:20:33.57,0:20:37.96,Default,,0000,0000,0000,,virallista julkistusta.\NValitettavasti läpäistyäni kentän, Dialogue: 0,0:20:37.96,0:20:43.35,Default,,0000,0000,0000,,Toad ei ollut yhtä innostunut. Hän kertoi\Nminulle, että valitettavasti laiteohjelmisto Dialogue: 0,0:20:43.35,0:20:50.05,Default,,0000,0000,0000,,oli yhä toisessa linnassa. Niinpä heti\Nmaanantaina yhdistin voimani Dialogue: 0,0:20:50.05,0:20:54.79,Default,,0000,0000,0000,,Konrad Beckmannin kanssa. Hän on hakkeri\NRuotsista. Tutustuimme tapahtumassa. Dialogue: 0,0:20:54.79,0:20:59.85,Default,,0000,0000,0000,,Me aloimme keskustelemaan ja heittelemään\Nideoita puolin ja toisin. Lopulta Dialogue: 0,0:20:59.85,0:21:05.62,Default,,0000,0000,0000,,me huomasimme, että keskusmuistissa on\Nerikoisalue nimeltään ITCM-RAM. Se on Dialogue: 0,0:21:05.62,0:21:10.57,Default,,0000,0000,0000,,kiinteässä yhteydessä keskusmuistiin, jota\Nkäytetään normaalisti korkean suoritus- Dialogue: 0,0:21:10.57,0:21:15.12,Default,,0000,0000,0000,,kyvyn rutiineihin, kuten keskeytysten\Nkäsittelijöihin. Se on hyvin nopea alue. Dialogue: 0,0:21:15.12,0:21:22.16,Default,,0000,0000,0000,,Me käsitimme ettemme ole koskaan\Ntarkastelleet ITCM-muistialueen sisältöä. Dialogue: 0,0:21:22.16,0:21:26.54,Default,,0000,0000,0000,,Joten me otimme siitä kopion käyttäen\Ndebuggausporttia. Ja kävi ilmi, että Dialogue: 0,0:21:26.54,0:21:33.02,Default,,0000,0000,0000,,tämä ITCM-muistialue pitää sisällään\NARM-koodia. Joten edelleen kysymys on: Dialogue: 0,0:21:33.02,0:21:37.57,Default,,0000,0000,0000,,mistä tämä ARM-koodi tulee? Tuleeko se\Nulkoisesta flash-muistista, kuten NES-ROM? Dialogue: 0,0:21:37.57,0:21:45.74,Default,,0000,0000,0000,,Minä toistin toimenpiteen,\Njonka teimme NES-ROM:ille. Dialogue: 0,0:21:45.74,0:21:52.26,Default,,0000,0000,0000,,Laitoin nollia salatun flash-muistin\Nalkuun, käynnistin laitteen ja Dialogue: 0,0:21:52.26,0:21:57.72,Default,,0000,0000,0000,,otin kopion ITCM-muistialueesta. Olin\Nonnekas heti ensimmäisellä yrittämällä, Dialogue: 0,0:21:57.72,0:22:03.99,Default,,0000,0000,0000,,koska ITCM:n sisältö muuttui. Koska\NITCM:ssä on koodia, ei dataa. Dialogue: 0,0:22:03.99,0:22:09.30,Default,,0000,0000,0000,,Aiemmin meillä oli ollut vain NES ROM,\Njoka oli vain dataa, mutta nyt meillä Dialogue: 0,0:22:09.30,0:22:14.85,Default,,0000,0000,0000,,koodia. Se tarkoitti, että samalla XOR-\Nkikalla, jota käytimme aiemmin, voisimme Dialogue: 0,0:22:14.85,0:22:21.53,Default,,0000,0000,0000,,laittaa ulkoiseen flash-muistiin koodia,\Njoka sitten ladattaisiin keskusmuistiin Dialogue: 0,0:22:21.53,0:22:27.62,Default,,0000,0000,0000,,laitteen käynnistyessä. Ja koska se on\Npysyvä menetelmä, voimme buutata Dialogue: 0,0:22:27.62,0:22:32.52,Default,,0000,0000,0000,,laitteen ja ajaa sitä ilman debuggeria.\NMikä tahansa koodi, jonka me latasimme Dialogue: 0,0:22:32.52,0:22:38.49,Default,,0000,0000,0000,,tälle ITCM-alueelle pystyi lukemaan\Nflash-muistia. Ja me ehkä voisimme Dialogue: 0,0:22:38.49,0:22:43.28,Default,,0000,0000,0000,,kirjoittaa koodia jota laite-\Nohjelmisto jotenkin kutsuisi ja Dialogue: 0,0:22:43.28,0:22:49.54,Default,,0000,0000,0000,,kopioisi sen keskusmuistiin, josta\Nme voisimme hakea sen debuggerilla. Dialogue: 0,0:22:49.54,0:22:57.56,Default,,0000,0000,0000,,Ongelma vain oli, että jos meillä\Non oma pätkä koodia tällä Dialogue: 0,0:22:57.56,0:23:04.75,Default,,0000,0000,0000,,ITCM-alueella, me emme tiedä mistä\Nosoiteesta ITCM:ssä ajetaan koodia. Dialogue: 0,0:23:04.75,0:23:09.41,Default,,0000,0000,0000,,Emme tiedä hyppääkö laiteohjelmisto\Nmuistipaikkaan 0 vai 200 vai mihin. Dialogue: 0,0:23:09.41,0:23:14.27,Default,,0000,0000,0000,,Mutta on olemassa yksinkertainen kikka\Noman koodinpätkän rakentamiseen, Se on Dialogue: 0,0:23:14.27,0:23:19.23,Default,,0000,0000,0000,,nimeltään NOP-liuku. NOP, eli No OPeration,\Non prosssorille annettava käsky joka ei Dialogue: 0,0:23:19.23,0:23:25.10,Default,,0000,0000,0000,,tee mitään. Ja jos me täytämme suurimman\Nosan ITCM-muistista NOP-käskyillä ja Dialogue: 0,0:23:25.10,0:23:31.70,Default,,0000,0000,0000,,sijoitamme oman koodimme niiden perään,\Nme saamme aikaan NOP-liu'un. Ja Dialogue: 0,0:23:31.70,0:23:37.26,Default,,0000,0000,0000,,kun prosessori, jota kuvaa Mario, hyppää\Nsatunnaiseen osoitteeseen tuossa liu'ussa, Dialogue: 0,0:23:37.26,0:23:43.50,Default,,0000,0000,0000,,se ryhtyy suorittamaan NOP-käskyjä kunnes\Nkohtaa koodimme ja suorittaa sen. Dialogue: 0,0:23:43.50,0:23:49.10,Default,,0000,0000,0000,,Näin vaikka Mario hyppää keskelle\NNOP-liukua, hän päätyy aina Dialogue: 0,0:23:49.10,0:23:54.92,Default,,0000,0000,0000,,meidän koodiimme. Konrad kirjoitti\Ntämän todella yksinkertaisen Dialogue: 0,0:23:54.92,0:23:58.33,Default,,0000,0000,0000,,koodin, jossa on ainoastaan noin 10\Nkäskyä, jotka ainoastaan kopioivat Dialogue: 0,0:23:58.33,0:24:03.98,Default,,0000,0000,0000,,sisäisen flash-muistin keskusmuistiin,\Njosta me voimme hakea sen debuggerilla. Dialogue: 0,0:24:03.98,0:24:08.28,Default,,0000,0000,0000,,Jeejee, todella yksinkertainen häkkäys.\NNyt meillä on kopio laiteohjelmistosta ja Dialogue: 0,0:24:08.28,0:24:13.59,Default,,0000,0000,0000,,koko flash-muistista. Nyt\Nvoimmekin ronkkia koko laitetta. Dialogue: 0,0:24:13.59,0:24:17.70,Default,,0000,0000,0000,,Olemme julkaisseet työkalut, joilla\Nsinä voit tehdä saman. Jos haluat Dialogue: 0,0:24:17.70,0:24:23.16,Default,,0000,0000,0000,,varmuuskopoida Nintendo Game & Watchin,\Nvoit mennä GitHubiini ja ladata Dialogue: 0,0:24:23.16,0:24:27.67,Default,,0000,0000,0000,,"Game & Watch backup" -säilön, jossa\Non paljon tietoa varmuuskopion Dialogue: 0,0:24:27.67,0:24:33.27,Default,,0000,0000,0000,,tekemisestä. Se tekee tarkistuksen\Nja varmistaa tekemättä laitteestasi Dialogue: 0,0:24:33.27,0:24:38.42,Default,,0000,0000,0000,,tiiliskiveä, että voit helposti\Ntehdä varmuuskopion laiteohjelmistosta, Dialogue: 0,0:24:38.42,0:24:43.61,Default,,0000,0000,0000,,asentaa harrastelijaohjelmoijien koodia,\Nja kuitenkin palauttamaan alkuperäisen. Dialogue: 0,0:24:43.61,0:24:50.63,Default,,0000,0000,0000,,Meillä on mahtava tukiyhteisö Discordissa.\NJos ikinä tarvitse apua, luulen että Dialogue: 0,0:24:50.63,0:24:55.27,Default,,0000,0000,0000,,sitä löytyy sieltä. Toistaiseksi meillä ei\Nole vielä yhtään tiiliskiveksi muuttunutta Dialogue: 0,0:24:55.27,0:25:02.20,Default,,0000,0000,0000,,Game & Watchia, joten koodi näyttää vakaalta.\NOlin hyvin innoissani, että tämä haaste Dialogue: 0,0:25:02.20,0:25:11.17,Default,,0000,0000,0000,,oli nyt ohi. Vai oliko se? Jos joskus\Nväität netissä murtaneesi onnistuneesti Dialogue: 0,0:25:11.17,0:25:18.18,Default,,0000,0000,0000,,sulautetun laitteen, siihen on tasan\Nyksi vastaus: mutta voiko sillä ajaa Dialogue: 0,0:25:18.18,0:25:23.61,Default,,0000,0000,0000,,Doomia? Kirjaimellisesti saamani\NTwitter-viestit, YouTube-kommentit, jopa Dialogue: 0,0:25:23.61,0:25:28.72,Default,,0000,0000,0000,,ystäväni spämmäsivät minua haasteella\Nsaada Doom toimimaan laitteessa. Mutta Dialogue: 0,0:25:28.72,0:25:34.39,Default,,0000,0000,0000,,sitä varten meidän pitäisi selvittää\Nkoko laitteen salat. Meidän pitäisi Dialogue: 0,0:25:34.39,0:25:40.07,Default,,0000,0000,0000,,luoda tapa kehittää omia ohjelmistoja\Nja ladata niitä laitteeseen. Onneksi Dialogue: 0,0:25:40.07,0:25:44.88,Default,,0000,0000,0000,,useimmat komponentit olivat hyvin\Ndokumentoituja ja siellä ei ollut Dialogue: 0,0:25:44.88,0:25:50.04,Default,,0000,0000,0000,,mitään vaitiolovelvollisuuden alaisia\Nkomponentteja. Esimerkiksi prosessorista Dialogue: 0,0:25:50.04,0:25:56.89,Default,,0000,0000,0000,,on avoin käsikirja ja kirjasto.\NFlash-muistisiru on hyvin tunnettu. Dialogue: 0,0:25:56.89,0:26:00.44,Default,,0000,0000,0000,,Ja niin pois päin. Siellä on vain\Npari tarkoitukseen suunniteltua Dialogue: 0,0:26:00.44,0:26:06.28,Default,,0000,0000,0000,,komponenttia. Esimerkiksi laitteen LCD on\Ntarkoitukseen suunniteltu ja jouduimme Dialogue: 0,0:26:06.28,0:26:12.69,Default,,0000,0000,0000,,tutkimaan SPI-väylässä näytölle menevää\Nliikennettä saadaksemme selville mm. Dialogue: 0,0:26:12.69,0:26:19.16,Default,,0000,0000,0000,,miten näyttö alustetaan. Jonkin\Najan kuluttua meillä oli täysi Dialogue: 0,0:26:19.16,0:26:24.54,Default,,0000,0000,0000,,laitteisto käytössä. Oli tuki LCD:lle,\Naudiolle, unitilalle, napeille ja Dialogue: 0,0:26:24.54,0:26:29.21,Default,,0000,0000,0000,,vieläpä työkalut, joilla pystyit SWD-\Ndebuggeria käyttäen kopioimaan ja Dialogue: 0,0:26:29.21,0:26:33.82,Default,,0000,0000,0000,,uudelleenkirjoittamaan ulkoisen flash-\Nmuistin. Kaikki löytyy GitHubistamme. Dialogue: 0,0:26:33.82,0:26:38.52,Default,,0000,0000,0000,,Jos haluat nyt muokata omaa Game &\NWatchiasi, kaikki mitä tarvitset on Dialogue: 0,0:26:38.52,0:26:46.84,Default,,0000,0000,0000,,debuggaussovitin, kuten 3 dollaria maksava\NST-link tai J-Link. Tai oikea ST-Link. Dialogue: 0,0:26:46.84,0:26:51.14,Default,,0000,0000,0000,,Ja sitten voitkin aloittaa. Olemme\Njulkaisseet projektipohjan, jolla kuka Dialogue: 0,0:26:51.14,0:26:54.91,Default,,0000,0000,0000,,tahansa haluava voi aloittaa kehittämään\Nomia pelejään Game & Watchille. Dialogue: 0,0:26:54.91,0:26:58.67,Default,,0000,0000,0000,,Se on yksinkertaista. On kuvapuskuri,\Njohon voit kirjoittaa. Kontrollit ovat Dialogue: 0,0:26:58.67,0:27:04.47,Default,,0000,0000,0000,,yksinkertaisia jne. Ja kuten sanoin,\Nmeillä on todella avulias yhteisö. Dialogue: 0,0:27:04.47,0:27:10.00,Default,,0000,0000,0000,,Nyt kun meillä oli koko laitteisto\Nhallussa, voin viimein työstää Doomia. Dialogue: 0,0:27:10.00,0:27:15.42,Default,,0000,0000,0000,,Aloitin tutkimalla muita Doomin sovituksia\NSTM32:lle. Ja löysin nimimerkin floppes Dialogue: 0,0:27:15.42,0:27:22.01,Default,,0000,0000,0000,,kirjoittaman stm3doomin. Ongelma oli,\Nettä stm32doom on suunniteltu laitteelle, Dialogue: 0,0:27:22.01,0:27:28.34,Default,,0000,0000,0000,,jossa on 8 megatavua keskusmuistia ja\NDoomin vaatimat tiedostot ulkoisella USB- Dialogue: 0,0:27:28.34,0:27:37.63,Default,,0000,0000,0000,,asemalla. Tässä oli vain 1,3 MB keskus-\Nmuistia, 128 kB flash-muistia ja 1 MB Dialogue: 0,0:27:37.63,0:27:42.60,Default,,0000,0000,0000,,ulkoista flash-muistia. Meidän pitäisi\Nmahduttaa siihen kaikki kentät, koodi ja Dialogue: 0,0:27:42.60,0:27:50.88,Default,,0000,0000,0000,,niin edelleen. Doomin kenttätieto\Non tallennettu nk. WAD-tiedostoihin Dialogue: 0,0:27:50.88,0:27:57.24,Default,,0000,0000,0000,,(WAD = Where's All my Data). Näissä\Ntiedostoissa on spritet, tekstuurit, Dialogue: 0,0:27:57.24,0:28:03.23,Default,,0000,0000,0000,,kentät jne. WAD Doom 1:lle on\Nnoin 4 megatavua kooltaan ja Dialogue: 0,0:28:03.23,0:28:11.44,Default,,0000,0000,0000,,WAD Doom 2:lle on 40 megatavua kooltaan.\NMutta meillä on vain 1,1 megatavua tilaa. Dialogue: 0,0:28:11.44,0:28:16.39,Default,,0000,0000,0000,,Lisäksi meidän on mahdutettava koodikin\Nsinne. Joten ilmeisesti meidän on löydettävä Dialogue: 0,0:28:16.39,0:28:22.20,Default,,0000,0000,0000,,joku tosi pieni Doom-sovitus. Ja kuten\Nselvisi, on olemassa Mini-WAD. Se on Dialogue: 0,0:28:22.20,0:28:27.68,Default,,0000,0000,0000,,minimaalinen Doom, jonka WAD-\Ntiedostosta on riisuttu kaikki Dialogue: 0,0:28:27.68,0:28:34.24,Default,,0000,0000,0000,,hilavitkuttimet ja kaikki on korvattu\Nyksinkertaisilla ääriviivoilla jne. Dialogue: 0,0:28:34.24,0:28:38.13,Default,,0000,0000,0000,,Ja vaikka se ei olekaan nätti, olin\Naika varma, että saisin sen toimimaan, Dialogue: 0,0:28:38.13,0:28:46.32,Default,,0000,0000,0000,,koska se tarvitsee vain 250 kilotavua\N40 megatavun sijasta. Lisäksi aika Dialogue: 0,0:28:46.32,0:28:51.30,Default,,0000,0000,0000,,monta asiaa Chocolate Doom -sovituksesta\Npiti muuttaa. Esimerkiksi minun piti Dialogue: 0,0:28:51.30,0:28:56.15,Default,,0000,0000,0000,,poistaa kaikki tiedostoja käsittelevä\Nkoodi ja korvata se omallani. Dialogue: 0,0:28:56.15,0:29:01.23,Default,,0000,0000,0000,,Minun piti myös lisätä tuki Game &\NWatchin LCD:lle ja napeille. Minun piti Dialogue: 0,0:29:01.23,0:29:05.35,Default,,0000,0000,0000,,hankkiutua eroon monesta asiasta\Nsaadakseni sen toimimaan suht' sujuvasti. Dialogue: 0,0:29:05.35,0:29:10.63,Default,,0000,0000,0000,,Esimerkiksi pahamainen pyyhkimisefekti\Noli pakko tiputtaa, kuten myös äänet. Dialogue: 0,0:29:10.63,0:29:16.27,Default,,0000,0000,0000,,Seuraava ongelma oli, että kun sitä\Nkäännettiin, se ei mahtunut keskusmuistiin Dialogue: 0,0:29:16.27,0:29:22.82,Default,,0000,0000,0000,,ja kaatuili kaiken aikaa. Laitteella on\Nnoin 1,3 megatavua keskusmuistia eri Dialogue: 0,0:29:22.82,0:29:27.51,Default,,0000,0000,0000,,alueilla. Ja esimerkiksi kuvapuskuri,\Njota selvästi tarvitsemme, vie siitä Dialogue: 0,0:29:27.51,0:29:36.35,Default,,0000,0000,0000,,154 kilotavua. Sitten meillä on 160 kilotavua\Nalustettua dataa, 320 kilotavua alustamatonta Dialogue: 0,0:29:36.35,0:29:42.00,Default,,0000,0000,0000,,dataa ja tonneittain dynaamisia varauksia,\Njoita Chocolate Doom tekee. Ja nämä Dialogue: 0,0:29:42.00,0:29:46.61,Default,,0000,0000,0000,,dynaamiset varaukset olivat iso ongelma,\Nkoska Chocolate Doomin lähdekoodi tekee Dialogue: 0,0:29:46.61,0:29:52.48,Default,,0000,0000,0000,,paljon pieniä varauksia, joita käytetään\Nväliaikaiseen tiedonvarastointiin kunnes Dialogue: 0,0:29:52.48,0:29:58.60,Default,,0000,0000,0000,,ne vapautetaan. Dynaaminen\Nmuisti fragmentoituu pahasti Dialogue: 0,0:29:58.60,0:30:02.71,Default,,0000,0000,0000,,äkkiä. Lopulta siellä ei ole yhtään\Ntilaa jäljellä esimerkiksi kentän Dialogue: 0,0:30:02.71,0:30:09.79,Default,,0000,0000,0000,,alustamiseen. Ja korjatakseni tämän\Notin Chocolate Doomin lähdekoodin Dialogue: 0,0:30:09.79,0:30:15.11,Default,,0000,0000,0000,,ja muutin paljon dynaamisia varauksia\Nstaattisiksi varauksiksi, josta Dialogue: 0,0:30:15.11,0:30:22.03,Default,,0000,0000,0000,,seurasi se iso etu, että kääntäjän\Nvirheilmoitukset tekivät enemmän järkeä. Dialogue: 0,0:30:22.03,0:30:27.34,Default,,0000,0000,0000,,Koska se kertoi sinulle: "hei, tämä ja\Ntämä data ei mahdu keskusmuistiin". Dialogue: 0,0:30:27.34,0:30:31.99,Default,,0000,0000,0000,,Lopulta useiden yritysten ja erehdysten\Nsekä kopioituani mahdollisimman monta Dialogue: 0,0:30:31.99,0:30:39.40,Default,,0000,0000,0000,,alkuperäistä resurssia Mini-WAD:iin,\Nsain se toimimaan. Minulla oli Doom, joka Dialogue: 0,0:30:39.40,0:30:45.03,Default,,0000,0000,0000,,toimi tässä Game & Watch -laitteessa\Nja toivottavasti rauhoitti Internetin jumalat, Dialogue: 0,0:30:45.03,0:30:49.75,Default,,0000,0000,0000,,jotka pakottivat minut tekemään sen.\NValitettavasti USB-portti ei ole fyysisesti Dialogue: 0,0:30:49.75,0:30:55.69,Default,,0000,0000,0000,,kytketty prosessoriin ja siten ei ole\Nmahdollista hakkeroida laitetta Dialogue: 0,0:30:55.69,0:31:00.39,Default,,0000,0000,0000,,liittämällä se tietokoneeseen.\NKuitenkin on aika helppo tehdä tämä Dialogue: 0,0:31:00.39,0:31:06.79,Default,,0000,0000,0000,,käyttäen jotain näistä USB-debuggereista.\NEniten toivottu ohjelmistotyyppi Dialogue: 0,0:31:06.79,0:31:12.87,Default,,0000,0000,0000,,oli selkeästi emulaattorit. Ja olen ylpeä\Nsanoessani, että tällä hetkellä meillä Dialogue: 0,0:31:12.87,0:31:19.21,Default,,0000,0000,0000,,on suurehko kokoelma emulaattoreita, jotka\Ntoimivat Nintendo Game & Watchilla. Ja se Dialogue: 0,0:31:19.21,0:31:23.37,Default,,0000,0000,0000,,alkoi Konrad Beckmannin aloittamasta\NRetro Go -projektista, joka on Dialogue: 0,0:31:23.37,0:31:29.97,Default,,0000,0000,0000,,kokoelma emulaattoreita laitteelle nimeltä\NOdroid Go. Odroid Go on pieni kannettava Dialogue: 0,0:31:29.97,0:31:35.88,Default,,0000,0000,0000,,laite, jossa on samanlaiset kontrollit ja\Nkokorajoitukset kuin Game & Watchissa. Dialogue: 0,0:31:35.88,0:31:40.63,Default,,0000,0000,0000,,Se oli aika siistiä sovittaa tätä koodia,\Nkoska se raskas työ oli jo tehty. Dialogue: 0,0:31:40.63,0:31:47.67,Default,,0000,0000,0000,,Retro Go sisältää emulaattorit\NNES:ille, Gameboylle, Gameboy Colorille, Dialogue: 0,0:31:47.67,0:31:52.77,Default,,0000,0000,0000,,jopa Sega Master Systemille\Nja Sega Game Gearille. Dialogue: 0,0:31:52.77,0:31:58.29,Default,,0000,0000,0000,,Pari päivää myöhemmin Konrad pystyi\Nesittelemään NES-emulaattoriaan Dialogue: 0,0:31:58.29,0:32:02.96,Default,,0000,0000,0000,,ajamassa Zeldaa ja muita pelejä, kuten\NContraa, Nintendo Game & Watchilla. Dialogue: 0,0:32:02.96,0:32:09.23,Default,,0000,0000,0000,,Tämä on superhauskaa. Aluksi meillä\Noli vain perusemulaattori, jolla Dialogue: 0,0:32:09.23,0:32:13.17,Default,,0000,0000,0000,,pystyi hädintuskin pelaamaan ja se\Ntiputti frameja. Meillä ei ollut Dialogue: 0,0:32:13.17,0:32:18.29,Default,,0000,0000,0000,,nättiä skaalausta, VSynciä jne. Mutta\Nnyt useamman viikon jälkeen se on Dialogue: 0,0:32:18.29,0:32:24.09,Default,,0000,0000,0000,,aika kiva laite käyttää ja pelata. Meillä\Non myös Gameboy-emulaattori, jolla voit Dialogue: 0,0:32:24.09,0:32:29.44,Default,,0000,0000,0000,,pelata Gameboy-suosikkejasi, kuten\NPokémonia, Super Mario Landia jne. Dialogue: 0,0:32:29.44,0:32:35.16,Default,,0000,0000,0000,,Nintendo Game & Watchilla jos sinulla\Nvain sattui ROM:ien varmuuskopiot. Dialogue: 0,0:32:35.16,0:32:38.65,Default,,0000,0000,0000,,Me kokeilimme erilaisia skaalaus-\Nalgoritmeja hyödyntääkseemme näyttöä. Dialogue: 0,0:32:38.65,0:32:43.31,Default,,0000,0000,0000,,Sinä voit vaihtaa\Nkäytettyä skaalausalgoritmia Dialogue: 0,0:32:43.31,0:32:48.16,Default,,0000,0000,0000,,omien mieltymystesi mukaan.\NVoit vaihtaa jopa väripalettia Dialogue: 0,0:32:48.16,0:32:54.45,Default,,0000,0000,0000,,peleille. Meillä on kiva peli-\Nvalikko, joka antaa sinun Dialogue: 0,0:32:54.45,0:32:59.24,Default,,0000,0000,0000,,pitää laitteella useampia ROM:eja\Nja vaihtaa niiden välillä. Meillä on Dialogue: 0,0:32:59.24,0:33:04.21,Default,,0000,0000,0000,,tuki tilan tallentamiselle, joten laite\Ntallentaa edistymisesi vaikka Dialogue: 0,0:33:04.21,0:33:08.87,Default,,0000,0000,0000,,sammuttaisit lalitteen ja voit jatkaa\Npeliäsi vaikka akku tyhjenisi. Dialogue: 0,0:33:08.87,0:33:14.38,Default,,0000,0000,0000,,Löydät lähdekoodin kaikkeen tämän\NKonradin Retro Go -GitHub-säilöstä. Dialogue: 0,0:33:14.38,0:33:20.71,Default,,0000,0000,0000,,Ja se todella mahtavaa. Muut\Nihmiset kehittävät esimerkiksi Dialogue: 0,0:33:20.71,0:33:25.43,Default,,0000,0000,0000,,emulaattorin CHIP-8:lle ja siinä on\Nkiva kokoelma pieniä arcade-pelejä Dialogue: 0,0:33:25.43,0:33:31.27,Default,,0000,0000,0000,,ja se on todella kivaa ja helppoa\Nkehittää lisää sitä käyttäen. Dialogue: 0,0:33:31.27,0:33:37.01,Default,,0000,0000,0000,,Joten kokeile sitä jos sinulla on\NGame & Watch ja omatekoiset ohjelmat kiinnostavat. Dialogue: 0,0:33:37.01,0:33:41.59,Default,,0000,0000,0000,,Tim Schuerwegen jopa työstää emulaattoria\Nalkuperäisille Game & Watch -peleille. Dialogue: 0,0:33:41.59,0:33:45.92,Default,,0000,0000,0000,,Tämä on todella siistiä, koska se tekee\NNintendo Game & Watchista emulaattorin Dialogue: 0,0:33:45.92,0:33:53.13,Default,,0000,0000,0000,,kaikille koskaan julkaistuille\NGame & Watch -peleille. Dialogue: 0,0:33:53.13,0:33:57.86,Default,,0000,0000,0000,,Ja mikä on todella mahtavaa minusta on se\Nmiten yhteisö syntyi. Me olemme aika Dialogue: 0,0:33:57.86,0:34:02.14,Default,,0000,0000,0000,,avoimia kehityksestämme Twitterissä\Nja Konrad striimaa Twitchissä Dialogue: 0,0:34:02.14,0:34:06.48,Default,,0000,0000,0000,,edistymisestään. Me avasimme Discord-\Nkanavan, jolle laitteen hakkeroinnista Dialogue: 0,0:34:06.48,0:34:11.85,Default,,0000,0000,0000,,kiinnostuneet ihmiset voivat liittyä.\NJa oli mahtavaa nähdä mitä yhteisö Dialogue: 0,0:34:11.85,0:34:16.72,Default,,0000,0000,0000,,sai aikaan. Esimerkiksi nyt meillä on\Ntoimivat tallennuspäivitys, joka toimii Dialogue: 0,0:34:16.72,0:34:21.18,Default,,0000,0000,0000,,sekä omatekoisten ohjelmien että\Nvirallisen laiteohjelmiston kanssa. Dialogue: 0,0:34:21.18,0:34:25.32,Default,,0000,0000,0000,,Yhden megatavun tallennustilan sijaan\Nvoit saada 60 megatavua flash-muistia. Dialogue: 0,0:34:25.32,0:34:30.55,Default,,0000,0000,0000,,Sitä varten sinun on korvattava vain yksi\Nainoa siru. Se on aika helppo tehdä. Dialogue: 0,0:34:30.55,0:34:35.69,Default,,0000,0000,0000,,Raudan täydellistä ymmärtämistä varten\NDaniel Cuthbert ja Daniel Padilla ovat Dialogue: 0,0:34:35.69,0:34:41.01,Default,,0000,0000,0000,,toimittaneet korkean resoluution röntgen-\Nkuvat, joista näkyy jokainen kytkentä, Dialogue: 0,0:34:41.01,0:34:46.38,Default,,0000,0000,0000,,jopa PGA-osien. Mitään ei tarvitse\Njuottaa irti. Sitten Jake Little Dialogue: 0,0:34:46.38,0:34:52.98,Default,,0000,0000,0000,,Upcycle Electronicsista jäljitti kuvista\Nja yleismittarilla piirilevyn Dialogue: 0,0:34:52.98,0:34:58.22,Default,,0000,0000,0000,,kaavion. Hän jopa loi\Npiirrustukset, joista selviää kaikki Dialogue: 0,0:34:58.22,0:35:02.26,Default,,0000,0000,0000,,yksityiskohdat, joita tarvitset kun haluat\Nohjelmoida jotain. Se oli todella hauskaa. Dialogue: 0,0:35:02.26,0:35:07.10,Default,,0000,0000,0000,,Sander van der Wel esimerkiksi on luonut\Noman piirilevynsä ja nyt on jopa Dialogue: 0,0:35:07.10,0:35:13.22,Default,,0000,0000,0000,,projekteja, joissa pyritään korvaamaan\Nalkuperäinen piirilevy piirilevyllä, Dialogue: 0,0:35:13.22,0:35:20.02,Default,,0000,0000,0000,,jossa on FPGA ja ESP32. Joten on todella\Njännä nähdä mitä ihmiset saavat aikaan. Dialogue: 0,0:35:20.02,0:35:24.82,Default,,0000,0000,0000,,Toivottavasti nautit tästä esityksestä ja\Nminä toivon, että näen sinut Discordissa Dialogue: 0,0:35:24.82,0:35:35.02,Default,,0000,0000,0000,,jos haluat liittyä hauskanpitoon.\NJa kiitos kun olit mukana. Dialogue: 0,0:35:35.02,0:35:41.33,Default,,0000,0000,0000,,Herald: Hei. Vau, se oli todella uskomaton\Nesitys. Kiitos paljon, Thomas. Dialogue: 0,0:35:41.33,0:35:48.14,Default,,0000,0000,0000,,Kuten ilmoitimme alussa, otamme vastaan\Nkysymyksiä teiltä ja meillä onkin niitä Dialogue: 0,0:35:48.14,0:35:54.45,Default,,0000,0000,0000,,jo muutama. Katsotaan saammeko käytyä\Nne kaikki läpi. Ensimmäinen on: Dialogue: 0,0:35:54.45,0:35:59.65,Default,,0000,0000,0000,,luitko artikkeleita Nintendosta\Ntarkkailemassa hakkereita? Yksityis- Dialogue: 0,0:35:59.65,0:36:04.80,Default,,0000,0000,0000,,etsiviä ja sellaista. Oletko mitenkään\Nhuolissasi tälläisesta? Dialogue: 0,0:36:04.80,0:36:08.40,Default,,0000,0000,0000,,Thomas: Voi, mitä minun kameralleni\Ntapahtuu? Näyttää siltä kuin Luigi Dialogue: 0,0:36:08.40,0:36:17.54,Default,,0000,0000,0000,,olisi sekoillut asetusteni kanssa. Joo,\Nolen lukenut nuo artikkelit, mutta Dialogue: 0,0:36:17.54,0:36:22.21,Default,,0000,0000,0000,,tässä tapauksessa ei ole piratismi-\Nongelmaa, eihän? En anna kenenkään Dialogue: 0,0:36:22.21,0:36:26.94,Default,,0000,0000,0000,,pelata uusia pelejä. Jos haluaisit\Nkopioida Super Mario ROM:in, sinun Dialogue: 0,0:36:26.94,0:36:32.16,Default,,0000,0000,0000,,olisi pitänyt tehdä se 30 vuotta sitten,\NNES Classicilla tai Switchillä tai jollain Dialogue: 0,0:36:32.16,0:36:37.24,Default,,0000,0000,0000,,niistä sadoista Nintendon siinä välissä\Njulkaisemista konsoleista. Joten en ole Dialogue: 0,0:36:37.24,0:36:41.48,Default,,0000,0000,0000,,erityisen huolissani asiasta.\NH: Luulen myös, että kohdeyleisön Dialogue: 0,0:36:41.48,0:36:50.27,Default,,0000,0000,0000,,näkökulma näkyy täällä. Seuraavaan\Nkysymykseen, joka on: luuletko, että Dialogue: 0,0:36:50.27,0:36:55.46,Default,,0000,0000,0000,,on olemassa syy siihen miksi\Nulkoista flash-sirua käytetään? Dialogue: 0,0:36:55.46,0:37:02.85,Default,,0000,0000,0000,,Thomas: Jep. STM32H7B0:n sisäinen \Nflash-muisti on suht' pieni. Se on Dialogue: 0,0:37:02.85,0:37:08.45,Default,,0000,0000,0000,,vain 128 kilotavua. Ja he eivät olisi\Nmahduttaneet kaikkea sille, ei edes Dialogue: 0,0:37:08.45,0:37:13.24,Default,,0000,0000,0000,,kuvapuskuria. Jopa kuvapuskurin\Nkuva on suurempi kuin sisäinen Dialogue: 0,0:37:13.24,0:37:19.10,Default,,0000,0000,0000,,flash-muisti. Luulen, että se on syy\Nja olen tyytyväinen, että he tekivät niin. Dialogue: 0,0:37:19.10,0:37:26.73,Default,,0000,0000,0000,,H: Aivan. Onko salauksen purku tehty\Nkoodilla vai onko se mikrokontrollerin Dialogue: 0,0:37:26.73,0:37:30.46,Default,,0000,0000,0000,,ominaisuus?\NT: Mikrokontrollerissa on Dialogue: 0,0:37:30.46,0:37:36.16,Default,,0000,0000,0000,,integroitu ominaisuus nimeltään OFT-DEC.\NFlash-muisti on suoraan mapattu muistiin Dialogue: 0,0:37:36.16,0:37:41.11,Default,,0000,0000,0000,,ja sirussa on tämä OTF DEC -esitäyttö,\Njoka tarjoaa automaattisesti Dialogue: 0,0:37:41.11,0:37:45.43,Default,,0000,0000,0000,,salakirjoituksen purun. Se tehdään\Nkaikki raudalla ja voit jopa hakea Dialogue: 0,0:37:45.43,0:37:48.35,Default,,0000,0000,0000,,salausavaimet sieltä raudasta. Dialogue: 0,0:37:48.35,0:37:57.91,Default,,0000,0000,0000,,Herald: OK, näppärää. Ja myös seuraava\Nkysymys liittyy siihen: Dialogue: 0,0:37:57.91,0:38:03.52,Default,,0000,0000,0000,,onko mielestäsi Nintendon käyttämä salaus\Nsiihen käytetyn vaivan arvoinen? Dialogue: 0,0:38:03.52,0:38:07.43,Default,,0000,0000,0000,,Ikään kuin se olisi siellä antaakseen\Nvalheellista turvallisuudentunnetta. Dialogue: 0,0:38:07.43,0:38:12.71,Default,,0000,0000,0000,,Mitä sinä ajattelet siitä?\NT: Ajattelen omasta näkökulmastani, että Dialogue: 0,0:38:12.71,0:38:16.49,Default,,0000,0000,0000,,he valitsivat oikean salauksen, koska\Nsitä oli hauskaa takaisinmallintaa ja Dialogue: 0,0:38:16.49,0:38:21.91,Default,,0000,0000,0000,,yrittää ohittaa. Se oli mahtava\Nhaaste ja ajattelen, että he tekivät Dialogue: 0,0:38:21.91,0:38:26.90,Default,,0000,0000,0000,,kaiken oikein. Mutta ajattelen myös, että\Nloppupeleissä se on yksinkertainen laite Dialogue: 0,0:38:26.90,0:38:31.57,Default,,0000,0000,0000,,ja jos katsot mitä ihmiset rakentavat\Nsen päälle - pelejä ja kaikkea muuta - Dialogue: 0,0:38:31.57,0:38:36.68,Default,,0000,0000,0000,,ajattelen, että he tekivät kaiken oikein.\NLuultavasti se oli vain rutiinijuttu Dialogue: 0,0:38:36.68,0:38:41.57,Default,,0000,0000,0000,,heille. "OK, me lukittiin JTAG."\NJep, mutta luulen että se on hauskaa, Dialogue: 0,0:38:41.57,0:38:44.61,Default,,0000,0000,0000,,koska e ei avaa piratismiongelmaa. Dialogue: 0,0:38:44.61,0:38:51.14,Default,,0000,0000,0000,,H: Jep. Yksi juttu liittyy NOP-\Nliukuun, jonka havainnollistit Dialogue: 0,0:38:51.14,0:39:01.19,Default,,0000,0000,0000,,todella hyvin. Eikö aliohjelmien\Nalut olisivat olleet sopivia myös Dialogue: 0,0:39:01.19,0:39:11.46,Default,,0000,0000,0000,,tämän tavoitteen saavuttamiseen? Kysyjä\Nsanoo, että rekisterien tallettamiseen Dialogue: 0,0:39:11.46,0:39:20.64,Default,,0000,0000,0000,,liittyvät komennot ovat aika tunnistettavia.\NKuinka... Jep. T: Joo, todellakin. Datan Dialogue: 0,0:39:20.64,0:39:25.02,Default,,0000,0000,0000,,löytämiseen ITCM-muistista ja sen\Nhyväksikäyttöön meni alle tunti aikaa. Dialogue: 0,0:39:25.02,0:39:29.95,Default,,0000,0000,0000,,Joten jos me olisimme yrittäneet\Ntakaisinmallintaa koodia, se olisi Dialogue: 0,0:39:29.95,0:39:33.66,Default,,0000,0000,0000,,ollut enemmän työtä. Täysin mahdollista\Neikä edes vaikeaa, mutta keskusmuistin Dialogue: 0,0:39:33.66,0:39:38.56,Default,,0000,0000,0000,,täyttäminen NOP-käskyillä vei vain pari\Nminuuttia ja oli sekä helpoin että nopein Dialogue: 0,0:39:38.56,0:39:45.42,Default,,0000,0000,0000,,tapa edetä ilman Ghidraa.\NH: OK, siistiä, kiitos. Ja tämä on Dialogue: 0,0:39:45.42,0:39:54.33,Default,,0000,0000,0000,,enemmän kommentti kuin kysymys. Hän sanoo,\Nettä on outoa ettei ST:n AN5281 mainitse Dialogue: 0,0:39:54.33,0:39:59.63,Default,,0000,0000,0000,,kertaakaan, että dataa ei verifioida\Nsalauksen aikana. Minusta se on Dialogue: 0,0:39:59.63,0:40:05.76,Default,,0000,0000,0000,,enemmän virhe ST:n kuin Nintendon\Npuolelta. Mitä ajattelet tästä? Dialogue: 0,0:40:05.76,0:40:10.69,Default,,0000,0000,0000,,Thomas: Joo, minä olen jokseeenkin samaa\Nmieltä tästä. Vaikka sinulla ei olisi Dialogue: 0,0:40:10.69,0:40:17.67,Default,,0000,0000,0000,,JTAG:ia, ARM:n Thumb-käsky\Non 2-4 tavua ja olisi aika pieni Dialogue: 0,0:40:17.67,0:40:21.86,Default,,0000,0000,0000,,tila bruteforcettaa mahdollisesti\Nmielenkiintoinen haarautumiskomento. Dialogue: 0,0:40:21.86,0:40:28.01,Default,,0000,0000,0000,,Joten luulen, että se ei ole täydellistä,\Nmutta verifiointi on aika Dialogue: 0,0:40:28.01,0:40:33.41,Default,,0000,0000,0000,,kallista laskentamielessä ja\Nminusta laiteohjelmiston pitäisi Dialogue: 0,0:40:33.41,0:40:37.16,Default,,0000,0000,0000,,verifioida ulkoisen flash-muistin sisältö. Dialogue: 0,0:40:37.16,0:40:44.11,Default,,0000,0000,0000,,H: OK, luulen, että kysymme vielä\Nkaksi kysymystä ennen kuin palaamme Dialogue: 0,0:40:44.11,0:40:52.00,Default,,0000,0000,0000,,studioon. Kysymys AES-\Nsalausavaimista... Saitteko Dialogue: 0,0:40:52.00,0:40:57.35,Default,,0000,0000,0000,,niitä haltuunne?\NThomas: Kyllä saimme. Mutta se on Dialogue: 0,0:40:57.35,0:41:01.70,Default,,0000,0000,0000,,ST:n sovellus, ja he tekevät jotain hullua\Nshiftausta avaimille, mutta luulen, Dialogue: 0,0:41:01.70,0:41:07.40,Default,,0000,0000,0000,,että juuri tänään, vain tunti ennen\Ntätä esitystä yksi äijä... Sori, en Dialogue: 0,0:41:07.40,0:41:12.65,Default,,0000,0000,0000,,tiedä, onko kyseessä äijä... Henkilö\NDiscordissa rakensi uudelleen salauksen. Dialogue: 0,0:41:12.65,0:41:16.78,Default,,0000,0000,0000,,Mutta me, minä henkilökohtaisesti\Nen ollut ikinä kiinnostunut siitä, Dialogue: 0,0:41:16.78,0:41:22.08,Default,,0000,0000,0000,,koska kun olet laskenut laitteen\NRTP-tasolle 0, voit lukea mapatun Dialogue: 0,0:41:22.08,0:41:24.74,Default,,0000,0000,0000,,flash-muistin ja saada salaamattoman\Nsisällön haltuusi. Dialogue: 0,0:41:24.74,0:41:32.01,Default,,0000,0000,0000,,H: Aivan, kiitos. Ja viimeinen\Nkysymys LCD-kontrollerista. Käytetäänkö Dialogue: 0,0:41:32.01,0:41:38.18,Default,,0000,0000,0000,,sitä kirjoittamalla pikseleitä SPI:n yli\Nvai onko siinä jotain ominaisuuksia, Dialogue: 0,0:41:38.18,0:41:40.93,Default,,0000,0000,0000,,ehkä jopa tausta tai spritejä tai jotain\Nsellaista? Dialogue: 0,0:41:40.93,0:41:46.81,Default,,0000,0000,0000,,T: LCD:ssä itsessään ei ole mitään\Nerikoisominaisuuksia. Siinä on SPI-väylä Dialogue: 0,0:41:46.81,0:41:50.93,Default,,0000,0000,0000,,konfigurointiin ja sitten siinä on\Nrinnakaisliitäntä - joten se tarvitsee Dialogue: 0,0:41:50.93,0:41:56.81,Default,,0000,0000,0000,,paljon pinnejä. Mutta siru itsessään\Nsisältää LTDC:n, joka on LCD-kontrolleri, Dialogue: 0,0:41:56.81,0:42:00.77,Default,,0000,0000,0000,,joka tarjoaa kaksi tasoa alfasekoituksella\Nja jotain perusikkunointia yms. Dialogue: 0,0:42:00.77,0:42:06.63,Default,,0000,0000,0000,,H: OK, siistiä ja kiitos todella, todella Dialogue: 0,0:42:06.63,0:42:11.80,Default,,0000,0000,0000,,paljon hienosta esityksestä ja hienosta\Nintrosta. Ja nyt palaamme päästudioomme Dialogue: 0,0:42:11.80,0:42:14.86,Default,,0000,0000,0000,,kiertoradalle. Kiitos todella paljon.\NTakaisin kiertoradalle. Dialogue: 0,0:42:14.86,0:42:17.98,Default,,0000,0000,0000,,{\i1}rC3-loppumusiikkia{\i0} Dialogue: 0,0:42:17.98,0:42:46.00,Default,,0000,0000,0000,,Subtitles created by c3subtitles.de\Nin the year 2020. Join, and help us! Dialogue: 0,0:42:46.00,0:42:56.00,Default,,0000,0000,0000,,Translated by Markus Aurala\N(KYBS2004 course assignment at JYU.FI)