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

学习日志(三)【php语法学习,iscc校赛wp】

1. 任务1.1.1.1.1.1. 知识部分rce看【之前的笔记】php的知识点学习继续jwt token好像是比赛的题目考察内容我看看php伪协议1.1.1.1.1.2. 题目参加iscc比赛【五一】rce题目1.1.1.1.1.3. 环境配置把vscode搞好上学期没有把Php配置弄好2. 知识点学习2.1. php继续学习https://www.runoob.com/php/php-variables.html2.1.1. php if-else2.1.2. lfelse语句2.1.2.1. 条件语句if 语句- 在条件成立时执行代码if...else 语句- 在条件成立时执行一块代码条件不成立时执行另一块代码if...elseif....else 语句- 在若干条件之一成立时执行一个代码块switch 语句- 在若干条件之一成立时执行一个代码块2.1.2.2. 其实c语言里面已经讲过简单带过2.1.3. php switch语句?php switch (expression) { case value1: // 代码块1 break; case value2: // 代码块2 break; // 更多的 case 语句 default: // 如果没有匹配的值 } ?expression是要被比较的表达式。case value:是可能的值如果expression的值等于某个case的值就执行相应的代码块。break;用于终止switch语句防止继续执行下一个case。default:是可选的用于指定当没有匹配的case时执行的代码块。2.1.3.1.1. 栗子?php $favcolorred; switch ($favcolor) { case red: echo 你喜欢的颜色是红色!; break; case blue: echo 你喜欢的颜色是蓝色!; break; case green: echo 你喜欢的颜色是绿色!; break; default: echo 你喜欢的颜色不是 红, 蓝, 或绿色!; } ?2.1.4. php 数组数组是一个能在单个变量中存储多个值的特殊变量。数值数组- 带有数字 ID 键的数组关联数组- 带有指定的键的数组每个键关联一个值多维数组- 包含一个或多个数组的数组2.1.4.1. 数值数组自动从0开始计数可以更加便捷地去表示这个位置内容数据2.1.4.1.1. 获取长度count$cars2.1.4.1.2. 遍历使用For循环2.1.4.2. 关联数组指代2.1.4.2.1. 遍历数组2.1.4.2.1.1. 补充【使用函数foreach】// 格式1只获取元素值不需要键名 foreach (要遍历的数组 as $当前元素值) { // 循环体逻辑 } // 格式2同时获取元素的键和值 foreach (要遍历的数组 as $当前键名 $当前元素值) { // 循环体逻辑 }栗子$userInfo [ username admin, role root, id 1 ]; foreach ($userInfo as $key $value) { echo {$key}{$value}br; } // 输出 // usernameadmin // roleroot // id1$userInfo [ username admin, role root, id 1 ]; // 只拿值不拿键 foreach ($userInfo as $value) { echo {$value}br; } // 输出 // admin // root // 1 foreach ($userInfo as $key $value) { echo {$key}br; } //输出 // username // role // id2.1.5. php数组排序sort()- 对数组进行升序排列rsort()- 对数组进行降序排列asort()- 根据关联数组的值对数组进行升序排列ksort()- 根据关联数组的键对数组进行升序排列arsort()- 根据关联数组的值对数组进行降序排列krsort()- 根据关联数组的键对数组进行降序排列2.1.5.1. sort(),rsort()[0]2,,,[1]42.1.5.2. asort(),arsort(),ksort(),krsort()a:是值后面那个 #k:是键前面那个 # 2.1.6. PHP 表单 - 验证邮件和URL2.1.6.1.1. preg_match — 进行正则表达式匹配int preg_match ( string $pattern , string $subject [, array $matches [, int $flags ]] )参数作用说明$pattern正则规则必填必须是完整的正则表达式需要用分隔符包裹常用/例如/test/i$subject目标字符串必填要匹配的原始字符串$matches匹配结果可选存储匹配到的结果$matches[0]是整个正则匹配到的内容$matches[1]是第一个分组的结果以此类推$flags标记位可选用来修改匹配行为常用值PREG_OFFSET_CAPTURE会同时返回匹配结果在字符串中的偏移位置匹配成功输出1,对应内容若!preg_match($pattern, $username)则是不符合不匹配时进行的操作符号含义作用/正则定界符PHP正则必须用分隔符把规则包起来常用/只是语法要求本身不匹配内容^匹配开头代表必须从字符串的第一个字符就开始符合规则不能在开头插入其他内容\d匹配数字和[0-9]一个意思代表只能匹配0~9的阿拉伯数字量词代表前面的\d至少出现1次不允许空字符串$匹配结尾代表必须匹配到字符串的最后一个字符不能在结尾留其他非数字内容2.1.6.1.1.1. 例子1获取URL中的参数值CTF代码审计常考提取URL路径中/flag_xxxxxx格式的flag编号$url /api/flag_1a2b3c4d/get.php; // 正则匹配flag_后面的任意字符 $pattern /flag_([a-zA-Z0-9])/; preg_match($pattern, $url, $matches); echo 匹配到的flagflag_ . $matches[1]; // 输出匹配到的flagflag_1a2b3c4d2.1.6.1.1.2. 例子2用户名正则校验绕过场景场景要求用户名只能是字母不能包含特殊字符且必须以字母开头$username admin123; // 正则规则开头到结尾只能是字母 $pattern /^[a-zA-Z]$/; if (!preg_match($pattern, $username)) { echo 用户名不合法不能包含数字;//匹配不成功 } else { echo 用户名合法; } // 这里$username是admin123输出用户名不合法不能包含数字对应PHP 5.2下的绕过例子如果正则要求必须只包含字母但我们想插入攻击代码可以用空字节截断绕过// 插入了\0%00截断后面的攻击代码不会被检查 $username admin\0?php eval($_GET[cmd]);?; $pattern /^[$/; if (!preg_match($pattern, $username)) { echo 用户名不合法; } else { echo 用户名合法; } // 在PHP 5.2中会输出用户名合法成功绕过正则检测2.1.6.1.1.3. 例子3WAF绕过数组绕过a-zA-Z]场景WAF用preg_match检测POST参数中是否有eval等危险关键词// 服务端检测逻辑 if (preg_match(/eval|union|select/i, $_POST[content])) { die(检测到恶意内容已拦截);//匹配成功 } echo 请求通过; // 绕过方法把content传成数组而不是字符串 // content[0]test此时preg_match匹配数组会直接返回falseWAF拦截不生效 // 最终会输出请求通过绕过成功这也是你做Web渗透测试时非常实用的绕过技巧。2.1.6.1. 验证 URL邮箱名称?php // 定义变量并默认设置为空值 $nameErr $emailErr $genderErr $websiteErr ; $name $email $gender $comment $website ; if ($_SERVER[REQUEST_METHOD] POST) { if (empty($_POST[name])) { $nameErr Name is required; } else { $name test_input($_POST[name]); // 检测名字是否只包含字母跟空格 if (!preg_match(/^[a-zA-Z ]*$/,$name)) { $nameErr 只允许字母和空格; } } if (empty($_POST[email])) { $emailErr Email is required; } else { $email test_input($_POST[email]); // 检测邮箱是否合法 if (!preg_match(/([\w\-]\[\w\-]\.[\w\-])/,$email)) { $emailErr 非法邮箱格式; } } if (empty($_POST[website])) { $website ; } else { $website test_input($_POST[website]); // 检测 URL 地址是否合法 if (!preg_match(/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9#\/%?~_|!:,.;]*[-a-z0-9#\/%~_|]/i,$website)) { $websiteErr 非法的 URL 的地址; } } if (empty($_POST[comment])) { $comment ; } else { $comment test_input($_POST[comment]); } if (empty($_POST[gender])) { $genderErr 性别是必需的; } else { $gender test_input($_POST[gender]); } } ?2.1.7. php 时间string date ( string $format [, int $timestamp ] )参数描述format必需。规定时间戳的格式。timestamp可选。规定时间戳。默认是当前的日期和时间。date() 函数的第一个必需参数format规定了如何格式化日期/时间。format字符说明返回值例子日------d月份中的第几天有前导零的 2 位数字01到31D星期中的第几天文本表示3 个字母Mon到Sunj月份中的第几天没有前导零1到31lL的小写字母星期几完整的文本格式Sunday到SaturdayNISO-8601 格式数字表示的星期中的第几天PHP 5.1.0 新加1表示星期一到7表示星期天S每月天数后面的英文后缀2 个字符stndrd或者th。可以和j一起用w星期中的第几天数字表示0表示星期天到6表示星期六z年份中的第几天0到365星期------WISO-8601 格式年份中的第几周每周从星期一开始PHP 4.1.0 新加的例如42当年的第 42 周月------F月份完整的文本格式例如 January 或者 MarchJanuary到Decemberm数字表示的月份有前导零01到12M三个字母缩写表示的月份Jan到Decn数字表示的月份没有前导零1到12t给定月份所应有的天数28到31年------L是否为闰年如果是闰年为1否则为0oISO-8601 格式年份数字。这和Y的值相同只除了如果 ISO 的星期数W属于前一年或下一年则用那一年。PHP 5.1.0 新加Examples:1999or2003Y4 位数字完整表示的年份例如1999或2003y2 位数字表示的年份例如99或03时间------a小写的上午和下午值am或pmA大写的上午和下午值AM或PMBSwatch Internet 标准时000到999g小时12 小时格式没有前导零1到12G小时24 小时格式没有前导零0到23h小时12 小时格式有前导零01到12H小时24 小时格式有前导零00到23i有前导零的分钟数00到59s秒数有前导零00到59u毫秒 PHP 5.2.2 新加。需要注意的是date()函数总是返回000000因为它只接受 integer 参数 而 DateTime::format() 才支持毫秒。示例:654321时区------e时区标识PHP 5.1.0 新加例如UTCGMTAtlantic/AzoresI是否为夏令时如果是夏令时为1否则为0O与格林威治时间相差的小时数例如0200P与格林威治时间GMT的差别小时和分钟之间有冒号分隔PHP 5.1.3 新加例如02:00T本机所在的时区例如ESTMDT【译者注】在 Windows 下为完整文本格式例如Eastern Standard Time中文版会显示中国标准时间。Z时差偏移量的秒数。UTC 西边的时区偏移量总是负的UTC 东边的时区偏移量总是正的。-43200到43200完整的日期时间------cISO 8601 格式的日期PHP 5 新加2004-02-12T15:19:2100:00rRFC 822 格式的日期例如Thu, 21 Dec 2000 16:01:07 0200U从 Unix 纪元January 1 1970 00:00:00 GMT开始至今的秒数参见 time()2.1.8. php过滤器2.1.8.1. 过滤器是什么PHP 过滤器用于验证和过滤来自非安全来源的数据。测试、验证和过滤用户输入或自定义数据是任何 Web 应用程序的重要组成部分。PHP 的过滤器扩展的设计目的是使数据过滤更轻松快捷。2.1.8.2. 函数和过滤器filter_var()- 通过一个指定的过滤器来过滤单一的变量filter_var_array()- 通过相同的或不同的过滤器来过滤多个变量filter_input- 获取一个输入变量并对它进行过滤filter_input_array- 获取多个输入变量并通过相同的或不同的过滤器对它们进行过滤2.1.8.2.1. 栗子FILTER_VALIDATE_INT验证是否是整数验证数字参数最常用// 验证id是否是整数 $id $_GET[id]; if(filter_var($id, FILTER_VALIDATE_INT)){ echo 合法参数; }FILTER_SANITIZE_STRING过滤字符串去除标签和特殊字符用来防止XSSFILTER_VALIDATE_URL验证URL格式代码题中经常用来考URL绕过【FILTER_VALIDATE_URL要求必须有http://协议头我们可以通过在URL中嵌入来绕过host验证例如http://example.com127.0.0.1会被误认为访问example.com实际解析的是127.0.0.1可以触发SSRF绕过。】FILTER_VALIDATE_IP验证IP地址格式2.1.8.3. Validating 和 Sanitizing有两种过滤器Validating 过滤器用于验证用户输入严格的格式规则比如 URL 或 E-Mail 验证如果成功则返回预期的类型如果失败则返回 FALSESanitizing 过滤器用于允许或禁止字符串中指定的字符无数据格式规则始终返回字符串验证输入第一段FILTER_VALIDATE_EMAIL属于验证类过滤器只做格式验证返回结果是true合法 或false非法不会修改你的原始输入。第二段FILTER_SANITIZE_URL属于净化类过滤器会直接修改输入内容自动删除URL中不允许的特殊字符比如空格、非ASCII字符、#、这些符号返回处理后的干净字符串。2.1.8.4. 验证输入?php if(!filter_has_var(INPUT_GET, email)) { echo(没有 email 参数); } else { if (!filter_input(INPUT_GET, email, FILTER_VALIDATE_EMAIL)) { echo 不是一个合法的 E-Mail; } else { echo 是一个合法的 E-Mail; } } ?上面的实例有一个通过 GET 方法传送的输入变量 (email)检测是否存在 GET 类型的 email 输入变量如果存在输入变量检测它是否是有效的 e-mail 地址2.1.8.5. 净化输入?php if(!filter_has_var(INPUT_GET, url)) { echo(没有 url 参数); } else { $url filter_input(INPUT_GET, url, FILTER_SANITIZE_URL); echo $url; } ?上面的实例有一个通过 GET 方法传送的输入变量 (url)检测是否存在 GET 类型的 url 输入变量如果存在此输入变量对其进行净化删除非法字符并将其存储在 $url 变量中2.1.8.6. 过滤多个输入?php $filters array ( // name字段使用FILTER_SANITIZE_STRING净化 name array ( filterFILTER_SANITIZE_STRING ), // age字段验证是否是整数同时限制范围1-120 age array ( filterFILTER_VALIDATE_INT, optionsarray ( min_range1, max_range120 ) ), // email字段直接验证邮箱格式 email FILTER_VALIDATE_EMAIL ); $result filter_input_array(INPUT_GET, $filters); //一次性从INPUT_GET也就是URL参数中获取三个参数 //按照上面定义的规则分别过滤结果会按字段名存回到$result数组中。 if (!$result[age]) { echo(年龄必须在 1 到 120 之间。br); } elseif(!$result[email]) { echo(E-Mail 不合法br); } else { echo(输入正确); } ?filter_input_array()函数的第二个参数可以是数组或单一过滤器的 ID。如果该参数是单一过滤器的 ID那么这个指定的过滤器会过滤输入数组中所有的值。如果该参数是一个数组那么此数组必须遵循下面的规则必须是一个关联数组其中包含的输入变量是数组的键比如 age 输入变量此数组的值必须是过滤器的 ID 或者是规定了过滤器、标志和选项的数组2.1.8.7. 使用 Filter Callback通过使用FILTER_CALLBACK过滤器可以调用自定义的函数把它作为一个过滤器来使用。3. 题目3.1. iscc题目一3.1.1. 题目3.1.2. 解题3.1.2.1. 第一步随便输入一个数3.1.2.2. 第二步看不懂这个知识点我应该是不会一番查询过后好像考察的是JWT的token?查博客token与JWT详细介绍_jwt token-CSDN博客基于jwt的token验证、原理及流程_jwt token-CSDN博客一篇了解什么是Token、什么是Jwt_jwt token-CSDN博客JWTJSON Web Token全维度渗透测试实战与防御体系构建_cve-2020-26160-CSDN博客应该可能使用的工具JWT在线工具 - kjson在线工具在线JWT Token生成3.1.2.3. 放弃3.1.2.4. 额看了眼别人的答案得知没有我想的那么复杂只是一个简单的key过滤【我竟然还想了那么多】首先输入key123,发现key没了说明被绕过了这个其实在题目也有提示然后想办法绕过这个key如双写kkeyey第一关过了接下来让你用post写aa[key]1337下一关用get来写要使得a,b相等md5的哈希碰撞有专门的计算方式一查就可a240610708 b3142824223.2. iscc题目二3.2.1. 题目我们上线了一个“JSON 美化 预览”小工具提交数据后会生成一个临时预览文件方便复查内容。3.2.2. 解答过程3.2.2.1. 第一步我先照抄了一下json3.2.2.2. 第二步发现错误提示/robots.txt3.2.2.3. 第三步前往preview.phpbeautify.php发现这两个地方也是不可访问可能是没写完整3.2.2.4. 第四步根据preview.php要求查找preview.php源代码使用伪协议去看preview.php的源代码因为之前只看见beautify.php的源代码根据提示可能是层级不对找到源代码了?php declare(strict_types1); header(Content-Type: text/plain; charsetutf-8); header(X-Powered-By: JSON Preview); error_reporting(0); require_once __DIR__ . /config.php; function out(int $code, string $body): void { http_response_code($code); echo $body; exit; } function startsWith(string $s, string $prefix): bool { return strncmp($s, $prefix, strlen($prefix)) 0; } function schemeOf(string $uri): ?string { $p strpos($uri, ://); if ($p false) return null; $scheme substr($uri, 0, $p); if (preg_match(/^[a-zA-Z][a-zA-Z0-9\.\-]*$/, $scheme) ! 1) { return null; } return strtolower($scheme); } if ($_SERVER[REQUEST_METHOD] ! GET) { out(405, Method Not Allowed\n); } if (!isset($_GET[file]) || trim((string)$_GET[file]) ) { out(200, JSON Preview API\n\n . Usage:\n . GET /api/preview.php?filename\n\n . 有些东西离这里有点远也许换个路径层级再看看会遇到更有意思的文件。\n ); } $file (string)$_GET[file]; $file str_replace(\0, , $file); $requested TMP_DIR . / . $file; if (strpos($requested, TMP_DIR) ! 0) { out(400, Bad path\n); } $real realpath($requested); if ($real false || !is_file($real)) { out(404, Not Found\n); } $tmpPrefix rtrim(TMP_DIR, /) . /; $srcPrefix rtrim(SRC_API_DIR, /) . /; if (!startsWith($real, $tmpPrefix) !startsWith($real, $srcPrefix)) { out(403, Forbidden\n); } $content file_get_contents($real); if ($content false) { out(500, Read error\n); } $isTmp startsWith($real, $tmpPrefix) preg_match(/\.tmp$/, $real) 1; $line trim((string)$content); if ($isTmp) { $scheme schemeOf($line); if ($scheme ! null) { $deny [ http, https, ftp, ftps, phar, expect, ]; if (in_array($scheme, $deny, true)) { out(403, Forbidden scheme\n); } $pos stripos($line, resource); if ($pos false) { out(400, Bad reference\n); } $resource rawurldecode(substr($line, $pos 9)); if ($resource ! FLAG_PATH) { out(403, Forbidden resource\n); } $data file_get_contents($line); if ($data false) { out(500, Resource read error\n); } echo $data; exit; } } echo $content;3.2.2.4.1.1. 补充知识点读取网站当前目录的源码当不确定网站的绝对路径时不需要爆破路径直接通过php://filter/readconvert.base64-encode/resource/proc/self/cwd/xxx.php就可以直接读取当前目录下任意PHP文件的源码完美解决路径未知的问题。3.2.2.5. 第五步进行代码审计我打包给ai了declare(strict_types1); 开启PHP严格类型模式强制函数参数和返回值必须匹配声明的类型 避免隐式类型转换导致的安全问题是现代PHP安全编码的标准写法。header(Content-Type: text/plain; charsetutf-8); header(X-Powered-By: JSON Preview); 第一行强制响应内容为纯文本UTF8编码避免乱码 第二行自定义响应头模拟成JSON预览工具的后端接口require_once __DIR__ . /config.php; 作用加载当前目录下的config.php配置文件 通常这里会定义TMP_DIR、SRC_API_DIR、FLAG_PATH等题目核心常量。漏洞点1$deny [ http, https, ftp, ftps, phar, expect, ];没有过滤php://流协议尤其是php://filter[伪协议绕过]漏洞点2$pos stripos($line, resource); //resource就是9 $resource rawurldecode(substr($line, $pos 9)); //做了一次URL解码 if ($resource ! FLAG_PATH) { out(403, Forbidden resource\n); }$data file_get_contents($line); 用file_get_contents直接读取用户传入的URI内容 file_get_contents解析URI时PHP自动对URI进行第二次解码【所以要编码两次】3.2.2.6. 第六步答案php://filter/convert.base64-encode/resource/secret/flagconvert.base64-encode过滤器作用是将读取到的文件内容做Base64编码转换对上面进行base64编码data:text/plain;base64,cGhwOi8vZmlsdGVyL2NvbnZlcnQuYmFzZTY0LWVuY29kZS9yZXNvdXJjZT0vc2VjcmV0L2ZsYWc去访问在preview.php的页面中传入?filepreview文件https://www.toolhelper.cn/EncodeDecode/Base64解码

相关文章:

学习日志(三)【php语法学习,iscc校赛wp】

1. 任务 1.1.1.1.1.1. 知识部分 rce看【之前的笔记?】php的知识点学习继续jwt token好像是比赛的题目考察内容,我看看php伪协议 1.1.1.1.1.2. 题目 参加iscc比赛【五一】rce题目 1.1.1.1.1.3. 环境配置 把vscode搞好,上学期没有把Php配…...

LPCM框架:大模型驱动的计算机架构设计革命

1. LPCM框架:计算机系统架构设计的范式革命计算机系统架构设计正站在历史性的转折点上。过去八十年来,从ENIAC的真空管到现代7纳米制程的异构计算芯片,架构设计始终遵循着"专家经验EDA工具"的传统范式。但随着摩尔定律逼近物理极限…...

2026论文顶级降AI率工具大曝光:一键把AIGC率降至安全线!

步入2026年,学术圈的规则已经彻底变了味。过去那种只盯着查重率的“降重焦虑”早就被更可怕的“降AI焦虑”取代了。AI检测算法越来越聪明,高校审核标准也越来越严苛,光是把重复率压下去已经完全不够用了。现在摆在学生和科研人员面前的难题是…...

基于STM32与LoRa的低功耗物联网气象站DIY全攻略

1. 项目概述:打造一个低功耗的家庭气象站前阵子想给家里的智能家居系统加点“环境感知”能力,琢磨着搞个能实时监测室外温湿度、风速风向的小玩意儿。市面上成品气象站要么数据出不来,要么功耗感人,不适合长期户外部署。于是&…...

抖音内容批量下载实战:从零开始构建个人视频资料库

抖音内容批量下载实战:从零开始构建个人视频资料库 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support.…...

操作符从浅入深的讲解

1. 操作符的分类 2. ⼆进制和进制转换 3. 原码、反码、补码 4. 移位操作符 5. 位操作符:&、|、^、~ 6. 单⽬操作符 7. 逗号表达式 8. 下标访问[]、函数调⽤() 9. 结构成员访问操作符 10. 操作符的属性:优先级、结合性 11. 表达式求值1.操作符的分类以…...

NBTExplorer:让Minecraft数据编辑从专业工具变成人人可用的可视化平台

NBTExplorer:让Minecraft数据编辑从专业工具变成人人可用的可视化平台 【免费下载链接】NBTExplorer A graphical NBT editor for all Minecraft NBT data sources 项目地址: https://gitcode.com/gh_mirrors/nb/NBTExplorer 你是否曾经面对Minecraft世界文件…...

BetterJoy终极指南:3分钟让你的Switch手柄变身PC游戏神器

BetterJoy终极指南:3分钟让你的Switch手柄变身PC游戏神器 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitcode.c…...

告别多头对接!DMXAPI 为企业打造国产大模型 “统一入口”

一、企业 AI 落地的普遍痛点:被接口和平台消耗的成本在企业数字化转型的浪潮中,AI 大模型已经成为标配,但很多企业在落地时,都会陷入一个共同的困境:为了满足不同业务场景的需求,需要同时对接 DeepSeek、阿…...

输电线路在线监测系统|架空线路安全运行的“第一道防线“!

输电线路微气象监测站是专为高压输电线路、电网廊道、杆塔运维量身打造的专利级一体化微气象智能监测设备。依托双专利超声波探测技术、六要素集成传感架构、无启动风速高精测量、智能抗干扰稳控系统,实现输电线路沿线气象24小时全自动捕捉、动态实时监测、大风风险…...

告别坐标点击!用Poco精准定位UI控件,让你的Airtest安卓自动化脚本更稳定

告别坐标点击!用Poco精准定位UI控件,让你的Airtest安卓自动化脚本更稳定每次UI微调就导致脚本大面积失效?分辨率变化让精心编写的自动化测试瞬间崩溃?作为从坐标点击转型到控件识别的实践者,我深刻理解这种挫败感。三年…...

告别手动预约:i茅台自动预约系统5分钟部署指南

告别手动预约:i茅台自动预约系统5分钟部署指南 【免费下载链接】campus-imaotai i茅台app自动预约,每日自动预约,支持docker一键部署(本项目不提供成品,使用的是已淘汰的算法) 项目地址: https://gitcode…...

Java项目中如何提升整体系统性能?

性能优化可以说是我们程序员的必修课,如果你想要跳出CRUD的苦海,成为一个更“高级”的程序员的话,性能优化这一关你是无论无何都要去面对的。为了提升系统性能,开发人员可以从系统的各个角度和层次对系统进行优化。除了最常见的代…...

从NLP到RAG:AI标书生成系统的技术架构与落地路径深度剖析

引言2026年2月,国家发改委等八部门联合印发《关于加快招标投标领域人工智能推广应用的实施意见》,明确到2026年底招标文件检测、智能辅助评标、围串标识别等重点场景在部分省市实现全覆盖。同一时期,《招标投标法》修订草案经国务院常务会议原…...

Git Bash 中无法启动 Claude Code ?

最近需要在 git bash 中跑 Claude Code 。git bash 是随 git for windows 套件安装的,很久没更新了,结果启动 Claude Code 报错:Warning: no stdin data received in 3s, proceeding without it. If piping from a slow command, redirect st…...

超低功耗电池电压监控电路设计:从LM324到LPV324的硬件方案优化

1. 项目概述与核心需求解析在捣鼓各种电池供电的电子设备时,无论是自己做的无线传感器节点、便携式小工具,还是给孩子改装的玩具,有一个问题总是绕不开:你怎么知道电池快没电了?总不能每次都等到设备彻底罢工&#xff…...

告别鼠标点击,微博图片批量下载的轻松方案

告别鼠标点击,微博图片批量下载的轻松方案 【免费下载链接】weiboPicDownloader Download weibo images without logging-in 项目地址: https://gitcode.com/gh_mirrors/we/weiboPicDownloader 还记得那个周末的下午吗?你喜欢的博主发布了九宫格美…...

League Akari:如何通过LCU API实现英雄联盟游戏流程的智能化管理?

League Akari:如何通过LCU API实现英雄联盟游戏流程的智能化管理? 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit Leag…...

机器学习在射电天文数据分类中的应用:以MIGHTEE巡天SFG/AGN分类为例

1. 项目概述:当机器学习遇见深空射电巡天在射电天文学领域,我们正经历一场数据洪流。以MeerKAT望远镜阵列主导的MIGHTEE巡天项目为例,其在COSMOS天区的一次早期科学数据释放,就在不到1平方度的天区内探测到了超过6000个射电源。传…...

claude code用户如何迁移到taotoken解决封号与token不足问题

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Claude Code 用户如何迁移到 Taotoken 解决封号与 Token 不足问题 应用场景类,针对 Claude Code 用户常遇封号与 Token…...

机器学习与深度学习在社交媒体心理健康检测中的权衡与选择

1. 项目概述:当AI遇见心灵,社交媒体心理健康检测的技术十字路口在社交媒体成为我们数字生活延伸的今天,海量的文本数据无意中记录着用户的情感波动与心理状态。作为一名长期混迹于数据科学和自然语言处理(NLP)一线的从…...

Unity塔防底层架构:ScriptableObject驱动的数据契约设计

1. 这不是“又一个塔防模板”,而是塔防开发的底层操作系统我第一次在Asset Store点开Tower Defense Toolkit 4(TDTK-4)的预览图时,下意识划走了——界面太“干净”了,没有炫酷的粒子特效演示,没有满屏飞舞的…...

接口测试用例设计:超详细防御体系与分层校验实践

1. 为什么“超详细”三个字在接口测试用例里不是修饰词,而是生死线我带过三支不同行业的测试团队——金融支付、SaaS中台、IoT设备管理平台。每次新人入职第一周,我都会收走他们写的前5条接口测试用例,逐行标红批注。不是因为格式不对&#x…...

招行+工行:ReAct(Reasoning + Acting) 讲清楚,并结合 金融场景(含自进化智能体) 给出可直接用的案例

下面我把 ReAct(Reasoning Acting) 讲清楚,并结合 ** 金融场景(含自进化智能体)** 给出可直接用的案例与话术,适合分享 / 汇报。一、ReAct 是什么(一句话)ReAct 推理(T…...

告别漫长等待:UE5.2.1 Windows打包效率优化与插件问题排查指南

告别漫长等待:UE5.2.1 Windows打包效率优化与插件问题排查指南第一次点击"打包项目"按钮时,进度条仿佛被冻结的场景,每个UE5开发者都经历过。尤其当项目规模达到数十GB时,等待时间可能超过一小时——这背后隐藏着引擎底…...

基于Cynthion逆向USB协议,为DP100电源开发Linux控制软件

1. 项目概述:用Cynthion嗅探USB,为DP100电源打造Linux软件作为一名长期在Linux环境下折腾硬件和嵌入式开发的爱好者,我经常遇到一个头疼的问题:很多不错的桌面小设备,比如电源、示波器、逻辑分析仪,它们的官…...

零基础怎么学Agent?这个工程师考试内容拆给你看

站在 AI Agent(智能体)爆发的十字路口,很多既没有深厚算法背景、也没有丰富写代码经验的“小白”常常感到迷茫:动辄谈及的大模型交互、复杂的业务编排,零基础真的能学会吗? 事实上,智能体开发早…...

通用物联网开发板设计:基于ESP8266的硬件集成与开发实践

1. 项目概述:为什么我们需要一块“通用”的物联网开发板?在捣鼓了几年物联网项目之后,我发现自己桌面上堆满了各种开发板:ESP8266、ESP32、Arduino Uno、STM32 Nucleo……每个项目都要重新连线、配置电源、焊接传感器接口&#xf…...

集成Taotoken为OpenClaw工作流提供持久化模型支持

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 集成Taotoken为OpenClaw工作流提供持久化模型支持 在构建基于OpenClaw的自动化Agent工作流时,一个稳定且可灵活切换的模…...

天文时序数据分析:机器学习评估、半监督学习与无监督方法实战

1. 项目概述:当机器学习遇见星空 处理海量的天文时序数据,比如来自Kepler、TESS这些“巡天巨眼”的光变曲线,早已不是靠人眼一张张图去翻的时代了。数据量太大,噪声复杂,信号微弱,传统方法常常力不从心。这…...