ARM架构上用来替代JTAG的调试协议SWD-黑客接单平台

访客5年前黑客文章939
关于嵌入式开发人员和专门进犯硬件的黑客来说,JTAG 实践上是调试和拜访微处理器寄存器的标准。该协议已运用多年,至今仍在运用,JTAG调试接口有必要运用VCC、GND电源信号,以及TMS、TCK、TDI、TDO四根调试信号,别的TRST、RESET复位信号和RTCK(同步时钟)信号也在可选项里。现在,设备变得越来越小,微处理器的可用引脚数也越来越少,这些杂乱的信号,现已阻止了协议的正常运用。 为了处理这个问题,ARM创建了一个名为SWD(串行线调试)的代替调试接口。相关于JTAG接口,SWD运用了更少的信号。它只运用两个信号(SWDCLK和SWDIO),这个接口及其相关协议现在简直能够在所有的Cortex-[A,R,M]处理器中运用。 Cortex-A:面向功能密集型体系的运用处理器内核,Cortex-A处理器为运用操作体系(例如Linux或许Android)的设备供给了一系列处理方案,这些设备被用于各类运用,从低本钱手持设备到智能手机、平板电脑、机顶盒以及企业 *** 设备等。 Cortex-R:面向实时运用的高功能内核,Cortex-R系列是衍出产品中体积最小的ARM处理器。Cortex-R处理器针对高功能实时运用,例如硬盘操控器(或固态驱动操控器)、企业中的 *** 设备和打印机、消费电子设备(例如蓝光播放器和媒体播放器)、以及轿车运用(例如安全气囊、制动体系和发动机办理)。Cortex-R系列在某些方面与高端微操控器(MCU)相似,可是,针对的是比一般运用标准MCU的体系还要大型的体系。 Cortex-M:面向各类嵌入式运用的微处理器内核,Cortex-M系列是针对竞赛现已十分剧烈的MCU商场。Cortex-M系列根据ARMv7-M架构(用于Cortex-M3和Cortex-M4)构建,而较低的Cortex-M0+根据ARMv6-M架构构建。首款Cortex-M处理器于2004年发布,当一些干流MCU供货商挑选这款内核,并开端出产MCU器材后,Cortex-M处理器敏捷遭到商场喜爱。能够必定的说,Cortex-M之于32位MCU就好像8051之于8位MCU,遭到很多供货商支撑的工业标准内核,各家供货商选用该内核加之自己特别的开发,在商场中供给差异化产品。 ARM调试接口 体系结构概述 与JTAG将接口链接在一起相反,SWD运用名为DAP(调试拜访端口)的总线。在这个DAP上,有一个主端口(DP – Debug端口)和一个或多个隶属端口(AP – Access端口)相似于JTAG接口。DP运用包括AP地址的数据包与AP事务处理。 总而言之,外部调试器运用名为SWD的协议通过DP连接到DAP,ARM的这份介绍很好地概述了SWD架构: SWD架构 调试端口 调试端口是主机和DAP之间的接口,它还处理主机接口,现在有三个不同的调试端口能够拜访DAP: JTAG调试端口(JTAG- dp):该端口运用标准JTAG接口和协议来拜访DAP; 串行线调试端口(SW-DP):该端口运用SWD协议拜访DAP; 串行线/ JTAG调试端口(SWJ-DP):该端口能够运用JTAG或SWD拜访DAP,这是许多微处理器上常见的接口。它重用TMS和TCK JTAG信号,别离传输SWDIO和SWDCLK信号。为了从一个接口切换到另一个接口,有必要发送特定的序列。 拜访端口 能够根据需要将多个AP添加到DAP中,ARM供给了两个AP的标准: 1. 内存拜访端口(MEM-AP):该AP供给对中心存储器和寄存器的拜访; 2. JTAG拜访端口(JTAG-AP):该AP答应将JTAG链连接到DAP。 SWD协议 信号 如前所述,SWD只运用两种信号: · SWDCLK:主机宣布的时钟信号,因为处理器时钟和SWD时钟之间没有关系,所以频率的挑选取决于主机接口。在这篇文章中,更大 调试时钟频率约为60MHz。 · SWDIO:这是把数据从DP传送到DP的双向信号,数据由主机在上升沿设置,由DP在SWDCLK信号下降沿采样。数字电路中,数字电 平从低电平(数字“0”)变为高电平(数字“1”)的那一瞬间(时间)叫作上升沿。数字电路中,数字电平从高电平(数字“1”) 变为低电平(数字“0”)的那一瞬间叫作下降沿。 事务处理进程 每个SWD交流进程分三个阶段: 1.恳求阶段:从主机端口发送8位; 2.ACK阶段:从方针端口发送3位; 3.数据阶段:发向主机端口或从主机端口发送最多32位,带有奇偶校验位; 请留意,有必要在数据方向发生变化时发送Trn循环(Trn cycle)。 SWD搬运 恳求 恳求头包括以下字段: ACK ACK (Acknowledgement)便是承认字符,在数据事务处理中,接纳站发给发送站的一种传输类操控字符。表明发来的数据已承认接纳无误。 在TCP/IP协议中,假如接纳方成功的接纳到数据,那么会回复一个ACK数据。一般ACK信号有自己固定的格局,长度巨细,由接纳方回复给发送方。 ACK位包括恳求头的ACK状况,留意,有必要先读取LSB中的三个位。 数据 数据由主机发送或方针发送。它首要发送LSB,并以奇偶校验位完毕。 协议交互 现在咱们现已了解了协议的底层部分,现在是与实践方针交互的时分了。为了做到这一点,我运用了Hydrabus,但也能够运用总线海盗(Bus Pirate)或任何其他相似的东西。BusPirate 是由Dangerous prototypes 规划出品的一款硬件hacking 瑞士军刀,支撑多项常见协议并可跨渠道Windows/Linux/MAC,并具有丰厚的协助文档。在本文的测验中,我运用了一个名为Blue Pill的STM32F103开发板。绰号为蓝丸(蓝色药丸(blue pill)rootkit是以办理程序身份履行来操控电脑资源的歹意软件)Joanna Rutkowska是新加坡的IT安全公司COSEIN的一名安全研究员,她在2006年的黑帽简报会议上展现了Blue Pill rootkit,它是作为概念验证型歹意软件而开发的。原始的蓝色药丸(blue pill)操作根据AMD虚拟化(AMD-V),它是X86处理器架构的一套硬件扩展。该处理器扩展从软件上卸下了重复与低效的作业。通过处理器扩展、圈套和虚拟化仿真处理这些使命,根本上排除了通过操作体系[1][2]黑客接单网

相关文章

换个视点看看,为什么垂钓进犯总能成功

当我榜首次收到银行发来的“安全”邮件时,我榜首反响便是这儿是否有诈?由于在我看来,它实在是太像垂钓邮件了。这封躺在收件箱里的邮件来历于我银行司理的个人邮箱地址,而非Chase银行的官方邮箱。邮件中不...

Web缓存操控战略详解

Cache-Control 办理Web缓存的最常用和最有用的办法之一是经过Cache-Control HTTP标头,由于此标头适用于Web页面的缓存,这意味着咱们页面上的一切内容都能够具有十分精细化的...

Google最新XSS Game Writeup

本文介绍了怎么完结谷歌最新的XSSGame的进程,完结了这八个应战就有时机取得Nexus 5x。实际上这八个应战整体来说都不难,都是些常见的xss。通关要求是只要能弹出alert窗口即可。 第一关...

“神起”僵尸网络的诱捕与反击(上)

2019年5月中旬,蜜罐体系监测到了一同进犯事情,引起了咱们的留意,小伙伴们敏捷跟进分析,并经过技术手段拿下黑客操控端服务器,发现黑客运用了一款名为“神起ddos集群”的软件,操控了3000+的僵尸网...

怎么使用神经网络和Python生成指定形式的暗码

今日给咱们介绍的是Github上一个名叫PyMLProjects的项目,这个项意图意图是为了练习AI来学习人类结构暗码的形式,然后咱们就可以用AI来生成许多同一形式或品种的暗码了。这种办法或许可以用...

分析NETWIRE网络垂钓举动中对Process Hollowing的运用

无文件进犯是当时较为常见的一种进犯手法,歹意软件经过其payload来躲避检测,而无需在磁盘上编写可履行文件。无文件履行最常见的技能之一是代码注入——进犯者不需要直接履行歹意软件,而是将歹意软件代码注...