Tüketici Elektroniki Özelleştirme için Ters Mühendislik Teknikleri
Tüketici Elektronikinde Ters Mühendislik Nedir?
Ters mühendislik, mimari, bileşenleri ve operasyonel mantığı anlamak için bir ürün inşa etmenin sistematik bir süreçtir. tüketici elektronik bağlamında, bu bir cihaz almak anlamına gelir - bir yönlendirici, akıllı konuşmacı, bir oyun konsolu veya fitness pisti - ve üreticilerin nasıl yerine getireceğini ortaya çıkarmak için donanım ve yazılımı analiz eder.Bu, kullanıcıların kapalı ekosistemlere nasıl daha karmaşık ve özel hale gelir.
Uygulama elektrik mühendisliği, bilgisayar bilimi ve ürün tasarımının kesiştiği noktada oturuyor. Sabır, yöntemsel düşünme ve akıllı termostata derin bir şekilde ayak uydurmaya istekli olun, veri tabloları ve ikili kodu. Sık sık bir güvenlik araştırması ile ilişkili olsa da - özelleştirmenin anlaşılması ve uzatılması için tersine mühendislik. Akıllı termostatınıza yeni bir özellik eklemek istiyorsanız, eski bir yönlendiriciye özel bir bellek açın veya başarısız bir akıllı telefona tamir edin.
Çoğu tüketici elektronikleri “kara kutular” olarak tasarlanmıştır: girişlerini ve çıktılarını biliyorsunuz, ancak iç çalışmalar tüketici elektroniklerini özelleştirmek için geri dönüşümlü olarak kalır.Relaksiyon mühendisliği, uygulama alanlarının fiziksel ayrımcı ve devre dışı kalmasına ilişkin becerilere sahiptir.Bu makale, tüketici elektroniklerini özelleştirmek için temel teknikleri, araçları ve uygulamaları inceler.
Vakıf: Cihazın Amacını ve Ekosistemini Anlamak
Bir tornavidayı seçmek veya bir debugger başlatmaktan önce, cihazın ne yapması gerektiğini ve daha büyük bir ekosisteme nasıl uygun olduğunu anlamanız gerekir. Bu ön araştırma, cihazın birçok tüketici elektronik kullanım ortak fişeği okuyarak başlar.If you need to understand what it is should be into a larger ekosistem. Search for community forums and GitHub repositories where other passions may have already made some of the work.IfMail use common chips (eg., Qualcomm Atheros, MediaTek İskandinavya, Judith32, and user manuals. Search for community pools, their community pools and GitHub repositories where other passions can already done some of the work.
Ekosistemi anlamak büyük olasılıkla iletişim protokolleri, Yazılım güncelleştirme mekanizmaları ve potansiyel debug arabirimleri belirlemenize yardımcı olur. Örneğin, akıllı bir ışık lb muhtemelen Espressif veya Bluetooth Low Energy çipinden bir WiFi modülü kullanırken, bunu bilmek doğru araçları hazırlamak ve analiz etmeniz gereken sinyalleri tahmin etmenize olanak sağlar.
Ters Mühendislikte Anahtar Teknikleri
Ters mühendislik birkaç çakıltma tekniğine kırılabilir. Çoğu proje, gerekli özelleştirme derinliğine bağlı olarak bunların bir kombinasyonunu kullanır.
1. Fiziksel Disassembly ve Muayene
İlk adım genellikle cihazı açıyor. Bu, doğru araçları gerektirir: hassas tornavidalar (Phillips, Torx, pentalobe), plastik söndürücüler, açılış seçici kablolar ve ısı kaynakları (havalı tüfek veya iOpener) birlikte yapıştırılır. Birçok tüketici gadget'lar, gömülü taşıyıcılar veya ağır yapıştırıcıları tam olarak caydırmak için referans sağlayabilir.Bir kez, her adımın içinde fotoğraf ve notlar ile her adım.
İnceleme sırasında ana PCB, işlemci (SoC), hafıza çipleri (flash, RAM), güç yönetimi ICs ve herhangi bir radyo modülleri. Test noktalarına bakın, popülatif başlıklara veya "CN1" gibi ekranlı etiketlere bakın, bu sayılar Ekimopart veya DatasheetArchive gibi siteler hakkında.
2. Devre Analizi
Cihazın açık olduğu zaman, bileşenlerin elektriksel olarak nasıl bağlantılı olduğunu anlamanız gerekir. Çokmetre süreklilik testleri için temel araçtır, dirençleri ölçmek ve gerilim raylarını kontrol etmek için. Örneğin, 3V veya 1.8V hatları için bu gücü kontrol edebilirsiniz, ya da zemin pinleri bulmak için bir oscilloskopu dalgaformları yakalamak için en değerli araçtır - UART TX / RX hatları, SPI saat / sinyalleri, PWM çıktıları motor sürücüleri üzerinde, ya da I2C otobüs aktivitesini tetikleyebilirsiniz.
Daha karmaşık devreler için, yeterince kanalla ilgili bir mantık analizörü (24+ yaygın) aynı anda dijital protokolleri kodlamanıza izin verir. Birçok mantık analizcüler I2C, SPI, UART, CAN veya hatta ham Manchester encoding. Saleae Logic (commercial ve yazılım uyumlu klonlar) gibi araçlar sıklıkla veri kodlarını kullanarak, komut setleri veya çöplükleri anlamak veya enjekte etmek için faydalı olabilir.
3. Firmaware Ekstraksiyon
Firmaware, cihazın ana programını içerir - işletim mantığı. Bunu alıntılama yazılım seviyesindeki özelleştirme için kritik bir adımdır. Birkaç yöntem vardır:
- [FONT=0)SIZ SPI/JTAG / SWD[[DÜT 1: 1] ile oku: Birçok cihaz SPI flash bellek (Winbond, Macronix vs.) kullanabilirsiniz JTAG veya SWD debug arayüzleri kullanarak bir programcı kullanabilirsiniz veya bir video-cam-Linki kullanıyorsanız, J-Link'in anahtarını kullanabilir veya kullanabilirsiniz.
- [FONT:0)Bootloader, [Dönetici: Bazı cihazlar bir seri konsol üzerinde bilgisayar okuma işlevlerini gösteren bir kanal içi veya bir imzalı bilgisayar kırılganlığı kullanılması sırasında belirli düğmeleri yayınlar.
- [FONT:0)Over-the-air (OTA) güncelleme yakalama): Birçok IoT cihazı HTTP/HTTPS aracılığıyla bellek/HTTPS'yi indirmeye veya IPv4 ile güncelleme paketi analiz edebilir.
- [FONT:0]Using vulnerabilities[[[Döneticiler: 1) Araştırma takımları bazen uzaktan veya yerel bilgisayar ekipmanlarının boşaltılmasına izin veren yazılımları kullanıyor. (Ayrıcalar yasal sınırlar içinde çalışır.)
Bir ikili dosyanız olduğunda, dosya sistemlerini çıkarmak için binwalk gibi araçlarla inceleyin (SquashFS, JFFS2, vs.). Daha sonra Ghidra veya IDA Pro'yu dekompile'yi kullanın ve kodu analiz edin. Birçok yönlendirici, örneğin Linux'u çalıştırın ve kullanıcı alanı uygulamalarını tanımlayabilirsiniz.
4. Yazılım Debugging ve Analiz
Donanımı geri yüklemeden sonra, bir dislokatör ile statik analiz, program akışını anlamak için ana yoldur. Ghidra (open-source, NSA tarafından tutulan) tüketici elektronikleri için güçlü bir araçtır, çünkü geniş bir işlemci mimarisine sahiptir (ARM, MIPS, x86, RISC-V, vb.).
Dinamik analiz için, bir test odasında (örneğin, QEMU aynı SoC'ye dahil olmak üzere) bir donanım debugger'i durdurma ve inceleme hafızasını kullanarak çalıştırmanız gerekebilir.Ortalama hedefleri için Ortak yazılım debuggers, OpenOCD veya JTAG adaptörü ile birlikte çalışırsınız.UART baskı işlevlerindeki noktaları genellikle cihazın ne yaptığını ortaya koyar.If the Hardware debugger to stop execution and testing memory. Common software debuggers for host, U-Bootshellgers for host, you can issue to discover the filesystem and changes.
5. Dokümantasyon ve Mapping
Ters mühendislik sadece bulgularınızı iletişim kurabiliyorsanız yararlıdır. Donanım mimarisinin blok diyagramları oluşturun - işlemci, hafıza haritası, periferik, otobüsler - ve yazılım boot işlemi veya devlet makinesi için akışlar. KiCad gibi araçlar (schematic yakalama) veya Fritzing (daha iyi ayarlar için) diğer geliştiricilerin desteği için kullandığı şemalar sağlar.
Deep Customization için İleri Teknikler
Temel tekniklere hakim olduktan sonra, daha gelişmiş yaklaşımlar keşfetmek isteyebilirsiniz. Bunlar güvenlik araştırmalarında yaygındır, ancak özelleştirme için de değerlidir:
- [FONT:0]Side-channel analizi[[Dönetici: Kriptografik anahtarlar veya içerikler için güç tüketimi veya elektromanyetik emisyonlar gerekir. Bu, yüksek örnekleme oranı ve ChipWhisperer gibi bir post-işlem aracı ile bir oscilloskop gerektirir.
- [FONT=0)Fault enjeksiyonu[[Dönetici: Basınç aksakları veya elektromanyetik pulsları güvenlik kontrollerini atlatmak için kullanmak (örneğin, bootloader imza doğrulama). Bu yüksek riskli ve cihaza özel olarak, ancak özel bir bilgisayar için cihazlar açabilir.
- [[Dörtücük|Strep-i)
[0]Protocol analizi[[Dönetici: 4 ): Cihazın ve onun özel merkezi veya bulut hizmeti arasındaki iletişim. Kablolushark, nRF Sniffer for Bluetooth, or a software-defined radyo (SDR) for RF protokolleri (e.g., 433 MHz, Zigbee) onları kodlamanıza ve taklit etmenize izin verin.
Bu yöntemler uzman ekipman ve altta yatan fizik ve kriptografi konusunda sağlam bir anlayış gerektirir. Çoğu hobici özelleştirme projesi için gerekli değildir, ancak mümkün analizin derinliğini göstermektedir.
Ters Mühendislik için kullanılan Common Consumer Electronics
Bazı cihazlar özellikle yaygın kullanımları, dokümanların erişilebilirliği ve özelleştirme potansiyeli nedeniyle mühendisi tersine çevirmek için ödüllendirir:
- [FONT:0]Routers ve Network Cihazları[Döneticiler: Birçok ev yönlendiricisi Linux çalıştırıyor ve korumasız UART limanları var.TheDANFLT:2).OpenWrt projesi), yüzlerce yönlendiriciyi özel olarak çalıştıracak, VPN desteği, gelişmiş QoS veya ad engelleyici bir şekilde devre dışı bırakmak için tersine çeviren büyük bir geliştirici topluluğu sağlar.
- [FONT=0)Smart Home Hubs ve Anahtarlar[Dönetici: Sonoff, Shelly veya Xiaomi Smart Home ürünleri ESP8266/ESP32 çiplerini kullanıyor. Third-party Hardware LikeurFLT:2Tasmota veya ESPHome]
- [FONT=0]Game Consoles [DÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜ
- [FONT=0)Medical Cihazları[DÜT:1): Sürekli glukoz monitörleri veya insülin pompaları bazen açık kaynak izleme sistemleri oluşturmak için hastalar tarafından devre dışı bırakılır (örneğin, Nightscout). Bu, yasal olarak hassastır ancak yaşam boyu kişiselleştirme potansiyelini gösterir.
- [FONT:0)Battery Management Systems (BMS))[BMS))): E-bisiklet veya güç araç pillerinin iletişim protokolünü geri çevirerek kullanıcıların diğer projelerde özel kontrolörleri veya yeniden kullanım hücreleri değiştirmelerini sağlar.
Uygulamaları: Beyond Understanding
Ters mühendislikten elde edilen bilgiler doğrudan pratik uygulamalara yol açıyor:
- [FONT:0)Müşteri (Dönetici)[Dönetici)[Döneticileri açık kaynak alternatifleri ile orijinal bilgisayarları değiştirerek, kablosuz güvenlik açıklarını kaldır, ve ekran süresini uzatın. Örneğin, OpenWrt ile eski bir yönlendiriciyi yeniden yükleyin.
- [FOS:0) Sertware modifikasyonları[[Döneticileri veya sensörler ekin, daha yüksek kapasiteli bir tane ile bir hata pili yerine getirin (BMS bunu desteklerse), RAM veya flash hafızayı yönetim kuruluna yükseltmeye veya yardımcı konektörler eklemeye yardımcı olur.
- [FONT=0]Remate ve bileşen düzeyinde düzeltmeler[Döneticileri anlamak, devreleri teşhis etmenizi sağlar - örneğin ölü kapasitörler, darbeler FETs veya kırık izleriniz gibi - ve onları cihazın dışına çıkarmak yerine tamir edin.
- [[Dönetici:0)Compatible accessory creation[[Dönetici: Bir cihazın iletişim protokolünü tersine çevirerek (örneğin, bir GPS saati veya bir drone uzaktan), yedek şarj cihazı, sensör ekle-onları veya veri loggerları gibi üçüncü taraf aksesuarları tasarlayabilirsiniz.
- [FONT:0) Güvenlik araştırması[[Dönetici elektronikte güvenlik açığı tespit etmek, kendinizi ve başkalarını korumanıza olanak sağlar.
Yasal ve Etik Bakışlar: Gray Alanlarını Dönüştürmek
ABD'de karmaşık bir yasal zemine sahip olmak için bir ürün okumak, işlevinin genellikle birçok yargıda adil kullanım altında korunması ve oyun konsollarında kimlik doğrulama mekanizmaları dahil olmak üzere, ABD'de Dijital Millennium Copyright Yasası (DMCA) her üç yıl boyunca, güvenlik araştırma, onarım ve interoperability gibi, tüketici elektroniklerinde, bilgisayar destekli elektronik güvenlik araçları ve kontrol mekanizmalarına ilişkin olarak kontrol edilmesi yasaklanmıştır.
telif hakkının ötesinde, patentler belirli buluşları koruyabilir ve patentli bir devreyi tersine çevirebilir, kişisel kullanım veya satış yapmadan rekabet eden bir ürün satabilir veya korsanlık sağlarsa, belge veya kaynak kod elde ederseniz, yasal olarak belirtilebilir.En güvenli yaklaşım sadece ters mühendislik araçlarına aykırıdır.
Etik olarak, topluluk normlarına saygı duymanız gerekir: her zaman kredi orijinal araştırmacılar, zarar vermekten kaçın (bu tür tuğla cihazlar tamir edemez), ve güvenlik kusurları bulmak ve düzeltmek için birçok üreticiyi bilgilendirir ve bug bounty programları vardır.
Son olarak, tüm cihazların modifiye edilmesi amaçlandığını kabul edin. Bazı yaratıcının bu faaliyetleri desteklemek için doğru bir şekilde geliştirmesi gerektiğinin entelektüel mülkünü içerir.Relamento için geri mühendislik hedefi, çalmak veya ihlal etmek değildir, ancak öğrenmek, geliştirmek ve sahip olduğunuz teknolojinin tam potansiyelini açmaktır. Daha fazla tüketicinin bu faaliyetleri desteklemek için daha fazla talep ettiği gibi, yasal çerçeveler yavaşça gelişmektedir.
Başlayın: Pratik Bir İş Akışı
Mühendislik tüketici elektroniklerini tersine çevirmek için yeniyseniz, ilk projeniz için bu yapısal yaklaşımı takip edin:
- [FONT:0]Choose, tercihen online olarak iyi niyetli bir cihazdır.[DÜT:1] Proton Atheros veya MediaTek cipslere dayanan Alarmlar mükemmel başlangıç noktalarıdır, çünkü donanımlar genellikle modeller arasında benzerdir.
- [[Dönetici:0) Mevcut çalışma [Dönetici:0) Arama " cihazınız" veya " cihazınız OpenWrt" Giriş GitHub, hackaday.io ve ilgili forumlar.
- [FONT:0]Gather araçları.[[DÜDÜT:1] Temel bir setle başlayın: bir USB mantık analizörü ( Saleae veya 24MHz versiyonundan gelen klonlar), bir satış makinesi ve bir CH341A SPI flash programır.
- [FONT:0]Dönetici ile birlikte çalışır.[[Dönder: Fotoğraf, etiket konektörleri alır ve herhangi bir test puanını not edin. Zemin ve gerilim raylarını bulmak için çok metre kullanın.
- [FONT=0] UART arayüzünü ele alalım. Bu genellikle popülör olmayan pedlerle 3 veya 4-pin bir mantık analizörü kullanın - ASCII text at 115200 baud veya benzer göreceksiniz.
- [FONT=0)Extract Hardware[[Dönetici:0) Mümkün olursa, flaş çipi doğrudan SPI programcı kullanarak okuyun. eğer çip satıldıysa, klipler için ikiliyi kullanın.
- [FONT:0) Binwalk ve Ghidra ile analiz edin.[DÜT:1] Dosya sistemleri, çekirdek ve yapılandırma dosyaları arayın. Bölge kilitleri veya engelli özellikleri uygulayan herhangi bir kontrol tanımlayın.
- [FONT:0) Orijinal güncelleme mekanizması veya seri bir bootloader kullanarak değiştirilmiş bir anahtarlama sistemi kullanarak basit bir “hello dünya” çekirdek modülü veya daha önce gizli bir servis etkinleştirin. Flash, değiştirilmiş bir anahtarlama mekanizması veya bir seri bootloader kullanarak değiştir.
- [FONT:0] Her şeyi saklı tutar.[DÜDÜT:1] Bir rehber yazın, pinouts paylaşın ve topluma katkıda bulunun.
Küçük başlayın: boot logoyu değiştirmek veya bir yönlendirici üzerinde SSH'nin sadece birkaç değişiklik gerektirdiği gibi basit bir değişiklik.Güvenli olmak için, tam bir bilgisayar oluşturmak gibi daha karmaşık projelerle mücadele edebilirsiniz.
Topluluk ve Kaynaklar
Yalnız değilsiniz. Ters mühendislik topluluğu canlı ve araçları, öğreticileri ve bulguları açık bir şekilde paylaşıyor. Anahtar kaynaklar şunları içerir:
- [FONT:0]Ghidra) - NSA'dan ücretsiz ters mühendislik çerçevesi.
- [FONT:0]OpenWrt) - yönlendiriciler için önde gelen açık kaynak anahtarları.
- [FONT:0]Tasmota[DÜ:2]) - ESP8266 /ESP32 cihazları için alternatif bir donanım.
- [FONT=0)Hardware Hackers' Forumlar [Dönetici:0)[Döneticiler # 1 ) – Twitter'da Donanım Hacking bölümü (#HardwareHacking), r/ReverseMühendislik altreddit ve Discord sunucu “Hack The Box” donanım kanalı.
- [FONT=0]Kitaplar[Döneticiler) - Andrew Bunnie Huang tarafından “Uygulamalı Mühendislik” Bruce Dang tarafından “Uygulamalı Mühendislik”
Yerel üreticilere veya güvenlik buluşmalarına, araçların (örneğin oscilloskoplar gibi) ve işbirliğine girebilmeniz için birçok üniversite mühendislik kulüplerine geri dönmektedir. giriş yapmak için bariyer, uygun araçlar ve zengin belgeler sayesinde her zamankinden daha düşük.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Tüketici elektronikleri için tersine çeviri teknikleri, aktif bir yaratıcıya pasif bir kullanıcı olmaktan hareket etmenizi sağlar.Eğer açık kaynaklı bir cihazı geri dönüştürmek istiyorsanız, üreticinin asla amaçlanmamış veya sadece kendi içinde büyüyü anlamanızı sağlar, beceriye erişilebilir.
Doğru devre dışı hareket, daha açık hale gelmek için ivme ve üreticiler yüz baskı elde ettiği gibi, tersine mühendislik sadece daha değerli olacaktır.Bu teknikleri öğrenerek ve uygulamakla birlikte, herkesin yararına olan bir bilgi paylaşımı ve inovasyon kültürüne katkıda bulunursunuz.
Bu yüzden çok metrenizi seçin, Ghidra indir ve ilk cihazın keşfetmesini sağlayın. Keşif yolculuğu tek bir vida ile başlar.