当前位置: 首页 > news >正文

SQL注入绕过技术

预计更新
  1. SQL注入概述
    1.1 SQL注入攻击概述
    1.2 SQL注入漏洞分类
    1.3 SQL注入攻击的危害

  2. SQLMap介绍
    2.1 SQLMap简介
    2.2 SQLMap安装与配置
    2.3 SQLMap基本用法

  3. SQLMap进阶使用
    3.1 SQLMap高级用法
    3.2 SQLMap配置文件详解
    3.3 SQLMap插件的使用

  4. SQL注入漏洞检测
    4.1 SQL注入漏洞检测基础
    4.2 SQL注入漏洞检测工具
    4.3 SQL注入漏洞检测实战

  5. SQL注入漏洞利用
    5.1 SQL注入漏洞利用介绍
    5.2 SQLMap利用SQL注入漏洞
    5.3 SQL注入漏洞利用实战

  6. SQL注入防御
    6.1 SQL注入防御基础
    6.2 防御SQL注入的最佳实践
    6.3 使用SQLMap测试防御效果

  7. SQL注入绕过技术
    7.1 SQL注入绕过技术介绍
    7.2 绕过WAF
    7.3 绕过输入过滤

  8. SQL注入攻击的后果
    8.1 数据泄露
    8.2 数据篡改
    8.3 数据删除

  9. SQL注入漏洞的利用场景
    9.1 SQL注入漏洞的利用场景介绍
    9.2 电商网站SQL注入漏洞利用实战
    9.3 CMS网站SQL注入漏洞利用实战

  10. SQL注入漏洞的漏洞挖掘与利用
    10.1 SQL注入漏洞的漏洞挖掘方法
    10.2 SQL注入漏洞利用的高级技巧
    10.3 SQL注入漏洞利用的未来趋势

SQL注入绕过技术介绍

SQL注入攻击是一种常见的网络攻击,攻击者利用漏洞将恶意的SQL代码注入到应用程序中,从而获得对数据库的访问权限,进而窃取、篡改、删除或者破坏数据库中的数据。SQL注入攻击的危害非常大,它可能导致应用程序、数据库和整个系统的完全崩溃。为了防范SQL注入攻击,渗透测试工程师需要了解SQL注入攻击的绕过技术,以便能够发现和修补应用程序中的SQL注入漏洞。

SQL注入攻击的绕过技术主要包括以下几种:

  1. 绕过注入检测

当应用程序对输入的数据进行过滤和验证时,攻击者需要使用一些技巧来绕过这些措施。常见的绕过注入检测的方法包括:

  • 使用大小写混合:攻击者可以使用大小写混合来绕过注入检测。例如,将SELECT改为sElEcT或者SeLeCt,从而使过滤器无法识别。
  • 使用特殊字符:攻击者可以使用特殊字符来绕过注入检测。例如,使用单引号、双引号、反斜杠等字符来绕过字符串过滤器。
  • 使用注释符号:攻击者可以使用注释符号来绕过注入检测。例如,使用"–"开头的注释符号来注释掉原有的SQL语句,从而让注入的SQL语句得以执行。
  1. 绕过登录验证

当应用程序需要用户进行登录验证时,攻击者需要绕过登录验证才能够进行SQL注入攻击。常见的绕过登录验证的方法包括:

  • 直接绕过验证:攻击者可以直接绕过应用程序的登录验证,例如在URL中加上特定的参数或者修改Cookie中的值来绕过验证。
  • 利用已登录的会话:攻击者可以利用已登录的会话来绕过登录验证。例如在浏览器中复制已登录的Cookie值,然后将其插入到攻击页面中,从而绕过登录验证。
  1. 绕过过滤器

当应用程序对输入的数据进行过滤时,攻击者需要绕过这些过滤器才能够进行SQL注入攻击。常见的绕过过滤器的方法包括:

  • 绕过数字型过滤器:攻击者可以使用一些技巧来绕过数字型过滤器。例如,使用布尔逻辑运算符、位运算符、函数等来绕过数字型过滤器。
  • 绕过字符串型过滤器:攻击者可以使用一些技巧来绕过字符串型过滤器。例如,使用特殊字符、编码、拼接等技巧来绕过字符串型过滤器。
  1. 利用错误信息

当应用程序返回错误信息时,攻击者可以利用这些错误信息来进行SQL注入攻击。常见的利用错误信息的方法包括:

  • 利用错误信息推断数据库结构:攻击者可以通过错误信息推断数据库结构。例如,通过错误信息得知数据库中有一个名为users的表格,从而进行进一步的注入攻击。
  • 利用错误信息得到敏感信息:攻击者可以通过错误信息得到敏感信息。例如,得到数据库管理员的用户名和密码,从而获得对整个数据库的访问权限。
  1. 使用盲注注入技术

盲注注入是一种无法直接从应用程序返回的结果来判断注入是否成功的注入技术。攻击者需要利用一些技巧来进行盲注注入。常见的盲注注入技术包括:

  • 布尔盲注:攻击者可以通过构造布尔逻辑表达式来进行盲注注入。例如,构造一个查询语句,如果返回TRUE,则说明注入成功,否则注入失败。
  • 时间盲注:攻击者可以通过构造时间延迟来进行盲注注入。例如,构造一个查询语句,如果返回结果需要很长时间才能返回,则说明注入成功,否则注入失败。
  1. 利用多语句注入技术

多语句注入是一种利用多个SQL语句进行注入的技术。攻击者可以通过多语句注入来实现多个操作,例如插入、修改、删除等。常见的多语句注入技术包括:

  • 利用分号注入:攻击者可以利用分号将多个SQL语句分开来进行注入。例如,将两个SQL语句用分号隔开,从而实现多语句注入。
  • 利用UNION注入:攻击者可以利用UNION关键字将多个查询结果进行合并来进行注入。例如,通过UNION注入语句将两个查询结果进行合并。

总之,SQL注入攻击是一种非常危险的网络攻击,攻击者可以利用漏洞获得对数据库的访问权限,从而窃取、篡改、删除或者破坏数据库中的数据。为了防范SQL注入攻击,渗透测试工程师需要了解SQL注入攻击的绕过技术,以便能够发现和修补应用程序中的SQL注入漏洞。

绕过WAF

WAF(Web Application Firewall)是一种应用层防火墙,用于保护Web应用程序免受各种网络攻击。其中包括SQL注入攻击。WAF可以防止常见的SQL注入攻击,并且可以通过配置规则来识别和阻止新的SQL注入攻击。然而,攻击者可以使用各种技术来绕过WAF的防御措施,从而成功地进行SQL注入攻击。为了防范SQL注入攻击,渗透测试工程师需要了解SQL注入攻击绕过WAF的技术,以便能够发现和修补应用程序中的SQL注入漏洞。

SQL注入攻击绕过WAF的技术主要包括以下几种:

  1. 利用编码

攻击者可以利用编码来绕过WAF的检测。例如,将SQL关键字编码为16进制、Unicode或者Base64格式。WAF可能无法识别这些编码后的关键字,从而无法防止SQL注入攻击。攻击者还可以使用URL编码、HTML实体编码等方式来绕过WAF的检测。

  1. 利用注释

攻击者可以使用SQL注释来绕过WAF的检测。例如,在SQL语句中使用"–“或者”#"来注释掉后续的语句。WAF可能无法识别这些注释符号,从而无法防止SQL注入攻击。

  1. 利用括号

攻击者可以使用括号来绕过WAF的检测。例如,在SQL语句中使用括号"()"将攻击载荷包含起来,从而使WAF无法检测到攻击载荷。攻击者还可以使用嵌套的括号来增加攻击的复杂度,从而更难被WAF检测到。

  1. 利用布尔盲注

攻击者可以使用布尔盲注来绕过WAF的检测。布尔盲注是一种利用布尔逻辑运算符(AND、OR)的SQL注入攻击方式。攻击者可以通过构造布尔查询来判断应用程序中的SQL注入漏洞。例如,攻击者可以构造一个查询,判断一个条件是否成立,从而推断出数据库中的某个值。由于WAF无法识别这种攻击方式,因此攻击者可以成功地进行SQL注入攻击。

  1. 利用时间盲注

时间盲注是一种利用时间延迟的SQL注入攻击方式。攻击者可以通过构造时间延迟的SQL查询来判断应用程序中的SQL注入漏洞。例如,攻击者可以构造一个查询,在查询结果返回前会有一段时间的延迟。通过观察返回结果的时间来判断查询是否成功执行。由于WAF无法识别这种攻击方式,因此攻击者可以成功地进行SQL注入攻击。

  1. 利用二次注入

二次注入是一种利用多个SQL查询的SQL注入攻击方式。攻击者可以在一个SQL查询中注入恶意代码,然后在另一个查询中执行该代码。由于WAF无法识别这种攻击方式,因此攻击者可以成功地进行SQL注入攻击。

  1. 利用错误信息

攻击者可以利用应用程序返回的错误信息来绕过WAF的检测。例如,攻击者可以构造一个错误的SQL查询,从而使应用程序返回错误信息。通过观察错误信息,攻击者可以推断出应用程序中的SQL注入漏洞。由于WAF无法识别这种攻击方式,因此攻击者可以成功地进行SQL注入攻击。

  1. 利用盲注

盲注是一种利用应用程序返回的信息来判断SQL查询结果的SQL注入攻击方式。攻击者可以通过构造盲注查询来判断应用程序中的SQL注入漏洞。例如,攻击者可以构造一个查询,如果查询结果为真,则应用程序返回一个页面,否则返回另一个页面。通过观察返回页面的内容来判断查询是否成功执行。由于WAF无法识别这种攻击方式,因此攻击者可以成功地进行SQL注入攻击。

总之,SQL注入攻击绕过WAF的技术非常多样化,攻击者可以根据具体情况选择不同的技术来绕过WAF的检测。渗透测试工程师需要了解这些技术,以便能够发现应用程序中的SQL注入漏洞,并进行修补。在修补SQL注入漏洞时,可以使用参数化查询、输入验证、白名单过滤等技术来防止SQL注入攻击。同时,渗透测试工程师还应该对WAF进行测试,以确保WAF能够有效地防止SQL注入攻击。

绕过输入过滤

数据库作为现代应用程序的重要数据存储手段,对于用户提交的数据往往需要执行SQL查询和修改操作。然而,恶意攻击者可以利用 SQL 注入攻击技术,伪造SQL查询语句并通过恶意用户输入来绕过输入过滤,访问和修改数据库中的数据。

常规的安全措施,例如输入过滤、参数化查询等可以有效地减缓 SQL 注入攻击的影响。不过,攻击者拥有多种方法来绕过这些安全措施。本文将从渗透测试工程师的角度,详细阐述 SQL 注入绕过技术之绕过输入过滤。

什么是输入过滤

输入过滤是指通过限制用户输入的方式,防止非法或有害的信息进入应用程序的过程。在 Web 应用程序中,防护通常包括限制非法字符、转义特殊字符等方式。

在 SQL 注入攻击中,输入过滤旨在防止攻击者直接将SQL语句注入到数据库中。例如,通过检查用户输入以确保其只包含数字或字母,并删除包含特殊字符的输入,可以防止常见的 SQL 注入攻击。

常见的输入过滤技术包括正则表达式、白名单过滤、黑名单过滤等。虽然这些技术能够有效地减缓SQL注入攻击,但是它们并不是完美的解决方案,因为攻击者有多种方法可以绕过这些策略。

SQL 注入攻击

在了解如何绕过输入过滤之前,我们需要先理解 SQL 注入攻击的工作原理。

SQL 注入攻击是一种将恶意 SQL 代码插入数据库查询语句中的攻击方式,以可执行任意 SQL 命令的形式达到控制目标系统的目的。攻击者通常发现应用程序存在安全漏洞,并通过对包含某些字符的用户输入进行操作,在应用程序的 SQL 查询语句上执行额外的命令。

例如,以下代码片段从 user 表中获取用户名和密码:

SELECT username, password FROM user WHERE id = $id

如果攻击者提供了一个怀有恶意的ID参数,“1 OR 1=1”, 语句变成了:

SELECT username, password FROM user WHERE id = 1 OR 1=1

由于条件始终为真,结果是 SELECT 语句返回表中所有行的数据,而不仅仅是指定的用户 ID 的行。 攻击者可以利用此类注入向控制台写入其他任意代码来 take-over 目标站点。

绕过输入过滤

为了继续讨论 SQL 注入攻击如何绕过输入过滤,我们需要先了解几种常用的输入过滤技术。

白名单过滤

白名单过滤是一种基于允许列表进行输入检查的技术,以防止恶意用户向应用程序中注入不安全代码。使用白名单过滤时,只有包含在事先定义的白名单中的输入值才被视为合法数据。

例如,一个 Web 应用程序可能会使用以下代码来验证输入的用户名是否只包含字母和数字:

import redef is_valid_username(username):# 只接受只包含字母和数字的字符串return bool(re.match("^[a-zA-Z0-9]*$", username))

此代码使用正则表达式从输入值中删除特殊字符,并确保仅包含字母和数字。 但是,如果攻击者能够绕过这些规则并注入非法数据,则此策略将无法有效地防止SQL注入攻击。

黑名单过滤

黑名单过滤与白名单过滤相反,它试图通过检查输入是否包含已知的危险字符或字符串来防止恶意数据进入系统。使用黑名单过滤时,管理员在服务器上配置黑名单,以排除已知恶意数据。 常见黑名单包括SQL保留字、引号等常见特殊字符。

例如,可以使用以下代码来清理输入的关键词:

def clean_input(value):# 清理未受信任的SQL保留字和特殊符号bad_chars = ["'", "\"", ";", "(", ")", "=", "<", ">"]for char in bad_chars:value = value.replace(char, "")return value

然而,使用黑名单过滤并不能有效抵御所有的 SQL 注入攻击。例如,如果攻击者能够使用万能字符来绕过黑名单,则无论过滤器中是否存在该字符串,恶意数据都将顺利通过。

解码过滤

解码过滤是一种可能被攻击者用来绕过输入检查的技术。此类攻击者会对用户输入进行 URL/HTML 编码或其他形式的编码,以尝试绕过服务器端的输入过滤器。

还有更多相关技术,等待大家的探索和分享!

相关文章:

SQL注入绕过技术

预计更新SQL注入概述 1.1 SQL注入攻击概述 1.2 SQL注入漏洞分类 1.3 SQL注入攻击的危害 SQLMap介绍 2.1 SQLMap简介 2.2 SQLMap安装与配置 2.3 SQLMap基本用法 SQLMap进阶使用 3.1 SQLMap高级用法 3.2 SQLMap配置文件详解 3.3 SQLMap插件的使用 SQL注入漏洞检测 4.1 SQL注入…...

锂电池基础知识及管理方式总结

这两天在排查一个锂电池无法充电的问题&#xff0c;用的是电池管理芯片BQ25713&#xff0c;网上相关的资料也很少&#xff0c;查看数据手册时&#xff0c;里面也有很多术语参数等不是很理解&#xff0c;所以&#xff0c;在此对锂电池的基础知识做个简单的总结&#xff0c;方面后…...

小红书基于零信任 SASE 办公安全解决方案,斩获 “IDC 中国 20 大杰出安全项目”

近日&#xff0c;由 IDC 主办的 2023 全球 CSO 网络安全峰会&#xff08;中国站&#xff09;在京举行&#xff0c;峰会荟萃 300 生态伙伴和行业领袖&#xff0c;共同探讨新形势下的数据安全保护&#xff0c;畅议未来网络安全的可靠航道。 会上&#xff0c;“2023 IDC 中国20大杰…...

html通过CDN引入Vue使用Vuex以及Computed、Watch监听

html通过CDN引入Vue使用Vuex以及Computed、Watch监听 近期遇到个需求&#xff0c;就是需要在.net MVC的项目中&#xff0c;对已有的项目的首页进行优化&#xff0c;也就是写原生html和js。但是咱是一个写前端的&#xff0c;写html还可以&#xff0c;.net的话&#xff0c;开发也…...

【LabVIEW学习】5.数据通信之TCP协议,控制电脑的一种方式

一。tcp连接以及写数据&#xff08;登录&#xff09; 数据通信--》协议--》TCP 1.tcp连接 创建while循环&#xff0c;中间加入事件结构&#xff0c;创建tcp连接&#xff0c;写入IP地址与端口号 2.写入tcp数据 登录服务器除了要知道IP地址以及端口以外&#xff0c;需要用户名与密…...

uview1 的u-tabs组件在微信小程序中会出现横向滚动条

uview1 的u-tabs组件在微信小程序中会出现横向滚动条&#xff0c;真机才会生效&#xff0c;微信开发者工具没问题包括官方示例也会 原因&#xff1a;未屏蔽微信小程序的滚动条 解决办法&#xff1a;uview-ui中uview-ui/components/u-tabs/u-tabs.vue文件把h5屏蔽滚动条的条件编…...

服务器ipv6地址显示“scope global dadfailed tentative noprefixroute”无法连通的问题处理一例

服务器规模启用ipv6地址后&#xff0c;遇到一起案例 &#xff0c;配置的服务ipv6地址显示“scope global dadfailed tentative noprefixroute”&#xff0c;无法连通&#xff0c;现将解决过程记录如下。 一、问题情况 1、ipv6信息检查 某台服务器配置ipv6地址后&#xff0c…...

深度学习学习顺序梳理

https://www.bilibili.com/video/BV1to4y1G7xq/?spm_id_from333.999.0.0&vd_source9607a6d9d829b667f8f0ccaaaa142fcb 1.吴恩达机器学习课程 已学完&#xff0c;时间较久了&#xff0c;后续可以重新听一遍&#xff0c;整理一下笔记 2. 白板推导读西瓜书 统计学习方法看…...

机器学习实验六:聚类

系列文章目录 机器学习实验一&#xff1a;线性回归机器学习实验二&#xff1a;决策树模型机器学习实验三&#xff1a;支持向量机模型机器学习实验四&#xff1a;贝叶斯分类器机器学习实验五&#xff1a;集成学习机器学习实验六&#xff1a;聚类 文章目录 系列文章目录一、实验…...

逆向思考 C. Fence Painting

Problem - 1481C - Codeforces 思路&#xff1a;逆序考虑&#xff0c;因为每一块木板都是被最后一次粉刷所决定的。 从后往前开始&#xff0c;对于 c i c_i ci​来说&#xff0c; 如果这个颜色还有没有涂的木板&#xff0c;那么涂到其中一个木板即可如果这个颜色下没有未涂的…...

当当狸AR智能学习图集跨越千年文明传承,邀您“面对面”与虚拟诗人互动对诗

中华传统文化底蕴深厚&#xff0c;余韵悠长。即使经过千年的历史裂变&#xff0c;依然历久铭心慰藉着一代又一代人的灵魂。千百年后的今天&#xff0c;成为了我们独一无二的财富。 如今&#xff0c;国人学习中华传统文化的方式有很多&#xff0c;诗词集、动画影片、诗歌传颂等…...

CESM笔记——component活动状态+compset前缀解析+B1850,BHIST区别

时隔一年没写CSDN笔记了&#xff0c;一些CESM的知识点我都快忘了。诶&#xff0c;主要是在国外办公室的网屏蔽了好多国内的网络&#xff0c;CSDN登不上&#xff0c;回家又不想干活。。。好吧&#xff0c;好多借口。。。 昨天师弟问我一些问题&#xff0c;想想要不可以水一篇小…...

vue 页面跳转时,浏览器上方显示进度条

vue 页面跳转时&#xff0c;浏览器上方显示进度条 文章目录 vue 页面跳转时&#xff0c;浏览器上方显示进度条先看效果一、安装 nprogress二、main.js 引入nprogress1.引入库 三、在router.js中对路由钩子进行设置四、测试 先看效果 vue 页面跳转时&#xff0c;浏览器上方显示进…...

tqdm输出字符串被截断

tqdm输出截断 1.遇到的问题2.tqdm默认的字符串长度是80&#xff08;ncols属性&#xff09;3.修改tqdm的ncols属性4.本人字符串长度是64 1.遇到的问题 字符串打印&#xff0c;显示不完整&#xff0c; 2.tqdm默认的字符串长度是80&#xff08;ncols属性&#xff09; 3.修改tqdm的…...

Qt::UniqueConnection和lambda一块用无效

如果槽函数是lambda。 那么用了Qt::UniqueConnection也会出现槽函数被多次调用的问题。 原因&#xff1a; 参考官方文档&#xff1a; QObject Class | Qt Core 5.15.16https://doc.qt.io/qt-5/qobject.html#connect...

四川技能大赛——2023年四川网信人才技能大赛(网络安全管理员赛项)决赛

四川技能大赛——2023年四川网信人才技能大赛&#xff08;网络安全管理员赛项&#xff09;决赛 文章目录 四川技能大赛——2023年四川网信人才技能大赛&#xff08;网络安全管理员赛项&#xff09;决赛C1-比64少的bas - DONEC2-affine - DONEC3-简单的RSA - DONEM1-不要动我的f…...

死锁(面试常问)

1.什么是死锁 简单来说就是一个线程加锁后解锁不了 一个线程&#xff0c;一把锁&#xff0c;线程连续加锁两次。如果这个锁是不可重入锁&#xff0c;会死锁。两个线程&#xff0c;两把锁。 举几个例子&#xff0c;1.钥匙锁车里了&#xff0c;车钥匙锁家里了。2. 现在有一本书…...

GO设计模式——3、抽象工厂模式(创建型)

目录 抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09; 抽象工厂模式的核心角色 优缺点 代码实现 抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09; 抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09;是围绕一个超级工厂创建其他…...

AUTOSAR_PRS_LogAndTraceProtocol文档翻译

1简介和概述 本协议规范规定了AUTOSAR协议Dlt的格式、消息序列和语义。 该协议允许将诊断、日志和跟踪信息发送到通信总线上。 因此&#xff0c;Dlt模块从应用程序或其他软件模块收集调试信息&#xff0c;向调试信息添加元数据&#xff0c;并将其发送到通信总线。 此外&#x…...

自定义比较器

package org.jeecg.modules.develop.api.livePort; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; // 创建一个泛型类 class MyObject { private T data; public MyObject(T data) {this.data data; }p…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 &#xff08;一&#xff09;项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台&#xff0c;其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言&#xff0c;首次接触 OpenBCI 设备时&#xff0c;往…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态

前言 在人工智能技术飞速发展的今天&#xff0c;深度学习与大模型技术已成为推动行业变革的核心驱动力&#xff0c;而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心&#xff0c;系统性地呈现了两部深度技术著作的精华&#xff1a;…...

Modbus RTU与Modbus TCP详解指南

目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...