【卫星安全系列二】HAS-BUS赛题复现
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;"><b>题目介绍:<span lang="EN-US"></span></b>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US">There's a very busy bus we've tapped a port onto,surely there is some juicy information hidden in the device memory...somewhere...</span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<b>环境搭建<span lang="EN-US"></span></b>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
先从<span lang="EN-US">GitHub</span>上拉取题目:<span lang="EN-US">https://github.com/cromulencellc/hackasat-qualifier-2020</span>题目文件夹结构大致如下<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<a href="https://ctfiot.oss-cn-beijing.aliyuncs.com/uploads/2023/12/1-1701421040.png"><img width="553" height="424" src="http://cobjon.com/w/php/upload/202403/01/3836fe5f.png" alt="HAS-BUS赛题复现" style="vertical-align:middle;" /></a>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
题目采用了<span lang="EN-US">docker</span>来搭建环境,其中<span lang="EN-US">challenge</span>是题目文件夹,<span lang="EN-US">solver</span>是解题文件夹,分别都存在一个<span lang="EN-US">Dockerfile</span>来生成对应的镜像。一般来说我们复现时,直接执行如下命令对环境进行测试。由于该系列题目是<span lang="EN-US">2020</span>年的,可能搭建环境时存在某些问题,在本题当中没有遇到,后续遇到时再给出对应的方法。<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US">sudo make build<br />
sudo make test</span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<a href="https://ctfiot.oss-cn-beijing.aliyuncs.com/uploads/2023/12/9-1701421041.png"><img width="554" height="143" src="http://cobjon.com/w/php/upload/202403/01/9cd166bc.png" alt="HAS-BUS赛题复现" style="vertical-align:middle;" /></a>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
如上图则环境搭建成功复现时,我们只需要使用如下命令启动<span lang="EN-US">challenge</span>的服务即可<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US">socat -v tcp-listen:31340,reuseaddr exec:"docker run --rm -i -e SEED=1234 -e FLAG=flag{skIpn1MnWtBC1DkTFhKBO8yMofVTRU8qUuMxc52jzss1XrnNva6Td2Ex84XJZCoNa6RQKoFYhKPNItMpHtocOxD} bus:challenge"</span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
之后使用<span lang="EN-US">nc</span>连接服务指定的<span lang="EN-US">ip</span>和端口即可<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<a href="https://ctfiot.oss-cn-beijing.aliyuncs.com/uploads/2023/12/3-1701421041.png"><img width="554" height="250" src="http://cobjon.com/w/php/upload/202403/01/c000e5c4.png" alt="HAS-BUS赛题复现" style="vertical-align:middle;" /></a>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
当我们<span lang="EN-US">nc</span>连接上去以后,看见一系列的字符,书上的解释是说这是<span lang="EN-US">I²C</span>协议,学过<span lang="EN-US">I²C</span>的不知道能看出来不<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<b>相关背景知识<span lang="EN-US"></span></b>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<b><span lang="EN-US">I²C</span>协议简单了解<span lang="EN-US"></span></b>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US">I²C</span>仅仅使用两条线在连接到总线的设备间传输信息,一条为串行数据线<span lang="EN-US">(SDA)</span>,另一条为<span lang="EN-US">(SCL)</span>。总线上的地址由唯一地址区分。通常<span lang="EN-US">I²C</span>在硬件设备中作为传感器接口和<span lang="EN-US">EEPROM</span>存储器的接口使用。<span lang="EN-US">I²C</span>协议的基础信号有四种,分别是起始信号<span lang="EN-US">(START)</span>、停止信号<span lang="EN-US">(STOP)</span>、应答信号<span lang="EN-US">(ACK)</span>和非应答信号<span lang="EN-US">(NAK)</span>。<span lang="EN-US"></span>
</p>
<ul style="margin-top:0cm;" type="disc">
<li style="font-family:等线;font-size:10.5pt;margin:0cm;tab-stops:list 36.0pt;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US">START</span>信号和<span lang="EN-US">STOP</span>信号都由主设备产生。所有信号以<span lang="EN-US">START</span>信号开始,以<span lang="EN-US">STOP</span>信号结束。<span lang="EN-US">START</span>信号和<span lang="EN-US">STOP</span>信号之间的时间认为<span lang="EN-US">I²C</span>总线处于忙碌<span lang="EN-US">(busy)</span>阶段。<span lang="EN-US"></span>
</li>
<li style="font-family:等线;font-size:10.5pt;margin:0cm;tab-stops:list 36.0pt;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US">I²C</span>有着完善的应答机制,每个字节后面必须跟一个<span lang="EN-US">ACK</span>信号或者<span lang="EN-US">NAK</span>信号。<span lang="EN-US"></span>
</li>
</ul>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
通信格式<span lang="EN-US"></span>
</p>
<ul style="margin-top:0cm;" type="disc">
<li style="font-family:等线;font-size:10.5pt;margin:0cm;tab-stops:list 36.0pt;text-align:justify;text-justify:inter-ideograph;">
由于<span lang="EN-US">START</span>和<span lang="EN-US">STOP</span>是主设备发出的,所在<span lang="EN-US">START</span>后的<span lang="EN-US">7bit</span>是从设备地址,然后有<b><span lang="EN-US">1bit</span>的读<span lang="EN-US">/</span>写标志位</b>,该标志位说明了主设备要对从设备进行读<span lang="EN-US">(“1”)</span>或者写<span lang="EN-US">(“0”)</span>操作,如果对应的从设备在总线上,那该从设备将以<span lang="EN-US">ACK</span>信号应答。<span lang="EN-US"></span>
</li>
</ul>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
向某个设备写入数据如下图:<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<a href="https://ctfiot.oss-cn-beijing.aliyuncs.com/uploads/2023/12/5-1701421042.png"><img width="554" height="225" src="http://cobjon.com/w/php/upload/202403/01/e0e622f6.png" alt="HAS-BUS赛题复现" style="vertical-align:middle;" /></a>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
从某个设备读取数据<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<a href="https://ctfiot.oss-cn-beijing.aliyuncs.com/uploads/2023/12/6-1701421043.png"><img width="554" height="209" src="http://cobjon.com/w/php/upload/202403/01/2f466def.png" alt="HAS-BUS赛题复现" style="vertical-align:middle;" /></a>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
同时应为主办方在设计题目时,将<span lang="EN-US">flag</span>的长度作为一个有意义的变量参数参与了读取<span lang="EN-US">EEPROM</span>的内容计算,而<span lang="EN-US">EEPROM</span>的大小是有限的,所以可能会出现以下情况<span lang="EN-US">(</span>这里参考源码<span lang="EN-US">)</span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<a href="https://ctfiot.oss-cn-beijing.aliyuncs.com/uploads/2023/12/8-1701421043.png"><img width="553" height="191" src="http://cobjon.com/w/php/upload/202403/01/9af18318.png" alt="HAS-BUS赛题复现" style="vertical-align:middle;" /></a>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
当<span lang="EN-US">Flag</span>的内容过长时,则<span lang="EN-US">flag</span>前后的内存空间显然会变小,这时候将要<b>读取的内容的范围</b>很可能与<span lang="EN-US">flag</span>的范围重叠,因此可能会造成<span lang="EN-US">Flag</span>的泄露。<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<b>分析解题<span lang="EN-US"></span></b>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<b>解法一:<span lang="EN-US"></span></b>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
将<span lang="EN-US">nc</span>连上去的产生的回显信息中的特殊符号<span lang="EN-US">”+^.”</span>去掉,然后将十六进制转换为<span lang="EN-US">ASCII</span>字符串。得到如下<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<a href="https://ctfiot.oss-cn-beijing.aliyuncs.com/uploads/2023/12/2-1701421044.png"><img width="554" height="293" src="http://cobjon.com/w/php/upload/202403/01/a6debfde.png" alt="HAS-BUS赛题复现" style="vertical-align:middle;" /></a>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
可以看见包含<span lang="EN-US">flag</span>字符串,将这些字符串拼接去掉重复的有几率可以得到正确的<span lang="EN-US">flag</span>。<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<b>解法二<span lang="EN-US"></span></b>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
对回显信息进行分析,发现都是以<span lang="EN-US">^</span>和<span lang="EN-US">.</span>来区分数据的。那么认为<span lang="EN-US">”<b>^</b>“</span>就是<span lang="EN-US">I²C</span>的<span lang="EN-US">START</span>信号,而<span lang="EN-US">”<b>.</b>“</span>就是<span lang="EN-US">I²C</span>的<span lang="EN-US">STOP</span>信号<span lang="EN-US">,</span>那么我们按照前面的分析对回显进行分析。<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US">^82+00+00+1f+00+00+00+12+47+40+41+c6+97+e1+3f+89+81+3f+c1+99+1d+a1+c0+20+18+a1+40+5e+42+ac+3c+.<br />
^83+00+00+3f+.<br />
^82+00+00+3f+00+00+00+20+fa+3f+41+c8+da+e2+3f+a6+64+3f+c1+ff+33+a1+c0+a4+d2+a0+40+de+50+55+40+.<br />
^b4+01+a9+94+c7+59+78+58+87+6b+d3+8e+04+be+2a+47+d4+cc+f8+6e+6c+26+67+a6+98+5e+4a+75+69+63+79+20+44+61+74+61+20+30+33+.<br />
^83+00+00+1f+.<br />
^82+00+00+1f+00+00+00+1d+ec+3f+41+d8+04+e5+3f+67+4e+40+c1+38+1b+a1+c0+e1+dd+a0+40+b9+91+91+3c+.</span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
我们知道<span lang="EN-US">”<b>^</b>“</span>信号是<span lang="EN-US">START</span>信号,则紧跟其后的一个字节为从设备地址以及<span lang="EN-US">1bit</span>的读写标志位,发现所有的<span lang="EN-US">”<b>^</b>“</span>之后只有<span lang="EN-US">0x82</span>、<span lang="EN-US">0x83</span>、<span lang="EN-US">0xb4 3</span>种情况,将其的读写位和地址位分开则有如下<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<b><span lang="EN-US">“</span></b><span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
这里一开始我本来是怀疑这个从设备地址书上是不是写错了,看了源码之后发现,在源码中它会将我们输入的第一个字节作为设备地址跟<span lang="EN-US">0xfe</span>进行<span lang="EN-US">AND</span>操作,发现它的确实地址就是<span lang="EN-US">0x82</span>、<span lang="EN-US">0x83</span>以及<span lang="EN-US">0xb4</span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<b><span lang="EN-US">”</span></b><span lang="EN-US"></span>
</p>
<table border="0" cellpadding="0" cellspacing="0" width="735" style="border-collapse:collapse;font-family:等线;font-size:10.5pt;width:551.25pt;" class="ke-zeroborder">
<thead>
<tr>
<td style="background:#DBD9D8;border:solid #CCCCCC 1.0pt;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<b><span style="color:black;">第一个字节</span><span lang="EN-US"></span></b>
</p>
</td>
<td style="background:#DBD9D8;border:solid #CCCCCC 1.0pt;border-left:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<b><span style="color:black;">从设备地址</span><span lang="EN-US"></span></b>
</p>
</td>
<td style="background:#DBD9D8;border:solid #CCCCCC 1.0pt;border-left:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<b><span style="color:black;">读<span lang="EN-US">/</span>写标志位</span><span lang="EN-US"></span></b>
</p>
</td>
<td style="background:#DBD9D8;border:solid #CCCCCC 1.0pt;border-left:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<b><span lang="EN-US" style="color:black;">I²C</span><span style="color:black;">语义</span><span lang="EN-US"></span></b>
</p>
</td>
</tr>
</thead>
<tbody>
<tr>
<td style="background:white;border:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US" style="color:black;">0x82</span><span lang="EN-US"></span>
</p>
</td>
<td style="background:white;border-bottom:solid #CCCCCC 1.0pt;border-left:none;border-right:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US" style="color:black;">0x82</span><span lang="EN-US"></span>
</p>
</td>
<td style="background:white;border-bottom:solid #CCCCCC 1.0pt;border-left:none;border-right:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US" style="color:black;">0</span><span lang="EN-US"></span>
</p>
</td>
<td style="background:white;border-bottom:solid #CCCCCC 1.0pt;border-left:none;border-right:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span style="color:black;">写</span><span lang="EN-US"></span>
</p>
</td>
</tr>
<tr>
<td style="background:#F8F8F8;border:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US" style="color:black;">0x83</span><span lang="EN-US"></span>
</p>
</td>
<td style="background:#F8F8F8;border-bottom:solid #CCCCCC 1.0pt;border-left:none;border-right:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US" style="color:black;">0x83</span><span lang="EN-US"></span>
</p>
</td>
<td style="background:#F8F8F8;border-bottom:solid #CCCCCC 1.0pt;border-left:none;border-right:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US" style="color:black;">1</span><span lang="EN-US"></span>
</p>
</td>
<td style="background:#F8F8F8;border-bottom:solid #CCCCCC 1.0pt;border-left:none;border-right:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span style="color:black;">读</span><span lang="EN-US"></span>
</p>
</td>
</tr>
<tr>
<td style="background:white;border:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US" style="color:black;">0xb4</span><span lang="EN-US"></span>
</p>
</td>
<td style="background:white;border-bottom:solid #CCCCCC 1.0pt;border-left:none;border-right:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US" style="color:black;">0xb4</span><span lang="EN-US"></span>
</p>
</td>
<td style="background:white;border-bottom:solid #CCCCCC 1.0pt;border-left:none;border-right:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US" style="color:black;">0</span><span lang="EN-US"></span>
</p>
</td>
<td style="background:white;border-bottom:solid #CCCCCC 1.0pt;border-left:none;border-right:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span style="color:black;">写</span><span lang="EN-US"></span>
</p>
</td>
</tr>
</tbody>
</table>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
按照表中的信息来看,我们的设备只有两台,地址分别是<span lang="EN-US">0x82</span>和<span lang="EN-US">0xb4</span>。如果按照表中的信息解析的话,则<span lang="EN-US">^83</span>的操作是读操作,但是在回显信息当中以<span lang="EN-US">^83</span>开头的只有两种情况如下<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US">^83+00+00+3f+.<br />
^83+00+00+1f+.</span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
且有效内容长度仅仅为<span lang="EN-US">3</span>个字节,同时<span lang="EN-US">1f</span>为非打印字符,对于读取<span lang="EN-US">flag</span>来讲,这不太现实。所以本题将实际的<span lang="EN-US">I²C</span>语义进行了反转,结果如下<span lang="EN-US"></span>
</p>
<table border="0" cellpadding="0" cellspacing="0" width="735" style="border-collapse:collapse;font-family:等线;font-size:10.5pt;width:551.25pt;" class="ke-zeroborder">
<thead>
<tr>
<td style="background:#DBD9D8;border:solid #CCCCCC 1.0pt;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<b><span style="color:black;">第一个字节</span><span lang="EN-US"></span></b>
</p>
</td>
<td style="background:#DBD9D8;border:solid #CCCCCC 1.0pt;border-left:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<b><span style="color:black;">从设备地址</span><span lang="EN-US"></span></b>
</p>
</td>
<td style="background:#DBD9D8;border:solid #CCCCCC 1.0pt;border-left:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<b><span style="color:black;">读<span lang="EN-US">/</span>写标志位</span><span lang="EN-US"></span></b>
</p>
</td>
<td style="background:#DBD9D8;border:solid #CCCCCC 1.0pt;border-left:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<b><span style="color:black;">本题实际语义</span><span lang="EN-US"></span></b>
</p>
</td>
</tr>
</thead>
<tbody>
<tr>
<td style="background:white;border:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US" style="color:black;">0x82</span><span lang="EN-US"></span>
</p>
</td>
<td style="background:white;border-bottom:solid #CCCCCC 1.0pt;border-left:none;border-right:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US" style="color:black;">0x82</span><span lang="EN-US"></span>
</p>
</td>
<td style="background:white;border-bottom:solid #CCCCCC 1.0pt;border-left:none;border-right:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US" style="color:black;">0</span><span lang="EN-US"></span>
</p>
</td>
<td style="background:white;border-bottom:solid #CCCCCC 1.0pt;border-left:none;border-right:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span style="color:black;">读</span><span lang="EN-US"></span>
</p>
</td>
</tr>
<tr>
<td style="background:#F8F8F8;border:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US" style="color:black;">0x83</span><span lang="EN-US"></span>
</p>
</td>
<td style="background:#F8F8F8;border-bottom:solid #CCCCCC 1.0pt;border-left:none;border-right:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US" style="color:black;">0x83</span><span lang="EN-US"></span>
</p>
</td>
<td style="background:#F8F8F8;border-bottom:solid #CCCCCC 1.0pt;border-left:none;border-right:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US" style="color:black;">1</span><span lang="EN-US"></span>
</p>
</td>
<td style="background:#F8F8F8;border-bottom:solid #CCCCCC 1.0pt;border-left:none;border-right:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span style="color:black;">写</span><span lang="EN-US"></span>
</p>
</td>
</tr>
<tr>
<td style="background:white;border:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US" style="color:black;">0xb4</span><span lang="EN-US"></span>
</p>
</td>
<td style="background:white;border-bottom:solid #CCCCCC 1.0pt;border-left:none;border-right:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US" style="color:black;">0xb4</span><span lang="EN-US"></span>
</p>
</td>
<td style="background:white;border-bottom:solid #CCCCCC 1.0pt;border-left:none;border-right:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US" style="color:black;">0</span><span lang="EN-US"></span>
</p>
</td>
<td style="background:white;border-bottom:solid #CCCCCC 1.0pt;border-left:none;border-right:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span style="color:black;">读</span><span lang="EN-US"></span>
</p>
</td>
</tr>
</tbody>
</table>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
结合上表再进行分析<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US">#</span>从<span lang="EN-US">ID:0x82</span>的设备读取内容<span lang="EN-US"><br />
^82+00+00+1f+00+00+00+12+47+40+41+c6+97+e1+3f+89+81+3f+c1+99+1d+a1+c0+20+18+a1+40+5e+42+ac+3c+.<br />
#</span>向<span lang="EN-US">ID:0x82</span>的设备写入内容<span lang="EN-US"><br />
^83+00+00+3f+.<br />
#</span>从<span lang="EN-US">ID:0x82</span>的设备读取内容<span lang="EN-US"><br />
^82+00+00+3f+00+00+00+20+fa+3f+41+c8+da+e2+3f+a6+64+3f+c1+ff+33+a1+c0+a4+d2+a0+40+de+50+55+40+.<br />
#</span>从<span lang="EN-US">ID:0xb4</span>的设备读取内容<span lang="EN-US"><br />
^b4+01+a9+94+c7+59+78+58+87+6b+d3+8e+04+be+2a+47+d4+cc+f8+6e+6c+26+67+a6+98+5e+4a+75+69+63+79+20+44+61+74+61+20+30+33+.<br />
#</span>向<span lang="EN-US">ID:0x82</span>的设备写入内容<span lang="EN-US"><br />
^83+00+00+1f+.<br />
#</span>从<span lang="EN-US">ID:0x82</span>的设备读取内容<span lang="EN-US"><br />
^82+00+00+1f+00+00+00+1d+ec+3f+41+d8+04+e5+3f+67+4e+40+c1+38+1b+a1+c0+e1+dd+a0+40+b9+91+91+3c+.</span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
顺便画个图<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<a href="https://ctfiot.oss-cn-beijing.aliyuncs.com/uploads/2023/12/5-1701421045.png"><img width="522" height="714" src="http://cobjon.com/w/php/upload/202403/01/c02f5564.png" alt="HAS-BUS赛题复现" style="vertical-align:middle;" /></a>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
根据对回显信息的分析,猜测读<span lang="EN-US">b4</span>的条件就是<span lang="EN-US">82</span>的某个参数是否为特定值,大致流程就是,先读<span lang="EN-US">82</span>确认某个参数,发现参数没有被设置,则对<span lang="EN-US">82</span>进行写操作改变该参数,之后再次对<span lang="EN-US">82</span>进行读操作确认参数已经被设置,确认完毕则对<span lang="EN-US">b4</span>进行读操作。并且<span lang="EN-US">b4</span>的数据一直都是比较长的,所以猜测<span lang="EN-US">flag</span>应该在<span lang="EN-US">b4</span>这个设备当中。同时回去注意到<span lang="EN-US">README</span>当中<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US">* OBC (Onboard computer - bus master)<br />
* EEP (Some kind of device which contains "juicy data" + the flag)<br />
* EPS (Electrical power system controller)</span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
表明了<span lang="EN-US">flag</span>存在于<span lang="EN-US">EEP</span>当中,则我们这里<span lang="EN-US">b4</span>就是<span lang="EN-US">EEP</span>设备。我们知道,写的操作只有如下两种<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US">^83+00+00+3f+.<br />
^83+00+00+1f+.</span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
通过之前的分析可以知道,在读<span lang="EN-US">EEP</span>的内容时,<span lang="EN-US">82</span>的内容为<span lang="EN-US">^83+00+00+3f</span>,当我们对<span lang="EN-US">b4</span>读完之后,会先对<span lang="EN-US">82</span>在进行一次写操作,其操作为<span lang="EN-US">^83+00+00+1f</span>。对此总结可知读<span lang="EN-US">EEP</span>的整个流程操作大致如下<span lang="EN-US"></span>
</p>
<ol style="margin-top:0cm;" start="1" type="1">
<li style="font-family:等线;font-size:10.5pt;margin:0cm;tab-stops:list 36.0pt;text-align:justify;text-justify:inter-ideograph;">
先对<span lang="EN-US">82</span>进行读操作,确认其某个参数是否被设置;<span lang="EN-US">82</span>初始状态为:<span lang="EN-US">^83+00+00+1f</span>
</li>
<li style="font-family:等线;font-size:10.5pt;margin:0cm;tab-stops:list 36.0pt;text-align:justify;text-justify:inter-ideograph;">
发现<span lang="EN-US">82</span>某个参数没有被设置,对<span lang="EN-US">82</span>进行写操作,将其对应的参数设置<span lang="EN-US"></span>
</li>
<li style="font-family:等线;font-size:10.5pt;margin:0cm;tab-stops:list 36.0pt;text-align:justify;text-justify:inter-ideograph;">
再次对<span lang="EN-US">82</span>进行读操作,确认该参数被设置<span lang="EN-US"></span>
</li>
<li style="font-family:等线;font-size:10.5pt;margin:0cm;tab-stops:list 36.0pt;text-align:justify;text-justify:inter-ideograph;">
对<span lang="EN-US">EEP(b4)</span>进行读操作<span lang="EN-US"></span>
</li>
<li style="font-family:等线;font-size:10.5pt;margin:0cm;tab-stops:list 36.0pt;text-align:justify;text-justify:inter-ideograph;">
对<span lang="EN-US">82</span>进行写操作使其恢复为初始状态,操作为:<span lang="EN-US">^83+00+00+1f</span>
</li>
<li style="font-family:等线;font-size:10.5pt;margin:0cm;tab-stops:list 36.0pt;text-align:justify;text-justify:inter-ideograph;">
对<span lang="EN-US">82</span>进行读操作确认是否恢复初始状态<span lang="EN-US"></span>
</li>
</ol>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
很明显可以知道,<span lang="EN-US">82</span>控制着<span lang="EN-US">EEP</span>的开和关,同样从<span lang="EN-US">README</span>当中可知其名为<span lang="EN-US">EPS</span>,<span lang="EN-US">EPS</span>和<span lang="EN-US">EEP</span>的关系如下<span lang="EN-US"></span>
</p>
<table border="0" cellpadding="0" cellspacing="0" width="735" style="border-collapse:collapse;font-family:等线;font-size:10.5pt;width:551.25pt;" class="ke-zeroborder">
<thead>
<tr>
<td style="background:#DBD9D8;border:solid #CCCCCC 1.0pt;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<b><span lang="EN-US" style="color:black;">EEP</span><span style="color:black;">电源开<span lang="EN-US">/</span>关<span lang="EN-US">(82)</span></span><span lang="EN-US"></span></b>
</p>
</td>
<td style="background:#DBD9D8;border:solid #CCCCCC 1.0pt;border-left:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<b><span lang="EN-US" style="color:black;">EPS</span><span style="color:black;">状态<span lang="EN-US">(</span>十六进制<span lang="EN-US">)</span></span><span lang="EN-US"></span></b>
</p>
</td>
<td style="background:#DBD9D8;border:solid #CCCCCC 1.0pt;border-left:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<b><span lang="EN-US" style="color:black;">EPS</span><span style="color:black;">状态<span lang="EN-US">(</span>二进制<span lang="EN-US">)</span></span><span lang="EN-US"></span></b>
</p>
</td>
</tr>
</thead>
<tbody>
<tr>
<td style="background:white;border:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span style="color:black;">关</span><span lang="EN-US"></span>
</p>
</td>
<td style="background:white;border-bottom:solid #CCCCCC 1.0pt;border-left:none;border-right:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US" style="color:black;">1f</span><span lang="EN-US"></span>
</p>
</td>
<td style="background:white;border-bottom:solid #CCCCCC 1.0pt;border-left:none;border-right:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US" style="color:black;">0001 1111</span><span lang="EN-US"></span>
</p>
</td>
</tr>
<tr>
<td style="background:#F8F8F8;border:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span style="color:black;">开</span><span lang="EN-US"></span>
</p>
</td>
<td style="background:#F8F8F8;border-bottom:solid #CCCCCC 1.0pt;border-left:none;border-right:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US" style="color:black;">3f</span><span lang="EN-US"></span>
</p>
</td>
<td style="background:#F8F8F8;border-bottom:solid #CCCCCC 1.0pt;border-left:none;border-right:solid #CCCCCC 1.0pt;border-top:none;padding:6.0pt 9.0pt 6.0pt 9.0pt;">
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US" style="color:black;">0011 1111</span><span lang="EN-US"></span>
</p>
</td>
</tr>
</tbody>
</table>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
很明显可以看见,只需修改第六位就可以控制<span lang="EN-US">EEP</span>的开与关而在题目描述中<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US">There's a very busy bus we've tapped a port onto, surely there <b>is</b> some juicy<br />
information hidden <b>in</b> the device memory... somewhere...<br />
<br />
The OBC <b>is</b> tying up the bus most of the time.</span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
说明了<span lang="EN-US">bus</span>非常的忙,理论上我们这里需要将除了<span lang="EN-US">EEP</span>设备其他都关闭,但同时题目也说到,做轮询操作,期间间隔短<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US">By looking at the traffic, we see the OBC enabling power to the device,<br />
reading <b>from</b> it (<b>in</b> random areas that don't contain the flag), and<br />
turning it off afterwards. After that, there's a short pause<br />
(a few seconds) before the polling starts again.</span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
在我们肉眼可见的情况下表现出来的形式就是,会短暂的停一下,所以我们需要在这个时间段发送<span lang="EN-US">I²C</span>信号来获得<span lang="EN-US">flag</span>。我们知道<span lang="EN-US">EEP</span>开启只需要第六位为<span lang="EN-US">1</span>即可,则我们应该对<span lang="EN-US">82</span>做如下操作:<span lang="EN-US">^83+00+00+20.</span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<b><span lang="EN-US">“</span></b><span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
复现过程中发现<span lang="EN-US">20</span>并不唯一,存在多个参数可解;<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<b><span lang="EN-US">”</span></b><span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<a href="https://ctfiot.oss-cn-beijing.aliyuncs.com/uploads/2023/12/3-1701421046.png"><img width="554" height="37" src="http://cobjon.com/w/php/upload/202403/01/06e4b91e.png" alt="HAS-BUS赛题复现" style="vertical-align:middle;" /></a>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
输入后成功的关闭了除了<span lang="EN-US">EEP</span>的其他设备,接下来只需要将<span lang="EN-US">EEP</span>的内容读出来即可,操作如下<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<b><span lang="EN-US">“</span></b><span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
这里在关闭了除了<span lang="EN-US">EEP</span>的其他设备后,<span lang="EN-US">b4</span>后面的参数已经不重要了,对<span lang="EN-US">b4</span>的读操作会将<span lang="EN-US">EEP</span>中的所有内容都读出来。复现过程中尝试搞明白为什么在<span lang="EN-US">^83+00+00+20.</span>操作过后就能够关闭其他设备,从而直接泄露<span lang="EN-US">EEP</span>的全部内容,但是有些操作好像在源码中不能直接看出来,直接略过。有明白的师傅可以交流一下!!!<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<b><span lang="EN-US">”</span></b><span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US">^b4111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111</span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
结果如下,只要将<span lang="EN-US"> ^ + </span>符号去掉,再将十六进制转为字符串即可<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<a href="https://ctfiot.oss-cn-beijing.aliyuncs.com/uploads/2023/12/0-1701421046.png"><img width="554" height="45" src="http://cobjon.com/w/php/upload/202403/01/9fd73dc1.png" alt="HAS-BUS赛题复现" style="vertical-align:middle;" /></a>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US"><a href="https://ctfiot.oss-cn-beijing.aliyuncs.com/uploads/2023/12/9-1701421047.png"><img width="553" height="178" src="http://cobjon.com/w/php/upload/202403/01/45f52a4f.png" alt="HAS-BUS赛题复现" style="vertical-align:middle;" /></a><br />
<br />
</span>
</p>
<div align="center" style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:center;text-justify:inter-ideograph;">
<span lang="EN-US">
<hr size="0" width="100%" align="center" />
</span>
</div>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
参考文章:<span lang="EN-US"></span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US">https://cloud.tencent.com/developer/article/2332362</span>
</p>
<p style="font-family:等线;font-size:10.5pt;margin:0cm;text-align:justify;text-justify:inter-ideograph;">
<span lang="EN-US"> </span>
</p>
页:
[1]