-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.json
1 lines (1 loc) · 22.9 KB
/
index.json
1
[{"content":"杂项题目(Misc) 1、查看文件类型(kali自带) file 命令 用法: file filename\n使用16进制查看文件,根据文件特征码判断文件类型\n2、分离文件,分析文件 binwalk 命令(kali自带) 作用:分离文件,分析文件\n用法:\n分析文件:binwalk filename\n分离文件:binwalk -e filename\nforemost 命令(kali自带) 作用:分离文件\n用法:\nforemost 文件名 -o 输出目录名\ndd 命令 (kali自带) 作用:当文件自动分离出错或者因为其他原因无法自动分离时,可以使用dd实现文件手动分离。\n格式:dd if=源文件 of=目标文件名 bs=1 skip=开始分离的字节数\n参数说明:\nif=file #输入文件名,缺省为标准输入\nof=file #输入文件名,缺省为标准输出\nbs=bytes #同时设置读写块的大小为bytes,可替代ibs和obs\nskip=blocks #从输入文件开头跳过blocks个块后再开始复制\n案例:\n1.txt 1234567890abcdefg dd if=1.txt of=2.txt bs=5 count=1 =\u0026gt; 2.txt 12345 dd if=1.txt of=3.txt bs=5 count=2 =\u0026gt; 3.txt 1234567890 dd if=1.txt of=4.txt bs=5 count=3 skip=1 =\u0026gt; 4.txt 67890abcdefg Winhex 或者0101Editor 文件合并操作: 1、Linux下的文件合并 cat 合并的文件 \u0026gt; 输出的文件\n完整性检测:Linux下计算文件md5 md5sum 文件名\n2、Windows下的文件合并 copy /B 合并的文件 输出的文件命令\n完整性检测:windows下计算文件md5 certutil -hashfile 文件名 md5\n条形码识别网站: https://online-barcode-reader.inliteresearch.com/\n","permalink":"https://startstorm.online/posts/tech/ctf%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/","summary":"杂项题目(Misc) 1、查看文件类型(kali自带) file 命令 用法: file filename 使用16进制查看文件,根据文件特征码判断文件类型 2、分离文件,分析文件 binwalk 命令(kali自带) 作用:分离文件,分析文件 用法: 分析文件:binwalk filename 分离文件:binwalk -e filename foremost 命令(kali自带) 作用:分离文件","title":"Ctf学习笔记"},{"content":"谷歌评分卡 阅读左耳听风时,作者给出了通过谷歌评分卡自我评判自身技术水平的方法。 1-10分,可以给自己打几分。 评分卡内容如下。(中文版为大模型翻译,原文英文版在下发) 翻译版\n0 - 您不熟悉该主题领域。 1 - 你可以阅读/理解该学科领域最基础的方面。 2 - 能够实施小变化,理解基本原理,能够在最少的帮助下找出其他细节。 3 - 在不依赖帮助的情况下,对某一学科领域的基本熟练程度。 4 - 你对主题领域及其所有日常工作感到满意:对于软件领域 - 能够使用所有基本语言功能开发中型程序,无需书籍,了解更多深奥的功能(有书籍)。 对于系统领域,需要了解网络和系统管理的许多基本原理,能够运行一个小型系统网络,包括恢复、调试和基于内部知识的非平凡故障排除。 5 - 对参考材料的依赖程度更低。在某一领域或学科领域的特定技术方面有更深的技能。 6 - 从头开始开发大型程序和系统的能力。了解低级细节和内部结构。从头开始设计/部署大多数大型分布式系统的能力。 7 - 你了解并使用大多数鲜为人知的语言特性、技术和相关内部知识。能够自动化大量系统管理。 8 - 深刻理解极端情况、深奥特征、协议和系统,包括“操作理论”。具备设计、部署和拥有非常关键或大型基础设施的能力,并建立相应的自动化。 9 - 本来可以写一本关于这个主题领域的书,但没有;与标准委员会合作定义新的标准和方法。 10 - 写了一本关于这个主题领域的书(实际上必须有一本书)。该领域的公认行业专家,可能已经发明了它。 主题领域: ● TCP/IP网络(OSI堆栈、DNS等) ● Unix/Linux内部 ● Unix/Linux系统管理 ● 算法和数据结构 ● C ● C++ ● Python ● Java ● Perl ● Go ● Shell脚本(sh、Bash、ksh、csh) ● SQL和/或数据库管理 ● 你选择的脚本语言(尚未提及) ● 人员管理 ● 项目管理 原文英文版\n0 - you are unfamiliar with the subject area. 1 - you can read / understand the most fundamental aspects of the subject area. 2 - ability to implement small changes, understand basic principles and able to figure out additional details with minimal help. 3 - basic proficiency in a subject area without relying on help. 4 - you are comfortable with the subject area and all routine work on it: For software areas - ability to develop medium programs using all basic language features w/ o book, wareness of more esoteric features (with book). For systems areas - understanding of many fundamentals of networking and systems administration, ability to run a small network of systems including recovery, debugging and nontrivial troubleshooting that relies on the knowledge of internals. 5 - an even lower degree of reliance on reference materials. Deeper skills in a field or specific technology in the subject area. 6 - ability to develop large programs and systems from scratch. Understanding of low level details and internals. Ability to design / deploy most large, distributed systems from scratch. 7 - you understand and make use of most lesser known language features, technologies, and associated internals. Ability to automate significant amounts of systems administration. 8 - deep understanding of corner cases, esoteric features, protocols and systems including “theory of operation”. Demonstrated ability to design, deploy and own very critical or large infrastructure, build accompanying automation. 9 - could have written the book about the subject area but didn’t; works with standards committees on defining new standards and methodologies. 10 - wrote the book on the subject area (there actually has to be a book). Recognized industry expert in the field, might have invented it. Subject Areas: ● TCP/IP Networking (OSI stack, DNS etc) ● Unix/Linux internals ● Unix/Linux Systems administration ● Algorithms and Data Structures ● C ● C++ ● Python ● Java ● Perl ● Go ● Shell Scripting (sh, Bash, ksh, csh) ● SQL and/or Database Admin ● Scripting language of your choice (not already mentioned) ● People Management ● Project Management ","permalink":"https://startstorm.online/posts/read/%E5%B7%A6%E8%80%B3%E5%90%AC%E9%A3%8E%E8%B0%B7%E6%AD%8C%E8%AF%84%E5%88%86%E5%8D%A1/","summary":"谷歌评分卡 阅读左耳听风时,作者给出了通过谷歌评分卡自我评判自身技术水平的方法。 1-10分,可以给自己打几分。 评分卡内容如下。(中文版为大模型翻译,原文英文版在下发) 翻译版 0 - 您不熟悉该主题领域。 1 - 你可以阅读/理解该学科领域最基础的方面。 2 - 能够实施小变化,理解基本原理,能够在最","title":"左耳听风谷歌评分卡"},{"content":"Nginx模块 nginx正向tcp代理需要stream模块,检查模块的方法如下\nnginx -V | grep -i stream Nginx配置 配置如下\nstream { upstream backend_servers { # ... 上游服务器池配置 ... server 10.190.17.155:80; } server { listen 127.0.0.1:12345; # 监听端口,客户端将连接到这个端口 proxy_pass backend_servers; # 代理到上游服务器池 # 可选配置: # proxy_connect_timeout 10s; # 连接超时时间 # proxy_timeout 30s; # 数据传输超时时间 } } ","permalink":"https://startstorm.online/posts/tech/nginx%E6%AD%A3%E5%90%91tcp%E4%BB%A3%E7%90%86/","summary":"Nginx模块 nginx正向tcp代理需要stream模块,检查模块的方法如下 nginx -V | grep -i stream Nginx配置 配置如下 stream { upstream backend_servers { # ... 上游服务器池配置 ... server 10.190.17.155:80; } server { listen 127.0.0.1:12345; # 监听端口,客户端将连接到这个端口 proxy_pass backend_servers; # 代理到上游服务器池 # 可选配置: # proxy_connect_timeout 10s; # 连接超时时间 # proxy_timeout 30s; # 数据传输超时时间 } }","title":"Nginx正向tcp代理"},{"content":"Nginx配置 通过hugo命令,可以把hugo博客生成public静态资源文件,该静态资源文件可以部署在服务器上的Nginx,其他人就可以通过浏览器访问我们的博客网站。\n下面的配置文件带SSL证书,可以使用https来访问我们的网站。SSL证书文件放在nginx.conf相同的文件夹下。 Nginx的server配置如下:\nserver { listen 80; server_name startstorm.online; rewrite ^(.*)$ https://startstorm.online; } server { listen 443 ; # listen ssl port server_name localhost startstorm.online; # 开启SSL证书 ssl on; # 配置SSL证书 ssl_certificate startstorm.online_bundle.crt; # 配置证书秘钥 ssl_certificate_key startstorm.online.key; # SSl 会话缓存 ssl_session_cache shared:SSL:1m; # SSL 会话超时时间 ssl_session_timeout 5m; # 配置加密套件,写法遵循openssl标准 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; # 下面时存放静态文件的目录,我的静态文件存放在服务器linux的/www/wwwroot/startstorm.github.io目录下 root /www/wwwroot/startstorm.github.io; location / { index index.html index.htm; } access_log /www/wwwlogs/access.log; } Nginx配置生效 执行下面的命令\n# 重新加载nginx配置文件 nginx -s reload # 如果不生效就重启nginx systemctl restart nginx ","permalink":"https://startstorm.online/posts/blog/hugo%E5%8D%9A%E5%AE%A2%E6%9C%8D%E5%8A%A1%E5%99%A8nginx%E9%85%8D%E7%BD%AE/","summary":"Nginx配置 通过hugo命令,可以把hugo博客生成public静态资源文件,该静态资源文件可以部署在服务器上的Nginx,其他人就可以通过浏览器访问我们的博客网站。 下面的配置文件带SSL证书,可以使用https来访问我们的网站。SSL证书文件放在nginx.conf相同的文件","title":"Hugo博客服务器Nginx配置"},{"content":"需求 想更新完hugo博客后,push到Github仓库 ( https://github.com/startstorm/my-hugo-papermod ) 后,Github仓库自动执行hugo命令生成public文件,并把public文件夹内的内容推送到github个人主页的仓库( https://github.com/startstorm/startstorm.github.io )\nGithub Action Github提供了一个功能,Github Action可以帮助我们实现需求\n1、在仓库的根目录下创建.github文件夹(注意有个点) 2、在.github文件夹下创建workflows文件夹 3、在workflows文件夹下,创建hugo.yml文件,文件内容如下 # Sample workflow for building and deploying a Hugo site to GitHub Pages # 这是我们Actions的名字 name: Deploy Hugo site to Pages # Allows you to run this workflow manually from the Actions tab # 表示手动触发Github Action on: workflow_dispatch # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read pages: write id-token: write # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. concurrency: group: \u0026#34;pages\u0026#34; cancel-in-progress: false # Default to bash defaults: run: shell: bash jobs: # Build job buildAndDeploy: runs-on: ubuntu-latest env: HUGO_VERSION: 0.125.3 steps: - uses: actions/checkout@v4 with: submodules: true # Fetch Hugo themes (true OR recursive) fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod # 这里使用其他人写的Github Action方法,执行hugo命令 - name: Setup Hugo uses: peaceiris/actions-hugo@v3 with: hugo-version: \u0026#39;latest\u0026#39; extended: true - name: Build run: hugo --minify # 这里使用其他人写的传文件Github Action方法,把我们生成的public文件夹的内容推送到startstorm/startstorm.github.io仓库master分支 # 这里是需要配置密钥(PERSONAL_TOKEN),配置步骤见第4步 - name: Deploy uses: peaceiris/actions-gh-pages@v4 with: deploy_key: ${{ secrets.PERSONAL_TOKEN }} external_repository: startstorm/startstorm.github.io publish_branch: master # default: gh-pages publish_dir: ./public 4、配置Github的密钥 通过ssh-keygen生成私钥和公钥,因为我们希望my-hugo-papermod仓库生成的内容推送到startstorm.github.io仓库,所以my-hugo-papermod仓库放私钥,startstorm.github.io仓库放公钥。\n在my-hugo-papermod仓库Settings页面,找到Secrets and variables栏目下的Actions,里面有Repository secrets,点击New repository secret按钮创建私钥文件,并把私钥命名为PERSONAL_TOKEN(这个名字是其他人写的Github Action的要求)。\n在startstorm.github.io仓库Settings页面,找到Deploy keys栏目,点击Add deploy key按钮新建公钥文件,把公钥内容粘贴进来。\n5、手动触发Github Action 当更新了文章或者内容push到my-hugo-papermod仓库后,点击进入仓库的Actions页面,左侧会有名为Deploy Hugo site to Pages的Actions,点击Run workflow,就会执行该Action\n","permalink":"https://startstorm.online/posts/blog/hugo%E5%8D%9A%E5%AE%A2%E4%BB%93%E5%BA%93ci-cd%E6%B5%81%E6%B0%B4%E7%BA%BF%E6%90%AD%E5%BB%BA/","summary":"需求 想更新完hugo博客后,push到Github仓库 ( https://github.com/startstorm/my-hugo-papermod ) 后,Github仓库自动执行hugo命令生成public文件,并把public文件夹内的内容推送到github个人主页的仓库( https://github.com/startstorm/startstorm.github.io ) Github Action Github提供了一个功能,Github Action可以帮助我们实现需求 1、在仓库的根","title":"Hugo博客仓库CI CD流水线搭建"},{"content":"博客搭建 本博客直接使用sulvblog的github仓库源码修改而来。\n尝试直接拉取ParperMod主题的仓库,在Windows上执行hugo server总是报错,无法运行。 于是直接sulvblog的修改好的PaperMod主题源码,不在报错。\n参考链接如下: https://www.sulvblog.cn/posts/blog/build_hugo/\n执行hugo server -p 80,打开浏览器访问http://localhost就可以访问到\n写文章 新建一篇文章可以使用hugo new命令\nhugo new hello-world.md 就可以在content文件夹下新建一个hello-world的markdown文件。 如果我们content文件夹下有其他文件夹,比如路径为content/post/blog,想把文章新建到该文件夹下,使用\nhugo new posts/blog/hello-world.md hugo端口号修改 hugo默认端口号是1313,在hugo server后加上-p 80参数,hugo server -p 80 ,就可以将默认端口号改为80\nhugo生成静态资源,并修改静态资源内的端口号 如果在hugo的配置文件config.yaml的url不写明端口,那么直接·hugo·命令生成的静态资源就是默认的1313端口,如果直接放到云服务上通过nginx进行部署,那么nginx开放80端口就无法直接访问到。\n但是,经过测试发现,如果先执行hugo server -p 80,再执行hugo命令,那么生成的静态资源的端口号为80。\n如果执行hugo server -p 443,再执行hugo命令,生成的静态资源端口号为443。\n","permalink":"https://startstorm.online/posts/blog/hugo%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA%E5%B9%B6%E9%85%8D%E7%BD%AEpapermod%E4%B8%BB%E9%A2%98/","summary":"博客搭建 本博客直接使用sulvblog的github仓库源码修改而来。 尝试直接拉取ParperMod主题的仓库,在Windows上执行hugo server总是报错,无法运行。 于是直接sulvblog的修改好的PaperMod主题源码,不在报错。 参考链接如下: https://www.sulvblog.cn/posts/blog/build_hugo/ 执行hugo server -p 80","title":"Hugo博客搭建并配置PaperMod主题"},{"content":"1. 介绍 scan命令的作用和keys *的作用类似,主要用于查找redis中的键,但是在正式的生产环境中一般不会直接使用keys *这个命令,因为他会返回所有的键,如果键的数量很多会导致查询时间很长,进而导致服务器阻塞,所以需要scan来进行更细致的查找\nscan总共有这几种命令:scan、sscan、hscan、zscan,分别用于迭代数据库中的:数据库中所有键、集合键、哈希键、有序集合键,命令具体结构如下:\nscan cursor [MATCH pattern] [COUNT count] [TYPE type] sscan key cursor [MATCH pattern] [COUNT count] hscan key cursor [MATCH pattern] [COUNT count] zscan key cursor [MATCH pattern] [COUNT count] 2. scan scan cursor [MATCH pattern] [COUNT count] [TYPE type],cursor表示游标,指查询开始的位置,count默认为10,查询完后会返回下一个开始的游标,当返回0的时候表示所有键查询完了\n127.0.0.1:6379[2]\u0026gt; scan 0 1) \u0026#34;3\u0026#34; 2) 1) \u0026#34;mystring\u0026#34; 2) \u0026#34;myzadd\u0026#34; 3) \u0026#34;myhset\u0026#34; 4) \u0026#34;mylist\u0026#34; 5) \u0026#34;myset2\u0026#34; 6) \u0026#34;myset1\u0026#34; 7) \u0026#34;mystring1\u0026#34; 8) \u0026#34;mystring3\u0026#34; 9) \u0026#34;mystring4\u0026#34; 10) \u0026#34;myset\u0026#34; 127.0.0.1:6379[2]\u0026gt; scan 3 1) \u0026#34;0\u0026#34; 2) 1) \u0026#34;myzadd1\u0026#34; 2) \u0026#34;mystring2\u0026#34; 3) \u0026#34;mylist2\u0026#34; 4) \u0026#34;myhset1\u0026#34; 5) \u0026#34;mylist1\u0026#34; MATCH可以采用模糊匹配找出自己想要查找的键,这里的逻辑是先查出20个,再匹配,而不是先匹配再查询,这里加上count 20是因为默认查出的10个数中可能不能包含所有的相关项,所以把范围扩大到查20个,我这里测试的键总共有15个\n127.0.0.1:6379[2]\u0026gt; scan 0 match mylist* count 20 1) \u0026#34;0\u0026#34; 2) 1) \u0026#34;mylist\u0026#34; 2) \u0026#34;mylist2\u0026#34; 3) \u0026#34;mylist1\u0026#34; TYPE可以根据具体的结构类型来匹配该类型的键\n127.0.0.1:6379[2]\u0026gt; scan 0 count 20 type list 1) \u0026#34;0\u0026#34; 2) 1) \u0026#34;mylist\u0026#34; 2) \u0026#34;mylist2\u0026#34; 3) \u0026#34;mylist1\u0026#34; 3. sscan sscan key cursor [MATCH pattern] [COUNT count],sscan的第一个参数总是集合类型的key\n127.0.0.1:6379[2]\u0026gt; sadd myset1 a b c d (integer) 4 127.0.0.1:6379[2]\u0026gt; smembers myset1 1) \u0026#34;d\u0026#34; 2) \u0026#34;a\u0026#34; 3) \u0026#34;c\u0026#34; 4) \u0026#34;b\u0026#34; 127.0.0.1:6379[2]\u0026gt; sscan myset1 0 1) \u0026#34;0\u0026#34; 2) 1) \u0026#34;d\u0026#34; 2) \u0026#34;c\u0026#34; 3) \u0026#34;b\u0026#34; 4) \u0026#34;a\u0026#34; 127.0.0.1:6379[2]\u0026gt; sscan myset1 0 match a 1) \u0026#34;0\u0026#34; 2) 1) \u0026#34;a\u0026#34; 4. hscan hscan key cursor [MATCH pattern] [COUNT count],sscan的第一个参数总是哈希类型的key\n127.0.0.1:6379[2]\u0026gt; hset myhset1 kk1 vv1 kk2 vv2 kk3 vv3 (integer) 3 127.0.0.1:6379[2]\u0026gt; hgetall myhset1 1) \u0026#34;kk1\u0026#34; 2) \u0026#34;vv1\u0026#34; 3) \u0026#34;kk2\u0026#34; 4) \u0026#34;vv2\u0026#34; 5) \u0026#34;kk3\u0026#34; 6) \u0026#34;vv3\u0026#34; 127.0.0.1:6379[2]\u0026gt; hscan myhset1 0 1) \u0026#34;0\u0026#34; 2) 1) \u0026#34;kk1\u0026#34; 2) \u0026#34;vv1\u0026#34; 3) \u0026#34;kk2\u0026#34; 4) \u0026#34;vv2\u0026#34; 5) \u0026#34;kk3\u0026#34; 6) \u0026#34;vv3\u0026#34; 5. zscan zscan key cursor [MATCH pattern] [COUNT count],sscan的第一个参数总是有序集合类型的key\n127.0.0.1:6379[2]\u0026gt; zadd myzadd1 1 zz1 2 zz2 3 zz3 (integer) 3 127.0.0.1:6379[2]\u0026gt; zrange myzadd1 0 -1 withscores 1) \u0026#34;zz1\u0026#34; 2) \u0026#34;1\u0026#34; 3) \u0026#34;zz2\u0026#34; 4) \u0026#34;2\u0026#34; 5) \u0026#34;zz3\u0026#34; 6) \u0026#34;3\u0026#34; 127.0.0.1:6379[2]\u0026gt; zscan myzadd1 0 1) \u0026#34;0\u0026#34; 2) 1) \u0026#34;zz1\u0026#34; 2) \u0026#34;1\u0026#34; 3) \u0026#34;zz2\u0026#34; 4) \u0026#34;2\u0026#34; 5) \u0026#34;zz3\u0026#34; 6) \u0026#34;3\u0026#34; ","permalink":"https://startstorm.online/posts/tech/tech1/","summary":"1. 介绍 scan命令的作用和keys *的作用类似,主要用于查找redis中的键,但是在正式的生产环境中一般不会直接使用keys *这个命令,因为他会返回所有的键,如果键的数量很多会导致查询时间很长,进而导致服务器阻塞,所以需要scan来进行更细致的查找 scan总共有这几种命令:sca","title":"Redis scan命令学习"},{"content":"","permalink":"https://startstorm.online/posts/blog/blog/","summary":"","title":"Blog"},{"content":"","permalink":"https://startstorm.online/posts/life/life/","summary":"","title":"Life"},{"content":"","permalink":"https://startstorm.online/posts/read/read/","summary":"","title":"Read"},{"content":"\u0026lt;div\u0026gt; 科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 \u0026lt;/div\u0026gt; ","permalink":"https://startstorm.online/posts/tech/tech/","summary":"\u0026lt;div\u0026gt; 科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代码 科技代","title":"Tech"},{"content":" Startstorm\u0026#39;s Blog 一个记录技术、阅读、生活的博客 Sulv\u0026#39;s Blog 一个记录技术、阅读、生活的博客 mohuishou\u0026#39;s Blog mohuishou的博客 倪朋飞的个人网站 倪朋飞的个人网站 👉友链格式 名称: Sulv\u0026rsquo;s Blog 网址: https://www.sulvblog.cn 图标: https://www.sulvblog.cn/img/Q.gif 描述: 一个记录技术、阅读、生活的博客 👉友链申请要求 秉承互换友链原则、文章定期更新、不能有太多广告、个人描述字数控制在15字内\n👉Hugo博客交流群 787018782\n","permalink":"https://startstorm.online/links/","summary":"Startstorm\u0026#39;s Blog 一个记录技术、阅读、生活的博客 Sulv\u0026#39;s Blog 一个记录技术、阅读、生活的博客 mohuishou\u0026#39;s Blog mohuishou的博客 倪朋飞的个人网站 倪朋飞的个人网站 👉友链格式 名称: Sulv\u0026rsquo;s Blog 网址: https://www.sulvblog.cn 图标: https://www.sulvblog.cn/img/Q.gif 描述: 一个记录技术、阅读、生活的博客 👉友链申请要求 秉承互换友链原则、文章定期更新、不能有太多广告、个人描述字数控制在","title":"🤝友链"},{"content":"关于我\n英文名: startstorm 中文名: 可爱的小飞猪 职业: 程序员 爱好: 玩 ","permalink":"https://startstorm.online/about/","summary":"关于我 英文名: startstorm 中文名: 可爱的小飞猪 职业: 程序员 爱好: 玩","title":"🙋🏻♂️关于"}]