DDOS防御专家-提供超强DDoS高防/CC防护/大流量清洗服务!
当前位置:主页 > 高防服务器 > 正文

cdn防御_cc攻击防御策略_指南

cdn防御_cc攻击防御策略_指南

SWD接口不仅由SWDIO和SWDCK线路组成,而且在更具体的情况下还使用可选信号。在这篇文章中,我们将介绍SWO和nRST信号。

SWO–调试跟踪输出

开发人员经常使用日志功能帮助他们跟踪程序的执行情况。不幸的是,这在嵌入式设备上更为困难,因为有时无法将这些消息提供给开发人员。ARM对基于ITM(Instrumentation Trace Macrocell)的经典调试工具进行了一些很好的改进,ITM存在于许多Cortex内核中。此组件允许程序员使用类似printf的语句来帮助调试过程。

在最常见的情况下,程序员可以指示ITM通过ITM\u SendChar()函数发送消息。此功能可通过CMSIS HAL使用,并且对于所有基于皮质的MCU都是通用的。ITM将消息转发给TPIU(跟踪端口接口单元),TPIU负责将消息传输到最终目的地。TPIU将格式化消息,添加一些头信息并将其推送到最终目的地。

此目的地通常是SWO(串行线输出)接口,一根与SWD接口配对的单线,用于将跟踪消息传输到外部调试器。这个接口可以在两种不同的模式下配置:曼彻斯特编码或UART编码(参见这里)。

作为一个例子,这里是一个基于STM32F405的简单应用程序。此应用程序配置SWO引脚,并通过SWO引脚发送消息:

123456789101121314151617181920212223242526//为清晰起见省略了void print\u SWO(const char*data,const uint32\u t size){uint32\u t i;对于(i=0;iitm端口打开>重置运行HelloHelloHello[…]

然后,查看逻辑分析仪跟踪:

我们的消息被正确发送到SWO接口

TPIU也可以被跟踪宏单元ETM使用。使用时,ETM将定期发送消息,显示完整的执行跟踪。但是,此跟踪只包含有关执行的指令数以及是否执行分支的信息。这不能用作转储实际指令的方式。

半宿主

还有另一个选项可用于向调试器发送消息,即半宿主。此模式利用特定的服务请求(中断)请求调试器采取操作。

从技术上讲,兼容调试器必须在ARM模式下捕获服务请求号0x123456,或在thumb模式下捕获服务请求号0xAB。一旦调试器被触发,它将使用标准MEM-AP查询读取r0中的操作号和r1中的参数指针。然后,它将解析参数,完成操作,将pc值更改为指向下一条指令并恢复核心执行。

例如,下面的C代码使用SYS_WRITE操作写入主机的调试器STDOUT,ddos防御整体方案,类似于print():

1234567891011213141516print_semihosting(char*data,大小){uint32参数[3];args[0]=1;args[1]=(uint32\t)数据;args[2]=大小;asm("mov r0,#5\n""mov r1,%0\n""bkpt 0x00AB"::"r"(args):"r0","r1");}void main(void){while(1){print\u semihosting("Hello",5));}}

在openOCD中运行代码,字符串直接显示在会话中:

$telnet 127.0.0.1 4444正在尝试127.0.0.1。。。连接到127.0.0.1。转义字符为"^]"。打开片上调试器>arm半托管启用>重置运行HelloHelloHello[…]

这个特性非常有趣,它提供了很好的方法来传输测试数据,用于测试目的。

nRST:不仅仅是一个复位信号

在测试一个新芯片(STM32L011D3)时,我在使用标准SWD接口连接它时遇到了一些问题。SWD接口无法与调试端口通信。翻阅数据表,我发现该芯片必须使用"复位下连接"方法进行编程。

复位下连接?

在较小的(读取:低引脚数)设备上,SWD DP在启动时不映射到GPIO,但可以在启动后由软件启用。然而,我们这里有一个鸡和蛋的问题。为了避免这种情况,工程师们增加了connectunderreset特性,当芯片处于复位状态时,SWD引脚被映射到DP。通常有一个专用引脚用于复位,国内高防CDN评价,大多数情况下标记为nRST。

为了连接到DP,调试接口必须将nRST拉低,然后发出JTAG->SWD开关命令。

在运行JTAG到SWD请求之前,会断言nRST信号

J-Link接口能够处理此类芯片,只需将芯片的nRST引脚连接到J-Link的复位引脚。同样也可以使用官方的ST-Link接口。

结论

在这篇短文中,我们介绍了与SWD接口一起使用的两个附加信号,以及一些常见用法。如果嵌入式设备的固件仍在使用SWO管脚,则该管脚有时会很有用,并有助于对其进行反向工程。

好处:将nRST和SWO添加到ST-Link克隆中

如果您使用的是可以在网上购买的便宜ST-Link克隆之一,那么您就走运了,因为nRST管脚不在公开的头上。但是由于这个克隆运行的固件与官方的ST-Link相同,ddos防御效果分析,因此可以通过将其连接到PCB上的其他地方来更改pin功能。由于复位引脚用于编程STM8设备,我决定将其重新用作nRST。

查看St Link v2示意图,我们可以看到需要将T\u nRST信号连接到引脚。这个信号来自名为PB0的GPIO,位于芯片的18号引脚上。我们还必须确保我们添加了一个22欧姆的阻抗匹配电阻像原来的设计(见R13的模式)。仔细看看我们的PCB,我们可以看到,复位引脚是连接到100欧姆的电阻在对面的网站标题引脚。卸下这个电阻,百度ddos防御,换上22欧姆的电阻后,我们可以用小刀切割痕迹,然后在电阻的MCU侧连接一根电线。在这样做的同时,我还重新调整了SWI引脚的用途(也用于STM8芯片)以获得SWO调试输出。为此,我连接了引脚31上的GPIO PA10,也是通过一个22欧姆的电阻器连接的。

一旦我们连接了两条导线,我们就可以把它们放在电路板的另一侧,将它们连接到MCU的相应引脚上:

测试

使用ST Link实用程序,可以选择重置下连接功能,点击连接…

成功!

这非常好,但是ST Link实用程序是一个仅限于Windows的工具。在GNU/Linux上,最常用的软件是OpenOCD。使用配置文件中的reset\u config指令也支持重置时连接功能。

123456789source[find interface/stlink.cfg]transport select hla\u swdreset\u config srst\u nogate connect\u assert\u srst source[find target/stm32l0.cfg]$\u TARGETNAME configure-event gdb attach{reset halt}

使用此命令运行openOCD配置允许访问MCU并对其进行编程,nginx防御ddos,任务完成!

共享:单击打印(在新窗口中打开)单击将此邮件发送给朋友(在新窗口中打开)单击在LinkedIn上共享(在新窗口中打开)单击在Twitter上共享(在新窗口中打开)单击在Reddit上共享(在新窗口中打开)相关的SWD-ARM替代JTAG2019年5月16日"嵌入式"SWD第2部分:MEM AP2019年7月31日"嵌入式"SWD奖金-MEM-AP安全2020年6月15日"设备安全"

版权保护: 本文由 DDOS防御专家 原创,转载请保留链接: /ddos/70501.html

DDoS防御专家简介孤之剑
国内资深白帽子二十人组成员,前BAT资深网络安全工程师,知名网络安全站点板块大神,每年提交Google及微软漏洞,原sina微博负载插件开发者,现在整体防御复合攻击长期接受1-4.7T攻击,CC防护自主开发指纹识别系统,可以做到99.9999%的无敌防御。
  • 文章总数
  • 9325481访问次数
  • 建站天数

    QQ客服

    400-0797-119

    X