- 博客(44)
- 收藏
- 关注
原创 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
372
原创 BUUCTF : [CISCN2019 华北赛区 Day2 Web1]Hack World
是一种 SQL 注入攻击技术,通过观察页面的两种不同响应状态,间接推断数据库中的敏感信息。以前接触的sql注入通常是右回显的,这道题的只有当id=1或者id=2时,才会有相应的内容,其他的都返回Error Occured When Fetch Result.因此可以考虑使用布尔盲注。
2026-01-30 14:15:11
358
原创 BUUCTF : [RoarCTF 2019]Easy Java
本文知识点:是Java的WEB应用的安全目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。
2026-01-30 11:25:29
749
原创 BUUCTF: [极客大挑战 2019]BabySQL
本文知识点:sql注入中的双写绕过: 很多文章只讲了双写能绕过一些场景,但是没有说为什么,我认为可能是下面这种情况可以使用,有不对的地方还请多多指教!什么情况下需要双写绕过呢?假如你是一个开发者,你会怎样处理非法出入呢?select比如:我们传递,经过代码的替换,最终变为了我们想要的select。
2026-01-25 16:51:24
431
原创 BUUCTF: [极客大挑战 2019]Upload
本文知识点:文件上传漏洞的基本思路就是上传一个可以被解析的对应引擎(如php引擎)解析的文件,然后访问这个文件,由于这个文件是我们上传的,因此我们能够控制他的行为,达到我们的目的。比如最简单的一句话木马。当php文件的后缀被过滤的时候,还可以尝试的选择有**包含php脚本的html文件**!回顾文件上传漏洞(攻防世界 easyupload)伪造文件的文件头部GIF89a!绕过文件头部的检查这个题目不能上传php,但是他保存文件的路径下本身就存在php文件。
2026-01-25 14:55:47
605
原创 攻防世界: easyupload
user.ini.user.ini是PHP的,我们可以借助.user.ini轻松让所有php文件都“自动”包含某个文件,而这个文件可以是一个正常php文件,也可以是一个包含一句话的webshell。:在每个 PHP 文件自动插入另一个文件:在每个 PHP 文件自动插入另一个文件GIF89a。
2026-01-25 14:54:04
954
原创 BUUCTF: [SUCTF 2019]EasySQL
知识点:使用下面的命令可以||select后面接的内容都是!!!(重要)sql注入的时候,!
2026-01-24 20:17:14
393
原创 BUUCTF:[GXYCTF2019]Ping Ping Ping
{}$()IFS大括号中的是一个变量,这个的功能就是将变量的值展开出来,比如假设有一个变量a123‘{a}`就会输出123命令替换:圆括号中的是命令,会当作命令执行,然后将输出当作内容来替换。比如(pwd)`就是执行pwd后的输出来替换。例如,${IFS}就会出现命令找不到的错误,如下图$(pwd)就会将当前的路径输出,如下图变量绕过字符串的过滤,比如"flag",可以使用进行替换,这样就相当与执行的命令,这个命令会将前面的输出保存起来,给后续的命令传递命令行的参数。
2026-01-24 17:04:42
283
原创 攻防世界: ics-05
本文知识点preg_replace可执行代码漏洞的使用preg_replace有三个参数,第一个参数是正则的模式字符串,第二个是替换的数据,第三个是正则模式字符串要去匹配的字符串。当正则的模式字符串与要匹配的字符串匹配时(即第一个参数与第三个参数匹配),就会使用替换数据(第二个参数)进行替换。当正则的第一个参数包含/e的时候就能触发代码执行的逻辑,具体可看后文。
2026-01-20 21:06:33
577
原创 攻防世界: lottery
本文知识点:php中==符号的规则:当使用==符号的时候,php不会要求两个变量的类型一致,他会先进行隐式的类型转换,然后进行比较。下面是具体的转换规则:当当。
2026-01-20 20:31:27
221
原创 攻防世界: catcat-new
本文知识点:常用的系统文件的作用flask伪造session的生成可以借助这个工具进行生成:https://github.com/noraj/flask-session-cookie-manager, 具体的使用见后文。
2026-01-20 20:13:31
1251
原创 攻防世界:Web_php_include
本文知识点,是一个,用于访问 HTTP 请求的原始主体数据(body)。简单来说就是将请求体部分的内容当作文件进行读取。: 将flag.php的内容编码为base64,防止php代码引擎执行。这个同样能够转换php文件的编码。
2026-01-19 14:25:02
577
原创 攻防世界:Web_php_unserialize
本文知识点:php魔术方法(__wakeup)的绕过。魔术方法__wakeup()是当php函数调用函数的时候自动调用的。但是当序列化后的属性的的时候,在特定的php版本是可以绕过__wakeup()方法的调用的。将上述代码序列化后的数据是:便能够绕过魔术方法__wakeup的调用。\0\0: 比如\0*\0:比如正则表达式中,属性数量的绕过,可以将+4。
2026-01-19 11:52:29
404
原创 攻防世界: unseping
{IFS}catmorelessprintf八进制"\57"phpph\pflagf""lag:构造函数,对象构造的时候__destruct: 析构函数,释放对象,销毁的时候__wakeup: 这个函数是反序列化的时候从代码的整体含义来看,我们需要传递一个名为ctf的参数给到后端,然后后端会按照base64的解码方式将数据解码出来。在析构函数中我们可以看到,他会将我们传递的参数的方法通过调用执行。因此我们可以考虑传入ease这个类的自身的方法ping,用这个函数来执行我们想要的代码。method。
2026-01-16 13:21:40
263
原创 攻防世界: easyphp
上述就是服务端逻辑的源码展示。因此这里主要的任务就是控制变量abc的值,使得key1与key2都为真。这里涉及到以下知识点:科学计数的表示:例如6e7表示6×107。substr函数的功能:substr(字符串, 开始索引, 长度)。其中开始索引为负数的时候表示从末尾开始数(-1是最后一个)。PHP语言的隐式类型转换当PHP的让一个字符串与数字进行比较(==,>, < 等符号)的时候,会将字符串转换为数字。PHP语言的松散比较与严格比较松散比较(即==符号)
2026-01-15 17:39:37
600
原创 攻防世界: fileclude
使用include函数将需要的php文件展示出来。具体就是将需要包含的php文件转变为base64编码,使其不能被php引擎解释执行。比如我们想控制file_get_contents的输出为:nihao。从上面的图片显示的代码来看,需要我们控制两个变量,控制file_get_contents的输出。
2026-01-15 13:53:04
293
原创 攻防世界: fileinclude
因此我们想要直接看到flag.php的内容。就需要对php文件进行特殊的处理,比如采用base64的方式进行编码。理解上述代码的意思后,大致的思路就是: 发送请求的时候,带上cookie,想办法。但是注意看20行的代码,使用的是include语句对文件进行导入。>的时候,他会执行里面的代码。如果是不包含这个标签,就会直接输出内容。根据网页的提示,我们需要的文件是。进行改包,可以看到成功返回了一串。
2026-01-15 12:58:49
353
原创 攻防世界: simple_php
这里我的第一想法是让a=‘0’,这样在比较相等的时候是相等的,但是非空字符串为true.等布尔上下文中,值会被自动转换为。比较时,PHP会尝试将。
2026-01-14 20:50:09
314
原创 AudioReach简要分析
本文摘要介绍了音频配置文件ResourceManager.xml和card-defs.xml的结构与解析过程。ResourceManager.xml定义了输入设备配置,包含设备ID、后端接口、声道数、采样率等参数,以及特定用例的自定义配置。card-defs.xml通过XML解析器处理声卡和设备定义,使用回调函数解析标签内容并构建数据结构。解析过程涉及标签开始/结束处理、数据缓冲管理,最终将声卡配置存入全局链表供系统使用。两个文件共同构成了音频系统的底层配置框架。
2026-01-07 13:25:40
869
原创 音频基础到ALSA框架
本文摘要:文章系统介绍了音频处理的基础知识和技术要点。首先讲解了PCM音频数字化的三个关键步骤:采样(基于44.1KHz采样率)、量化(16bit精度)和编码。随后详细阐述了比特率计算方法和音频压缩技术,包括有损压缩的频域/时域遮蔽原理和无损压缩的预测/熵编码技术。接着对比了WAV、FLAC、MP3等常见音频格式的特点,并解析了IIS数字音频传输协议的硬件结构和操作模式。最后介绍了Linux下的ALSA音频框架,包括其驱动架构、PCM设备功能及注册流程。全文涵盖了从音频基础理论到实际应用开发的完整知识体系。
2026-01-07 13:25:21
1011
原创 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
384
原创 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
386
原创 设备树中定义数组
设备树中的数组定义 在设备树(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
98
原创 windows下conda更改安装环境的目录(解决记录)
摘要:本文解决了Windows下conda环境默认安装到C盘的问题。虽然已在.condarc配置文件中指定了环境目录(E:\APP\conda\envs),但创建环境仍占用C盘空间。原因是Windows目录权限不足,需修改目标文件夹权限:右击文件夹→属性→安全→选择用户→高级→编辑→勾选"完全控制"权限。完成设置后,conda环境将正确安装到指定目录,避免占用宝贵的C盘空间。
2026-01-04 10:06:33
231
原创 编译modern,安卓mk文件含义,音频工模修改
本文介绍了modern编译流程和Android.mk配置要点。编译modern需先运行setenv-qualcomm.sh脚本,再执行make.sh,完成后需修改acdb中的音频参数。在Android.mk中,:=会立即赋值,而=会延迟计算。工模修改流程包括:定位路径(通常在vendor目录)、修改代码、使用mmma命令编译、查看Android.mk确定输出类型(动态库或可执行文件)、查找生成文件位置(如libaudio-ftm.so)、adb推送更新并重启生效。工模日志可通过tag filter(关键字f
2026-01-03 16:18:19
287
1
原创 QXDM抓取音频数据(QXDM的配置)
本文介绍了QXDM工具的使用方法,主要包括:1) 数字与名称对应表,如0X10F60对应VPTX_ECNEAR_IN;2) 解析ADSP日志的步骤,包括打开QXDM、导入qmdl2文件、导出日志文本;3) 抓取数据时的配置设置方法;4) 连接和断开手机的操作图示;5) 保存dump文件的操作图示。文章通过图文结合的方式详细说明了QXDM工具的各项基本功能操作流程。
2026-01-03 16:13:27
292
原创 qcat节点音频数据解析(包含节点与名称之间的对应关系)
本文介绍了数字编号与名称的对应关系表(如0X10F60对应VPTX_ECNEAR_IN),并展示了不同位置对应的log节点数据示意图。在voice场景下,可通过查看mDSP中的特定log节点数据来判断问题是否源自modem模块,为排查问题提供了可视化参考依据。文中包含多个截图展示了数据解析和节点分布情况。
2026-01-02 12:41:08
172
原创 为什么使用copy_to_user 或 copy_from_user?
用户空间传递的指针可能是野指针,比如(0xdeadbeef)。copy_from_user 会检查地址是否属于用户空间。
2026-01-02 12:40:31
223
原创 高通QACT使用(当出现module无法编辑的时候,可以登录QPM解决)
本文介绍了音频调试工具QACT的相关使用方法和常见问题解决方案。主要内容包括:1) 音频模块编号与名称对应表;2) 如何比较不同acdb文件及颜色标识含义;3) 编辑splitter renderer时输出脚数量不可编辑的解决方法;4) 常见use case命名规范说明;5) 同步和混合模块的功能介绍;6) TKV模块标签的作用及其与模块ID的区别;7) QCAT出现"unlicensed module"问题的解决方法。文章提供了音频调试过程中的实用技巧和常见问题的处理方案。
2025-12-31 09:52:19
310
原创 音频驱动开发中的小知识合集
本文摘要总结了Android音频调试相关的实用命令和技巧,主要包括: 音频dump文件命名规范 版本信息查看方法 解除log打印限制 超声通路控制 无线GDB调试配置 声卡注册问题处理 设备树操作指南 常用编译和调试命令 Git操作技巧 中断函数注意事项 Gerrit代码拉取方法 这些内容涵盖了Android音频开发中的常见操作场景,具有较高的实用价值。
2025-12-31 09:51:44
606
原创 工作中常用的git命令(恢复文件,推送到审核,暂存文件)
本文总结了常用的Git操作命令,包括:1)恢复文件到指定版本的方法;2)推送代码到临时分支;3)从主线分支拉取最新代码的步骤;4)使用git stash暂存和恢复改动的操作;5)git restore命令恢复文件的说明。这些命令涵盖了版本控制、分支管理和临时修改处理等常见Git使用场景,适用于日常开发中的代码管理需求。
2025-12-30 17:17:54
165
原创 音频驱动开发(C++常用知识点)
本文摘要:文章介绍了C++中的三种继承方式(public、protected、private)及其访问权限规则,指出派生类成员的最终访问权限是继承方式和基类成员原权限的最小值。同时讲解了智能指针(unique_ptr)的简洁用法,以及利用RAII机制实现的锁管理工具(lock_guard和unique_lock)及其区别。最后介绍了C++11的默认成员初始化器特性,通过成员声明时直接初始化来简化构造函数编写,避免代码重复和维护困难。这些特性共同提升了C++代码的安全性和可维护性。
2025-12-30 17:03:36
319
原创 树莓派系统安装指南
系统的存储空间可以选择官方提供的 SD 卡,或使用自己的移动硬盘。如果选择移动硬盘的话,需要调整树莓派的启动顺序,否则可能无法正常启动。为了本次分享,我将使用 SD 卡作为存储介质(由于 SD 卡容量较小,仅有 32G,因此实际使用时我采用了 1T 的固态硬盘)。
2025-12-06 13:25:39
905
原创 编写代码的中英文助手
【摘要】这是一款专为程序员设计的F2快捷键辅助工具,能快速解决中英混输和标点切换问题。通过选中文本按F2键,即可实现拼音转中文(如"zhuanyehua"变"专业化")、中英混排修正("install anzhuang"变"install 安装")和中英标点转换。该工具非输入法插件,轻量不占资源,支持自定义配置,让开发者保持英文输入状态也能流畅处理中文注释。开源项目CodeHelper已在GitHub发布,可免费获取使用。
2025-10-08 17:41:03
253
原创 freqtrade环境搭建
pycharm(社区版永久免费,下载会送一个月的专业版): https://www.jetbrains.com/zh-cn/pycharm/
2025-09-27 17:26:57
359
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅