- 博客(57)
- 收藏
- 关注
原创 ADSP仿真
仿真的时候需要将包含上述模块的容器的线程加入。(感觉带下划线的就是算法模块)eNPU可能参与的场景有voip和voice。sysMonApp一般位于mp下的这个路径。
2026-06-13 18:54:38
174
原创 Python ContextVar 底层机制与内存模型拆解
的设计精髓在于数据与 Key 的彻底分离ContextVar只是一个全局唯一标识,不持有任何数据Context是每个协程独立的数据容器,底层用 HAMT 树实现不可变存储上下文栈负责路由——谁在运行,就用谁的 Context写时复制保证协程创建是 O(1) 的轻量操作,直到真正写入才分支这四个机制配合,用全局变量的接口形态,实现了协程级的数据隔离——解决了异步编程中"状态泄漏"这个最头疼的问题。
2026-06-13 11:02:47
530
原创 LeetCode 2574. 左右元素和的差值
要点说明问题本质求每个位置左右两侧元素和的差的绝对值核心技巧前缀和递推,避免重复求和方向leftSum 从左往右递推,rightSum 从右往左递推边界最左侧 leftSum=0,最右侧 rightSum=0可优化用变量代替 rightSum 数组,省掉 O(n) 额外空间。
2026-06-06 11:20:44
190
原创 Codex 安装指南:从零到跑通的全流程
✅ 安装 Node.js / npm✅ 安装 Codex CLI✅ 获取大模型 API(通过 Close AI)✅ 配置 CC-Switch✅ 成功跑起 Codex!现在,打开命令行,输入codex,就可以开始用 AI 辅助编程了 🚀。
2026-06-06 10:59:44
687
原创 33. 搜索旋转排序数组(leetcode每日一题)
全局不有序 ≠ 二分不能用”。只要每次能判断目标在哪一半,二分就成立。旋转数组的特殊之处在于虽然整体有序性被破坏,但每次切分后必有一半是有序的——这是本题能用 O(log n) 的根本原因。边界条件的精度决定成败。>=vs<=vs、开区间 vs 闭区间——二分查找的每一个等号都不是随意的。写完后用一个元素的数组、两个元素的数组这类极端 case 验证一遍,大部分边界 bug 会立刻暴露。可泛化的原则:当需要在"部分有序"的结构中搜索时,不要试图还原整个有序结构——找到那个局部不变量。
2026-05-22 09:59:08
494
原创 3043. 最长公共前缀的长度(Leetcode 每日一题)
一个数的所有前缀可以通过num /= 10逐次砍末位得到,无需转字符串把 arr1 的所有前缀存入哈希集合,再对 arr2 的每个数从长到短查,匹配即可 breakTrie 也能做,但实现更重,适合需要复杂前缀操作的场景当问题可以归结为"是否存在"时,优先考虑哈希集合,而非更重的数据结构。
2026-05-21 09:49:43
657
原创 2657. 找到两个数组的前缀公共数组 | 难度:中等
C[i] 计算的是到下标 i 之前(包括 i)的公共元素个数。有些同学会误解为「到下标 i 之前(不包括 i)」,从而导致 off-by-one 错误。
2026-05-20 08:47:32
248
原创 LeetCode 2405. 子字符串的最优划分
一旦遇到重复字符,就必须分割,且让当前段尽可能长。这就是"贪心"——每一步都做当前最优选择(当前字符能加就加,不能加就开新段),最终得到全局最优解。
2026-05-19 10:00:56
411
原创 leetcode每日一题: 跳跃游戏 IV
给你一个整数数组arr,你一开始在数组的第一个元素处(下标为 0)。每一步,你可以从下标ii + 1i - 1i - 1 >= 0ji!= j请你返回到达数组最后一个元素的下标处所需的。:任何时候你都不能跳到数组外面。
2026-05-18 10:42:03
407
原创 1306. 跳跃游戏 III — 图搜索思路拆解
给定一个非负整数数组arr和起始位置start,当位于下标i时,可以跳到i + arr[i]或i - arr[i](不能越界)。判断能否跳到的下标处。🌏这道题的模式在真实系统中无处不在:网页爬虫从种子 URL 出发,沿着链接爬向新页面,已爬过的不重复爬——这就是图的遍历。理解了这道题,你就理解了爬虫的核心逻辑,也是所有"从 A 出发能否到达 B"问题的通用解法。:我第一次看到这道题,脑子里先闪过"贪心"——Jump Game I 不是贪心吗?。一旦能往左跳,就可能出现环(比如 0→3→0)。
2026-05-17 11:35:36
497
原创 两数之和(leetcode)
给定一个整数数组nums和一个整数目标值target,请你在该数组中找出target的那整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。
2026-05-16 11:04:36
528
原创 Windows下Claude Code完整安装指南
本教程详细介绍了在Windows系统下安装配置Claude Code的完整流程。主要内容包括:安装Git和Node.js环境,配置npm国内镜像源,全局安装Claude Code工具,安装cc-switch管理工具,购买API服务并获取密钥,最后通过cc-switch完成配置。教程针对国内网络环境进行了优化,提供了详细的图文指引和常见问题解答,适合新手用户一步步完成安装配置。通过本教程,用户可以在Windows系统上顺利搭建Claude Code开发环境,使用AI编程助手功能。
2026-05-16 09:36:53
4630
8
原创 BUUCTF: [BSidesCF 2020]Had a bad day
参考链接: https://juejin.cn/post/7091083692939935781本文知识点:该界面右两个按钮随便点击一个按钮:进国上述的测试,发现其根本无法绕过,看本文开头的参考链接解释,说高版本的php会检查传入的字符串的长度与传入参数的长度,如果不一样就不会执行,因此使用%00截断路径的方式不行!查看flag.php文件,由于查看的路径中必须包含woofers或则meowers,所以可以使用下面两条参数,都可以:base64解码得到flag,如下:
2026-01-30 15:29:28
408
原创 BUUCTF : [CISCN2019 华北赛区 Day2 Web1]Hack World
是一种 SQL 注入攻击技术,通过观察页面的两种不同响应状态,间接推断数据库中的敏感信息。以前接触的sql注入通常是右回显的,这道题的只有当id=1或者id=2时,才会有相应的内容,其他的都返回Error Occured When Fetch Result.因此可以考虑使用布尔盲注。
2026-01-30 14:15:11
500
原创 BUUCTF : [RoarCTF 2019]Easy Java
本文知识点:是Java的WEB应用的安全目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。
2026-01-30 11:25:29
857
原创 BUUCTF: [极客大挑战 2019]BabySQL
本文知识点:sql注入中的双写绕过: 很多文章只讲了双写能绕过一些场景,但是没有说为什么,我认为可能是下面这种情况可以使用,有不对的地方还请多多指教!什么情况下需要双写绕过呢?假如你是一个开发者,你会怎样处理非法出入呢?select比如:我们传递,经过代码的替换,最终变为了我们想要的select。
2026-01-25 16:51:24
462
原创 BUUCTF: [极客大挑战 2019]Upload
本文知识点:文件上传漏洞的基本思路就是上传一个可以被解析的对应引擎(如php引擎)解析的文件,然后访问这个文件,由于这个文件是我们上传的,因此我们能够控制他的行为,达到我们的目的。比如最简单的一句话木马。当php文件的后缀被过滤的时候,还可以尝试的选择有**包含php脚本的html文件**!回顾文件上传漏洞(攻防世界 easyupload)伪造文件的文件头部GIF89a!绕过文件头部的检查这个题目不能上传php,但是他保存文件的路径下本身就存在php文件。
2026-01-25 14:55:47
672
原创 攻防世界: easyupload
user.ini.user.ini是PHP的,我们可以借助.user.ini轻松让所有php文件都“自动”包含某个文件,而这个文件可以是一个正常php文件,也可以是一个包含一句话的webshell。:在每个 PHP 文件自动插入另一个文件:在每个 PHP 文件自动插入另一个文件GIF89a。
2026-01-25 14:54:04
995
原创 BUUCTF: [SUCTF 2019]EasySQL
知识点:使用下面的命令可以||select后面接的内容都是!!!(重要)sql注入的时候,!
2026-01-24 20:17:14
517
原创 BUUCTF:[GXYCTF2019]Ping Ping Ping
{}$()IFS大括号中的是一个变量,这个的功能就是将变量的值展开出来,比如假设有一个变量a123‘{a}`就会输出123命令替换:圆括号中的是命令,会当作命令执行,然后将输出当作内容来替换。比如(pwd)`就是执行pwd后的输出来替换。例如,${IFS}就会出现命令找不到的错误,如下图$(pwd)就会将当前的路径输出,如下图变量绕过字符串的过滤,比如"flag",可以使用进行替换,这样就相当与执行的命令,这个命令会将前面的输出保存起来,给后续的命令传递命令行的参数。
2026-01-24 17:04:42
300
原创 攻防世界: ics-05
本文知识点preg_replace可执行代码漏洞的使用preg_replace有三个参数,第一个参数是正则的模式字符串,第二个是替换的数据,第三个是正则模式字符串要去匹配的字符串。当正则的模式字符串与要匹配的字符串匹配时(即第一个参数与第三个参数匹配),就会使用替换数据(第二个参数)进行替换。当正则的第一个参数包含/e的时候就能触发代码执行的逻辑,具体可看后文。
2026-01-20 21:06:33
596
原创 攻防世界: lottery
本文知识点:php中==符号的规则:当使用==符号的时候,php不会要求两个变量的类型一致,他会先进行隐式的类型转换,然后进行比较。下面是具体的转换规则:当当。
2026-01-20 20:31:27
243
原创 攻防世界: catcat-new
本文知识点:常用的系统文件的作用flask伪造session的生成可以借助这个工具进行生成:https://github.com/noraj/flask-session-cookie-manager, 具体的使用见后文。
2026-01-20 20:13:31
1290
原创 攻防世界:Web_php_include
本文知识点,是一个,用于访问 HTTP 请求的原始主体数据(body)。简单来说就是将请求体部分的内容当作文件进行读取。: 将flag.php的内容编码为base64,防止php代码引擎执行。这个同样能够转换php文件的编码。
2026-01-19 14:25:02
605
原创 攻防世界:Web_php_unserialize
本文知识点:php魔术方法(__wakeup)的绕过。魔术方法__wakeup()是当php函数调用函数的时候自动调用的。但是当序列化后的属性的的时候,在特定的php版本是可以绕过__wakeup()方法的调用的。将上述代码序列化后的数据是:便能够绕过魔术方法__wakeup的调用。\0\0: 比如\0*\0:比如正则表达式中,属性数量的绕过,可以将+4。
2026-01-19 11:52:29
425
原创 攻防世界: unseping
{IFS}catmorelessprintf八进制"\57"phpph\pflagf""lag:构造函数,对象构造的时候__destruct: 析构函数,释放对象,销毁的时候__wakeup: 这个函数是反序列化的时候从代码的整体含义来看,我们需要传递一个名为ctf的参数给到后端,然后后端会按照base64的解码方式将数据解码出来。在析构函数中我们可以看到,他会将我们传递的参数的方法通过调用执行。因此我们可以考虑传入ease这个类的自身的方法ping,用这个函数来执行我们想要的代码。method。
2026-01-16 13:21:40
282
原创 攻防世界: easyphp
上述就是服务端逻辑的源码展示。因此这里主要的任务就是控制变量abc的值,使得key1与key2都为真。这里涉及到以下知识点:科学计数的表示:例如6e7表示6×107。substr函数的功能:substr(字符串, 开始索引, 长度)。其中开始索引为负数的时候表示从末尾开始数(-1是最后一个)。PHP语言的隐式类型转换当PHP的让一个字符串与数字进行比较(==,>, < 等符号)的时候,会将字符串转换为数字。PHP语言的松散比较与严格比较松散比较(即==符号)
2026-01-15 17:39:37
627
原创 攻防世界: fileclude
使用include函数将需要的php文件展示出来。具体就是将需要包含的php文件转变为base64编码,使其不能被php引擎解释执行。比如我们想控制file_get_contents的输出为:nihao。从上面的图片显示的代码来看,需要我们控制两个变量,控制file_get_contents的输出。
2026-01-15 13:53:04
307
原创 攻防世界: fileinclude
因此我们想要直接看到flag.php的内容。就需要对php文件进行特殊的处理,比如采用base64的方式进行编码。理解上述代码的意思后,大致的思路就是: 发送请求的时候,带上cookie,想办法。但是注意看20行的代码,使用的是include语句对文件进行导入。>的时候,他会执行里面的代码。如果是不包含这个标签,就会直接输出内容。根据网页的提示,我们需要的文件是。进行改包,可以看到成功返回了一串。
2026-01-15 12:58:49
381
原创 攻防世界: simple_php
这里我的第一想法是让a=‘0’,这样在比较相等的时候是相等的,但是非空字符串为true.等布尔上下文中,值会被自动转换为。比较时,PHP会尝试将。
2026-01-14 20:50:09
336
原创 AudioReach简要分析
本文摘要介绍了音频配置文件ResourceManager.xml和card-defs.xml的结构与解析过程。ResourceManager.xml定义了输入设备配置,包含设备ID、后端接口、声道数、采样率等参数,以及特定用例的自定义配置。card-defs.xml通过XML解析器处理声卡和设备定义,使用回调函数解析标签内容并构建数据结构。解析过程涉及标签开始/结束处理、数据缓冲管理,最终将声卡配置存入全局链表供系统使用。两个文件共同构成了音频系统的底层配置框架。
2026-01-07 13:25:40
1006
1
原创 音频基础到ALSA框架
本文摘要:文章系统介绍了音频处理的基础知识和技术要点。首先讲解了PCM音频数字化的三个关键步骤:采样(基于44.1KHz采样率)、量化(16bit精度)和编码。随后详细阐述了比特率计算方法和音频压缩技术,包括有损压缩的频域/时域遮蔽原理和无损压缩的预测/熵编码技术。接着对比了WAV、FLAC、MP3等常见音频格式的特点,并解析了IIS数字音频传输协议的硬件结构和操作模式。最后介绍了Linux下的ALSA音频框架,包括其驱动架构、PCM设备功能及注册流程。全文涵盖了从音频基础理论到实际应用开发的完整知识体系。
2026-01-07 13:25:21
1127
原创 dai link代码分析
比如上述的过程就会根据lpass_cdc_tx_macro_dai创建一个名为TX_AIF2 Capture的dai widget,并根据它的sname连接TX_AIF2 CAP这个widget。函数 snd_soc_dapm_connect_dai_link_widgets 负责连接 cpu dai 与 codec dai。每个dai link会对应一个pcm runtime,通过下面的调用在声卡中注册对应的pcm设备。
2026-01-06 11:54:42
430
原创 ALSA基础知识总结
ALSA音频驱动架构分析摘要: ALSA驱动核心流程包括:1)创建snd_card实例;2)初始化成员变量;3)创建PCM等逻辑设备;4)注册声卡。PCM设备处理播放(playback)和录音(capture),每个snd_card可包含多个PCM实例。关键数据结构包括snd_pcm(管理设备)、snd_pcm_str(管理数据流)和snd_pcm_substream(最小操作单元)。驱动通过snd_pcm_set_ops()设置设备操作函数,运行时信息保存在runtime结构。注册时根据次设备号将PCM挂
2026-01-06 11:53:16
418
原创 设备树中定义数组
设备树中的数组定义 在设备树(DTS)文件中,定义数组有两种等效的语法形式: 使用多个<value>标签:<1>, <1>, <1>, <1>, <1>, <1>, <1> 使用单个<value>标签包含多个值:<1 1 1 1 1 1 1> 这两种写法都表示包含7个1的数组,在功能上完全等价。第一种写法更清晰直观,第二种写法更简洁紧凑。
2026-01-04 10:06:52
115
原创 windows下conda更改安装环境的目录(解决记录)
摘要:本文解决了Windows下conda环境默认安装到C盘的问题。虽然已在.condarc配置文件中指定了环境目录(E:\APP\conda\envs),但创建环境仍占用C盘空间。原因是Windows目录权限不足,需修改目标文件夹权限:右击文件夹→属性→安全→选择用户→高级→编辑→勾选"完全控制"权限。完成设置后,conda环境将正确安装到指定目录,避免占用宝贵的C盘空间。
2026-01-04 10:06:33
268
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅