行指针和列指针
行指针和列指针一,行指针主要指二维数组
1int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
换个角度看世界:
如首行一样,将首行视为一个元素,一个特殊的元素,这个“特殊的”元素是一个一维数组。那么这个二维数组是由是由三个“特殊的”元素组成的一个“特殊的”一维数组。
a是这个“特殊的”一维数组的名称,也就是首地址,也就是第一个元素的地址,也就是第一行的首地址,是指首行一整行,并不是指某个具体元素。那么我们称之为“行指针”。同理:a+0,a+1,a+2,都是行指针。
虚拟机安装vm-tools
虚拟机安装vm-tools前言有时候我们安装vm-tools的时候安装不成功我们就可以安装另一个工具open-vm-tools-desktop
安装1sudo apt-get open-vm-tools-desktop
如果报错是这个
换个源,然后更新系统就行
蓝牙:ATT和GATT
蓝牙:ATT和GATT包含低能耗规范的蓝牙 4.0 为标准带来了两个新协议:ATT(属性协议)和 GATT(通用属性配置文件)。它们主要针对低能耗模式,每个 LE 配置文件都应使用它们。但它们也可以在传统蓝牙 (BR/EDR) 上使用。
概述ATT 是一种有线应用协议,而 GATT 规定了如何在服务组合中使用 ATT。每个低功耗配置文件都必须基于 GATT。因此,最终,每个 LE 服务都使用 ATT 作为应用协议。
将 LE 配置文件绑定到这些协议可带来以下几个优点:
ATT 针对低功耗设备运行进行了优化:它使用尽可能少的字节,并且实现可以使用内存中的固定大小结构来存储数据包(PDU)。
ATT/GATT 的简单性和统一性促进了互操作性。ATT 和 GATT 往往在 BT 堆栈内实现,从而减轻了应用程序的低级繁琐工作。
作为一个统一而简单的协议,操作系统可以为应用程序提供通用的 ATT/GATT API。
最后一点非常重要。它允许应用程序级配置文件支持。在 经典蓝牙 中,支持新配置文件需要系统升级(对于不太常见的配置文件,这可能永远不会发生)。还有一些 ...
蓝牙里面的local host 和local control ,remote device
蓝牙里面的local host 和local control ,remote device在蓝牙技术中,“local host”、“local controller”和“remote device”是指不同角色和组件的概念,它们在蓝牙通信中承担不同的职责。以下是对这些概念的详细解释和它们之间的区别:
Local HostLocal Host是指本地设备中的主处理器或应用处理器,主要负责高层协议和应用逻辑:
协议栈的高层处理:
处理蓝牙协议栈的高层部分,如L2CAP(逻辑链路控制和适配协议)、SDP(服务发现协议)等。
管理设备的蓝牙连接、服务查找和数据传输等高层任务。
应用交互:
提供接口让应用程序能够访问蓝牙功能,例如配对、连接和数据交换。
处理用户界面和应用程序逻辑,与操作系统和用户应用进行交互。
Local ControllerLocal Controller是指本地设备中的蓝牙芯片或模块,负责低层协议和物理层操作:
协议栈的低层处理:
处理蓝牙协议栈的低层部分,包括HCI(主机控制接口)、链路层(LL)和物理层(PHY)。
负责实际的数据包传输、信号调制和解调,以 ...
蓝牙调试工具介绍
蓝牙调试工具介绍前言蓝牙有很多抓包工具,本篇就来汇总下常用蓝牙调试工具,针对这些调试工具air packet sniffer(空口包)和hci sniffer(空口包)进行详细说明,总结各个工具的使用场景。
常用的抓包工具介绍总的抓包工具框图
总的抓包工具框图
hw hci sniffer:硬件hci sniffer,通过芯片模组上飞出四根线(TX,RX,CTS,RTS)到特定设备接到电脑上,通过PC上位机就能抓取硬件hci sniffer,host与controller之间的交互流程。
缺点:要付费买类似逻辑分析仪的抓包装备
如下图所示
soft hci sniffer: 软件hci sniffer可以是local host也可以是Remote Device端。local host设备端常用的就是hcidump,btmon,btsnoop. Remote Device端手机端也能抓btsnoop就要将手机的开发者选项打开抓btsnoop. soft hci sniffer与hw hci sniffer都是抓Hci sniffer, 区别就是hw hci sniffer是抓硬件的, ...
蓝牙发展及其分类
蓝牙发展及其分类1、概念蓝牙,是一种支持设备短距离通信(一般 10m 内)的无线电技术,能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。
2、发展历程蓝牙 1.0 (1999年)早期的蓝牙版本,有数据泄露风险,并没有被广泛应用;
蓝牙 1.2 蓝牙技术一直在迭代,发布于 2003 年的蓝牙 1.2 是蓝牙真正走向安全可用的标志;
蓝牙 2.0(2004 年)则着重提高多任务处理能力,同时支持双工模式,可以一边语音通讯,一边传输文件;
蓝牙 3.0(2009 年)引入高速传输,加大带宽,客观上挤占 WiFi 的位置,增加了功耗和成本;
蓝牙 4.0(2010 年)重新找准定位,引入 BLE 概念,即 Bluetooth Low Energy 低功耗蓝牙;
蓝牙 5.0(2016 年)让蓝牙在低功耗下具备更强大的传输能力,提高了安全性和可达性,逐渐成为目前主流。
蓝牙 5.2(2020 年)聚焦LE Audio,发布多个LE音频规范和全新的LC3高品质低延迟编码器,增强蓝牙音频体验。
所以蓝牙技术已经发展了很多个年头,蓝牙技术联盟分为经典蓝牙和低功耗 ...
蓝牙Bluetooth学习
蓝牙Bluetooth学习Bluetooth 蓝牙协议栈技术“蓝牙”(Bluetooth)原是一位在10世纪统一丹麦的国王,他将当时的瑞典、芬兰与丹麦统一起来。用他的名字来命名这种新的技术标准,含有将四分五裂的局面统一起来的意思。蓝牙技术使用高速跳频(Frequency Hopping)和时分多址(TIme DivesionMuli—access)等先进技术,在近距离内最廉价地将几台数字化设备(各种移动设备、固定通信设备、计算机及其终端设备、各种数字数据系统,如数字照相机、数字摄像机等,甚至各种家用电器、自动化设备)呈网状链接起来。
蓝牙技术在发展至今,衍生出了多个版本,如老的经典蓝牙版本和4.0后的低功耗版本,下面主要讨论蓝牙低功耗也就是BLE。
蓝牙工作过程
配对:配对是指两个蓝牙设备首次通讯时,相互确认的过程,在通过配对后的数据传输不需要再重复进行确认
pin:个人识别码,蓝牙使用的pin码长度为1-8个十进制位数
DB_ADDR:蓝牙设备地址。每个蓝牙设备被分配了类似mac地址的唯一的一个48位数的设备地址。用于通讯地址确认.两个蓝牙设备在通讯开始时通过询问的方式获取蓝牙 ...
蓝帽杯2023初赛复现
蓝帽杯2023初赛复现takeway虽然这个题没有给libc,但是我们通过远程发现,该题是存在tcache的,肯定是2.26版本以上的,再搜索一下报错,就发现应该是2.27版本的,再简单逆向一下,发现存UAF漏洞
12345678910111213141516171819unsigned __int64 delete(){ unsigned int v1; // [rsp+4h] [rbp-Ch] BYREF unsigned __int64 v2; // [rsp+8h] [rbp-8h] v2 = __readfsqword(0x28u); v1 = 0; printf("Please input your order index: "); __isoc99_scanf("%d", &v1); if ( v1 >= _5__ || (v1 & 0x80000000) != 0 ) { puts("Invalid order!"); exit(1); & ...
获取以太坊测试币
获取以太坊测试币前言才知道原来搭建环境什么的都需要以太坊测试币进行测试才行,测试币只有一些水龙头网站才能发,于是我们便需要去对于的测试网络的水龙头网站获取
Ethereum Sepoliahttps://www.alchemy.com/faucets/ethereum-sepolia
访问这个网站即可获取,但是获取时候需要注册账号,谷歌账号登录即可
然后写入账户地址,便可获得测试币
MetaMask查看一下发现已经到账了
获取以太坊测试币-online
获取以太坊测试币前言才知道原来搭建环境什么的都需要以太坊测试币进行测试才行,测试币只有一些水龙头网站才能发,于是我们便需要去对于的测试网络的水龙头网站获取
Ethereum Sepoliahttps://www.alchemy.com/faucets/ethereum-sepolia
访问这个网站即可获取,但是获取时候需要注册账号,谷歌账号登录即可
然后写入账户地址,便可获得测试币
MetaMask查看一下发现已经到账了