.. | ||
fault_injection_attacks.md | ||
i2c.md | ||
jtag.md | ||
radio.md | ||
README.md | ||
side_channel_analysis.md | ||
spi.md | ||
uart.md |
Donanım Hacking
AWS hacking'i sıfırdan ileri seviyeye öğrenin htARTE (HackTricks AWS Red Team Expert) ile!
HackTricks'ı desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamını görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız ABONELİK PLANLARINI kontrol edin!
- Resmi PEASS & HackTricks ürünlerini edinin
- The PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonu
- Katılın 💬 Discord grubuna veya telegram grubuna veya bizi Twitter 🐦 @carlospolopm** takip edin.**
- Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.
JTAG
JTAG, bir sınır taraması gerçekleştirmenizi sağlar. Sınır taraması, her pin için gömülü sınır tarama hücrelerini ve kayıtları da içeren belirli devreleri analiz eder.
JTAG standardı, sınır taramaları gerçekleştirmek için belirli komutlar tanımlar, bunlar arasında şunlar bulunur:
- BYPASS, diğer yongalardan geçmeden belirli bir yongayı test etmenizi sağlar.
- SAMPLE/PRELOAD, cihaz normal çalışma modundayken giren ve çıkan verilerin bir örneğini alır.
- EXTEST, pin durumlarını ayarlar ve okur.
Ayrıca şunlar gibi diğer komutları da destekleyebilir:
- Bir cihazı tanımlamak için IDCODE
- Cihazın iç testi için INTEST
JTAGulator gibi bir araç kullandığınızda bu talimatlarla karşılaşabilirsiniz.
Test Erişim Portu
Sınır taramaları, bileşende bulunan JTAG test desteği fonksiyonlarına erişim sağlayan genel amaçlı bir port olan dört telli Test Erişim Portu (TAP)'nın testlerini içerir. TAP, aşağıdaki beş sinyali kullanır:
- Test saat girişi (TCK) TCK, TAP denetleyicisinin tek bir eylem alacağını (yani, durum makinesinde bir sonraki duruma geçeceğini) ne sıklıkta tanımlayan saattir.
- Test modu seçimi (TMS) girişi TMS, sonlu durum makinesini kontrol eder. Her saat vuruşunda, cihazın JTAG TAP denetleyicisi TMS pimindeki gerilimi kontrol eder. Gerilim belirli bir eşik değerin altındaysa sinyal düşük kabul edilir ve 0 olarak yorumlanır, eğer gerilim belirli bir eşik değerin üzerindeyse sinyal yüksek kabul edilir ve 1 olarak yorumlanır.
- Test veri girişi (TDI) TDI, çipe tarama hücreleri aracılığıyla veri gönderen pindir. Her satıcı, bu pim üzerinden iletişim protokolünü tanımlamaktan sorumludur, çünkü JTAG bunu tanımlamaz.
- Test veri çıkışı (TDO) TDO, çipten veri çıkaran pindir.
- Test sıfırlama (TRST) girişi İsteğe bağlı TRST, sonlu durum makinesini bilinen iyi bir duruma sıfırlar. Alternatif olarak, TMS 1'de beş ardışık saat döngüsü boyunca tutulursa, TRST pini ne yaparsa yapsın bir sıfırlama çağırır, bu nedenle TRST isteğe bağlıdır.
Bazen bu pinlerin PCB'de işaretlendiğini görebilirsiniz. Diğer durumlarda bulmanız gerekebilir.
JTAG Pinlerini Tanımlama
JTAG portlarını tespit etmenin en hızlı ama en pahalı yolu, özel olarak bu amaç için oluşturulmuş bir cihaz olan JTAGulator'ü kullanmaktır (ayrıca UART pinout'larını da tespit edebilir).
Bu cihazda bağlayabileceğiniz 24 kanal bulunmaktadır. Daha sonra tüm olası kombinasyonların IDCODE ve BYPASS sınır tarama komutlarını göndererek BF saldırısı gerçekleştirir. Bir yanıt alırsa, her JTAG sinyali için karşılık gelen kanalı görüntüler.
JTAG pinout'larını tanımlamanın daha ucuz ama çok daha yavaş bir yolu, Arduino uyumlu bir mikrodenetleyici üzerine yüklenmiş olan JTAGenum kullanarak yapılabilir.
JTAGenum kullanarak, önce sorgulama için kullanacağınız cihazın pinlerini tanımlamanız gerekir. Cihazın pinout diyagramına başvurmanız ve ardından bu pinleri hedef cihazınızın test noktalarına bağlamanız gerekir.
JTAG pinlerini tanımlamanın üçüncü yolu, PCB'yi bir pinout için inceleyerek bulmaktır. Bazı durumlarda, PCB'ler uygun şekilde Tag-Connect arayüzünü sağlayabilir, bu da kartın bir JTAG konektörüne sahip olduğunun açık bir göstergesidir. Bu arayüzün nasıl göründüğünü https://www.tag-connect.com/info/ adresinden görebilirsiniz. Ayrıca, PCB'lerdeki çip setlerinin veri sayfalarını incelemek, JTAG arayüzlerine işaret eden pinout diyagramlarını ortaya çıkarabilir.
SDW
SWD, hata ayıklama için tasarlanmış ARM özel bir protokoldür.
SWD arayüzü iki pin gerektirir: çift yönlü bir SWDIO sinyali, JTAG'ın TDI ve TDO pinlerine eşdeğer olan ve bir saat olan ve JTAG'daki TCK'ya eşdeğer olan SWCLK. Birçok cihaz, hedefe bir SWD veya JTAG probunu bağlamanıza olanak tanıyan birleşik bir JTAG ve SWD arayüzü olan Serial Wire veya JTAG Debug Port (SWJ-DP)'yi destekler.