数据结构与算法

  1. 手撕算法:将字符串转化为整数
  2. 列举常用的排序算法
  3. 堆排序和选择排序使用场景上有什么区别
  4. 选择排序和堆排序在资源利用方面有什么区别
  5. 常用的查找结构
  6. b树和b+树和红黑树的设计思路、结构区别、使用区别
  7. 队列和栈有什么区别?各自的使用场景是什么?
  8. 常见的hash冲突解决方案
  9. 大顶堆小顶堆的设计思路

    java相关

  10. jvm内存模型
  11. jvm垃圾回收算法
  12. jvm垃圾回收器
  13. cms、g1的设计思路、关联和区别、垃圾回收阶段的不同
  14. SpringBoot常用注解
  15. RestController和Controller有什么区别
  16. 全局拦截器的设计、项目中实现
  17. Aop底层实现
  18. 抽象类和接口有什么区别,分别适用什么场景
  19. java里面的类加载器的设计
  20. 如果父级对子级进行调用,会出现什么异常
  21. synchronize的使用流程
  22. java中的原子类实现原理
  23. HashMap的底层实现原理
  24. ConcurrentHashMap的实现原理
  25. 静态代理和动态代理的区别
  26. 浅拷贝和深拷贝的区别

    MySQL

  27. Mysql事务隔离级别
  28. 什么情况下使用读已提交
  29. 对于脏读的理解

    Redis

  30. redis 为什么读取速度那么快?
  31. 对于很多文件和数据,怎么进行数据的查找、排序,使用什么样的数据结构

    计算机网络

  32. http 和j https 的区别
  33. https 过程中都使用哪些加密的算法,详细讲讲这些加密算法

    Linux

  34. Linux都是用过哪些常用命令

  35. 如何查看系统内存

  36. 怎么将系统内存显示的数据进行排序

    操作系统

  37. 线程都有哪些状态
  38. blocking和waiting有什么区别
  39. 有没有了解过CAS

出去的时候总是会不停的按快门,好像就是为了那一声“咔嚓”的快门声,技术好像也没有,也不算个摄影师,只能算是个难得的爱好吧。5·1的时候看到一个经理说自己以前也是玩摄影,买的50D啥的,现在早不玩了,摄影穷三代。

[bsgallery title="一路走走拍拍"]
[bsimg title="蜜蜂采蜜"]https://xiaohack.oss-cn-zhangjiakou.aliyuncs.com/typecho/2023/05/09/IMG_0860.jpg[/bsimg]
[bsimg title="蜜蜂采蜜1"]https://xiaohack.oss-cn-zhangjiakou.aliyuncs.com/typecho/2023/05/09/IMG_0869.JPG[/bsimg]
[bsimg title="蜜蜂采蜜2"]https://xiaohack.oss-cn-zhangjiakou.aliyuncs.com/typecho/2023/05/09/IMG_0877.JPG[/bsimg]
[bsimg title="花花草草"] https://xiaohack.oss-cn-zhangjiakou.aliyuncs.com/typecho/2023/05/09/IMG_0891.JPG[/bsimg]
[bsimg title="花花草草1"]https://xiaohack.oss-cn-zhangjiakou.aliyuncs.com/typecho/2023/05/09/IMG_0892.JPG[/bsimg]
[bsimg title="花花草草2"]https://xiaohack.oss-cn-zhangjiakou.aliyuncs.com/typecho/2023/05/09/IMG_0895.JPG[/bsimg]
[bsimg title="花花草草3"]https://xiaohack.oss-cn-zhangjiakou.aliyuncs.com/typecho/2023/05/09/IMG_0897.JPG[/bsimg]
[bsimg title="花花草草4"]https://xiaohack.oss-cn-zhangjiakou.aliyuncs.com/typecho/2023/05/09/IMG_0899.JPG[/bsimg]
[bsimg title="花花草草5"]https://xiaohack.oss-cn-zhangjiakou.aliyuncs.com/typecho/2023/05/09/IMG_0899.JPG[/bsimg]
[bsimg title="五星霓虹灯"]https://xiaohack.oss-cn-zhangjiakou.aliyuncs.com/typecho/2023/05/09/IMG_0943.JPG[/bsimg]
[bsimg title="树叶中的光"]https://xiaohack.oss-cn-zhangjiakou.aliyuncs.com/typecho/2023/05/09/IMG_0969.JPG[/bsimg]
[bsimg title="虚焦"]https://xiaohack.oss-cn-zhangjiakou.aliyuncs.com/typecho/2023/05/09/IMG_0971.JPG[/bsimg]
[bsimg title="公园玩"]https://xiaohack.oss-cn-zhangjiakou.aliyuncs.com/typecho/2023/05/09/IMG_1107.JPG[/bsimg]

[/bsgallery]

应用场景

与 top 指令有何区别

eagle 命令只会在执行完毕后输出 png 图片,在命令执行时没有任何输出。而 top 是实时的显示 cpu 和内存。

应用场景

  • 压测程序时,想要对比不同的流量下,cpu 和内存的使用率
  • 测试同一个领域的不同产品(nginx/envoy)的 cpu 和内存使用率

优点

不需要安装任何依赖
体积小-1.2M

效果图
一个可以监控 cpu 和内存使用率,并且将结果保存成 png 的轮子
一个可以监控 cpu 和内存使用率,并且将结果保存成 png 的轮子2

前端小程序是开源的纯源代码,不会封装的可以百度一下哈,教程也有说使用哪一个工具,可以说是大家学习研究小程序代码很好的一个源码

社区小程序圈子论坛贴吧交友博客社交陌生人社交宠物话题私域同城源码,提供微信授权登录功能,支持小程序和APP带有后台管理功能,并且可以通过手机号登录正常使用,方便用户发布帖子、创建圈子、发布活动等操作。

圈主可以轻松管理帖子,置顶和推荐帖子,同时还有关注、粉丝和点赞等功能,方便用户互动与交流。此外,该产品也可以作为圈子贴吧、小红书等自媒体的一种解决方案,满足用户在社交领域的需求。

微信圈子论坛社区小程序源码带UNIAPP开源小程序前端,支持私域同城功能

====运行环境====
PHP >= 7.1.0

====运行WEB目录====
public

====数据库====
导入目录下的 db.sql 文件
修改目录下的 .env 数据库配置

====初始账号密码====
admin
123456

下载地址:https://wwxb.lanzoul.com/ipwrw0v22h5i
解压密码:blog.xiaohack.org

使用步骤

以下步骤强烈建议在windows虚拟机中配置
且保持nessus默认安装目录
先使用Nessus-x64.msi安装
安装好后浏览器打开https://127.0.0.1:8834
按照常规安装方法先走完步骤,进入到正常web页面
这里不再赘述步骤(百度上一堆)
然后回到文件夹下管理员执行crack_mht.bat
过程较长,等待完成后
再次打开web界面https://127.0.0.1:8834
登陆进去后右上角会有一长串英文提示
意思是插件正在编译
Nessus20230506插件_20230420规则模板_一键破解
等待编译完成就好了

此次编译插件无需再限制cpu

耐心等待即可
Nessus20230506插件_20230420规则模板_一键破解1
右上角有个圆圈,鼠标悬停可以查看进度

编译完成后如图所示
Nessus20230506插件_20230420规则模板_一键破解2
前台转不出来请换google浏览器打开

edge浏览器就是一直转圈圈不知道为啥

下载链接:https://pan.quark.cn/s/a8aa4b23cda2

解压密码:mht

ChatGPT卡密验证版源码是一个基于PHP7.4和MySQL5.6的聊天AI源码,它不仅支持暗黑模式、反应速度极快,而且充值方面采用后台生成卡密方式,方便快捷,如果您有能力将其接入在线支付,即可进一步拓展充值方式,为更多用户提供更加丰富的选择。

首先,其核心技术是基于GPT-3.5接口,支持中英文混合对话,能够快速地处理用户的问题和需求。同时,其智能学习算法不断优化对话体验,可以在各类场景下发挥稳定、高效的聊天服务,并提升用户满意度。

安装教程

1,安装宝塔 php版本 7.1-8.0 mysql版本5.7
2,倒入跟目录下数据库
3,修改config.env文件里面数据库信息
4,设置运行目录为:public
5,设置伪静态为:thinkphp
6,登录后台/admin 账号admin密码admin
7,系统设置修改自己的配置文件 域名 logo 等信息

PS:以前所谓的商业版,都是绑定域名提示无授权。本地测试没事,这次专门用域名测试了没问题的。
【修复】ChatGPT商业版源码带支付功能+绘画+对话+免授权不反弹

crm销售系统网站源码,带客户公海手机跟单跟进订单办公支持客户自定义字段,自适应手机端

客户分享功能,支持分享给多人跟进

客户查重复功能,避免重复导致的无效跟进

业绩统计查询,轻松掌握每个员工的业绩详情

thinkphp6.0全新架构,开源可靠

很多功能非常强大,自己进去学习一下熟悉一下就可以了!

运行环境:php7.3+Mysqli

强大的CRM销售客户关系管理网站源码客户公海手机跟单跟进订单办公支持自定义字段
强大的CRM销售客户关系管理网站源码客户公海手机跟单跟进订单办公支持自定义字段模板

介绍

Anynat 是一款通用性极强的内网穿透工具,能够适应复杂的内网环境,在较差的网络条件下,仍然能够提供稳定可靠的数据传输.

安装方式

  1. docker 容器化部署 Anynat(推荐)
  2. npm 安装方式(不推荐)

*阅读本文档之前,会默认您有一定的网络知识,例如如何输入命令,怎样配置和解析域名等,文档不再赘述,自行搜索相关答案

本文档仅提供 docker 部署方法,如果采用 npm 安装方式,则默认您具有一定的编程知识,需要自行摸索和解决 npm 相关问题*

docker 容器化部署 Anynat

  1. Anynat 需要同时部署服务端和客户端

    • 服务端是指具有公网 IP 的服务器.例如阿里云,腾讯云的服务器,当然也有一些第三方免费的服务器,需要自行准备
    • 客户端是指你的内网服务器.例如你的 nas,台式电脑,笔记本或者其他系统平台,需要暴露自己本地的服务给外面的人访问就是客户,需要自行准备
  2. 部署服务端 /客户端之前,建议准备一个干净的系统,只安装 docker 相关的软件依赖

    部署 docker 的教程文档( 服务端和客户端都需要安装好 docker ):

  3. ubuntu/linux/macos 教程:https://docs.docker.com/engine/install/ubuntu/
  4. windows 教程:https://docs.docker.com/desktop/install/windows-install/
  5. 中文安装教程:https://zhuanlan.zhihu.com/p/441965046
  6. 其他语言的 docker 安装方法自行搜索
  7. 建议提前准备好一个域名,没有域名也没问题,有公网 IP 即可.需要提前将域名开启 HTTPS 并解析到您的服务器公网 IP,推荐使用 cloudflare 作为域名解析平台
  8. 服务端和客户端共用同一份配置文件,如果配置对不上,则无法使用内网穿透服务,每次修改好配置需要重启 Anynat 容器 /重启系统
  9. 点击阅读服务端安装方法
  10. 点击阅读客户端安装方法

你的下一个内网穿透工具何必是 ngrok,frp,Natapp 呢~~ 感谢支持???

新版 V11.0 已上线,进行大量更新与优化。

版本说明

  • 新增功能
  • 桌面客户端“文件分享”支持整个磁盘分享
  • 桌面客户端增加开机自动启动功能
  • 手机客户端增加网络下载器功能
  • 手机端增加快捷导航
  • 增加历史版本查看
  • 下载任务完成通知
  • 功能优化
  • 优化版本更新通知
  • 优化桌面客户端悬浮窗功能
  • 问题修复
  • 客户端“文件分享”_name_取消分享问题
  • 桌面客户端隐藏后传输速度变慢问题
  • 手机客户端切换到后台后自动中断问题
  • 手机客户端屏幕分享没有声音问题
  • 界面及性能
  • 优化界面与操作
  • 优化底层运行效率与传输速度
  • 升级底层模块版本

关于 PP 直连

点到点直连,私密互通。致力于跨设备、跨网络、跨平台的直连互通。

地址: https://www.ppzhilian.com/

其他

因为新增功能不是很多,所以有时间对原有代码进行 review 和重构,其实也挺有意思的。之前因为不断升级迭代,导致代码质量和可读性持续下降,有些模块自己看了都头疼,这次重构后,逻辑性和条理性大大强化,整完还挺爽的。感觉作为一个 coder ,除了实现功能需求外,如果能有时间把代码和逻辑推敲一下,完善一下,还是挺有成就感的。就像厨子一样,除了做出好吃的饭菜,有条件时还可以把做饭的过程整的很有仪式感和美感的。

解决的痛点

Q: 需要收费吗?

A: 完全免费,用户不自己删除的话就可以无限次编辑,无限次导出。除非哪天网站没钱买服务器了,不然不会关闭服务!

Q: 找不到好看的简历模版?

A: 我们提供了多个简洁好看,且使用度和受欢迎程度最高的一些模版,可以根据自己喜好随时切换编辑、保存、下载。

Q: 网上找的模版自己二次编辑后排版就乱了,还需要自己在慢慢调整

A: 我们提供的简历模版的排版是跟着主题走的,切换主题就会切换到对应的排版,不需要自己去调整,你可以全身心的投入简历内容的编辑中。

Q: 不知道该怎么写出让面试官眼前一亮的简历? :

A: 每个模版在初始化的时候都填充好了内容,这里的内容都是 bat 等多个大厂面试官一致认可的,你只需要将内容替换为自己的,照葫芦画瓢就可以写出好的简历。

访问地址: https://www.developers.pub/resume

简历模版列表

送福利啦,写了个在线简历模版,不仅样式多,而且全部永久免费1
简历模版编辑,所有内容都可以自定义,实时预览
送福利啦,写了个在线简历模版,不仅样式多,而且全部永久免费2
自由切换主题
送福利啦,写了个在线简历模版,不仅样式多,而且全部永久免费3
随时导出预览
送福利啦,写了个在线简历模版,不仅样式多,而且全部永久免费4
送福利啦,写了个在线简历模版,不仅样式多,而且全部永久免费5
直接导出 pdf
送福利啦,写了个在线简历模版,不仅样式多,而且全部永久免费6
送福利啦,写了个在线简历模版,不仅样式多,而且全部永久免费7

源码简介:
注意:需要安装Swoole加密扩展(仅支持PHP7.2)注意短视频、电影视频类的版权,切勿制作违法违规的网站!
此次版本使用V10 3022版本,player.js使用开源版
源码模板名称:苹果CMS V10_LUTU视频_二开苹果cms视频网站源码模板_可封装双端APP
适用程序:苹果cmsv10
兼容性和面向场景:
1、Windows 平台: IIS/Apache + PHP(5.6 +) + MySQL(5.5 +)
2、Linux/Unix 平台: Apache + PHP (5.6 +) + MySQL(5.5 +)
使用苹果cmsv10版二次开发,程序具有极好的稳定,安全,高性能等优点!
基本介绍:

  1. 后台增加自定义参数,对应会员升级页面
  2. 视频,演员,收藏,会员系统模块齐全
  3. 完整的卡密支付体系,无人看管,无需挂码。
  4. 三个播放界面,未注册会员、普通注册会员,VIP会员看到的播放界面提醒都不一样
  5. 整套模板自适应,可以完美打包APP
  6. 除了网站LOGO,自定义的广告等,其他界面均无需特别设置,只要有采集接口即可轻松运营网站
    二开功能:
  7. 后台自带主题设置

2.自带开屏广告,可在后台控制开关,以及时间

3.单独设置某部视频为VIP会员才能观看

4.VIP视频独有标识

  1. 模板整体弹窗提示更换,使用更好美观的layer弹窗提示
  2. 卡密充值修改字段,不需要再输入卡号+卡密的方式进行充值,只需要卡号即可充值
  3. 卡密系统二开,让卡密系统更实用

8-1. 卡密激活可以直接开通会员并可以设置开通时间

8-2. 修复卡密导出功能,更清晰的导出卡密对应的金额和天数

8-3. 修复卡密搜索功能,可以根据天数搜索卡密

  1. 注册自动送VIP,可自行设置赠送多少天或无赠送
  2. 在线支付加强,支付后自动升级至会员,无需再进行充值积分进行升级
  3. 可添加播放前广告
  4. 可添加播放器暂停广告
  5. 可添加播放器右上角水印
  6. 可添加前置视频广告,支持MP4及M3U8格式
  7. 可以单独设置任意视频仅VIP观看,操作简单

源码截图:
MDYS08_LUTU视频_二开苹果cms视频网站源码模板

众所周知,iOS 下面没有很便捷的方式来隐藏应用锁定应用,不像安卓各种 App Locker 应用。但是到 2022 年,苹果在 WWDC 引入了新的屏幕管理 API ,这个功能终于可以做到了。

AALocker 历时半年的审核终于通过了,为了庆祝千辛万苦通过的审核,现决定终身会员限免一个月。有任何使用上的建议欢迎留言。

功能介绍:

iPhone, iPad 上能直接隐藏,锁定应用的黑科技应用 AALocker 。

直接隐藏应用,在手机桌面,搜索框都找不到任何痕迹。
可以指定时间段隐藏,到了时间,自动隐藏无需任何额外操作。
可以设定 app 的最长使用时间,超时自动隐藏。
除了隐藏,还提供锁定模式,不想要隐藏的,可以锁定应用。
同时提供各种高级功能,真假密码保护,更换 App 图标,成人内容锁定等。
如果不想隐藏后桌面图标被打乱,可以在设置里启用锁定模式。
产品下载地址 https://apps.apple.com/cn/app/aalocker/id1664034558

跟竞品对比:

Cloak ,主要是参考了 Cloak 当时的做法,但是想着不管是你想要用来隐藏应用,还是想要用来做一个效率管理工具都可以,在 Cloak 的玩法基础上加上了定时隐藏,以及限定使用时间的隐藏,满足可以管理小孩手机 iPad ,自己管理自己使用短视频应用限制使用等场景。

后继功能:

准备收集一段时间的需求,这个 app 每次更新审核的时间都要两个月起步。

GPTalk 是一个对接了 OpenAI API 的应用,支持多端同步使用,目前包含“对话”、“创作”两大核心功能。

v1.5.0 版本新发布的“创作”功能,支持创建基于 Prompt 提示词的应用,按场景生成内容。

目前已经上架了由用户创作的 20 余款应用,你也可以根据自己的需求,随时随地调试、创建新应用。

欢迎体验,感谢支持~

GPTalk v1.5.0 版本发布“创作”功能,支持按场景生成内容1
GPTalk v1.5.0 版本发布“创作”功能,支持按场景生成内容2
GPTalk v1.5.0 版本发布“创作”功能,支持按场景生成内容3
GPTalk v1.5.0 版本发布“创作”功能,支持按场景生成内容4

之前到处都是的加速百度云,不过新版本修掉了问题,并且会强制给你更新,这个是7.24版本的,并且去掉了更新,至于怎么加速可以本站搜CE加速xxx,之前发过文章
效果图可以看这里,显示的速度没有变化,但是可以看到文件体积和整体进度
百度云7.24版本,懂得都懂
链接:https://share.weiyun.com/OAzMnTyA 密码:dhdc7x

因为不放心网上的 Key API 查询网站,所以想自己建一个简单的,通过开源 Chatgpt 项目找到了查询接口,然后让 GPT-4 写的 OpenAI-Key 余额查询的代码( 100%AI 完成)

自部署打开下面的链接复制完整代码新建个 Cloudflare Workers 即可部署完成。
代码:
https://pastebin.com/iGJGUX2Y
体验:
https://apikey.aiayw.workers.dev

预览:
 Cloudflare Workers 部署 OpenAI-Key 余额查询网站

前言

GitHub: xiaoyang-sde/co-uring-http

前段时间我在实现 rust-kernel-riscv (使用 Rust 无栈协程进行上下文切换的操作系统内核) 时, 跟进了一些 Linux Kernel 的特性, 其中印象最深的就是 io_uring. io_uring 作为最新的高性能异步 I/O 框架, 支持普通文件与网络套接字的异步读写, 解决了传统 AIO 的许多问题. 在 Linux 通过隔离内核页表来应对 Meltdown 攻击后, 系统调用的开销是不可忽略的, 而 io_uring 通过映射一段在用户态与内核态共享的内存区域, 显著减少系统调用的次数, 缓解了刷新缓存开销. 关于 io_uring 的使用方法可以参考迟先生的博客: io_uring 的接口与实现.

C++ 20 引入的无栈协程让编写异步程序容易了不少, 之前通过回调函数实现的功能可以全部通过类似同步代码的写法来实现. 协程的性能很优秀, 创建的开销几乎可以忽略不记, 但是当前的标准只提供了基础功能, 还并没有实现易于使用的协程高级库, 导致我尝试自己封装了一套协程原语, 例如 task 与 sync_wait<task>.

为了体验这些特性, 我用 C++ 20 协程与 io_uring 重新实现了一个烂大街项目: HTTP 服务器. 鉴于以前没用过 C++ 写项目, 再加上 GitHub 常见的 HTTP 服务器项目是基于 Reactor 模式与 epoll 实现的, 以至于我在开发的过程中能借鉴 (指复制) 的机会并不多, 希望各位包容一下我的逆天代码. 我会持续维护这个项目, 争取添加更多特性并进一步优化性能.

主要特性

  • 使用 C++ 20 协程简化服务端与客户端的异步交互
  • 使用 io_uring 管理异步 I/O 请求, 例如 accept(), recv(), send()
  • 使用 ring-mapped buffers 减少内存分配的次数, 减少数据在内核态与用户态之间拷贝的次数 (Linux 5.19 新特性)
  • 使用 multishot accept 减少向 io_uring 提交 accept() 请求的次数 (Linux 5.19 新特性)
  • 实现线程池进行协程调度, 充分利用 CPU 的所有核心
  • 使用 RAII 类管理 io_uring, 文件描述符, 以及线程池的生命周期

编译环境

.devcontainer/Dockerfile 提供了基于 ubuntu:lunar 的容器镜像, 已经配置好了编译环境, 可以直接在 Linux 或者 WSL 上使用. WSL 用户可以参考 Update WSL Kernel 的步骤将 Linux Kernel 升级到 6.3, 但是 Docker Desktop on Mac 用户似乎没办法升级.

  • Linux Kernel 6.3 或更高版本
  • CMake 3.10 或更高版本
  • Clang 14 或更高版本
  • libstdc++ 11.3 或更高版本 (只要装 GCC 就可以)
  • liburing 2.3 或更高版本
cmake -DCMAKE\_BUILD\_TYPE=Release -DCMAKE\_C\_COMPILER:FILEPATH=/usr/bin/clang -DCMAKE\_CXX\_COMPILER:FILEPATH=/usr/bin/clang++ -B build -G "Unix Makefiles"
make -C build -j$(nproc)
./build/co\_uring\_http

性能测试

为了测试 co-uring-http 在高并发情况的性能, 我用 hey 这个工具向它建立 1 万个客户端连接, 总共发送 100 万个 HTTP 请求, 每次请求大小为 1 KB 的文件. co-uring-http 每秒可以 88160 的请求, 并且在 0.5 秒内处理了 99% 的请求.

测试环境是 WSL (Ubuntu 22.04 LTS, Kernel 版本 6.3.0-microsoft-standard-WSL2), i5-12400 (6 核 12 线程), 16 GB 内存, PM9A1 固态硬盘.

./hey -n 1000000 -c 10000 <http://127.0.0.1:8080/1k>

Summary:
  Total:        11.3429 secs
  Slowest:      1.2630 secs
  Fastest:      0.0000 secs
  Average:      0.0976 secs
  Requests/sec: 88160.9738

  Total data:   1024000000 bytes
  Size/request: 1024 bytes

Response time histogram:
  0.000 [1]     |
  0.126 [701093]        |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  0.253 [259407]        |■■■■■■■■■■■■■■■
  0.379 [24843] |■
  0.505 [4652]  |
  0.632 [678]   |
  0.758 [1933]  |
  0.884 [1715]  |
  1.010 [489]   |
  1.137 [5111]  |
  1.263 [78]    |

设计文档

组件简介

  • task (task.hpp): task 类表示一个协程, 在被 co_await 之前不会启动.
  • thread_pool (thread_pool.hpp): thread_pool 类实现了一个线程池来调度协程.
  • file_descriptor (file_descriptor.hpp): file_descriptor 类持有一个文件描述符. file_descriptor.hpp 文件封装了一些支持 file_descriptor 类的系统调用,例如 open()、pipe() 与 splice().
  • server_socket (socket.hpp): server_socket 类扩展了 file_descriptor 类, 表示可接受客户端的监听套接字. 它提供了一个 accept() 方法, 记录是否在 io_uring 中存在现有的 multishot accept 请求,并在不存在时提交一个新的请求.
  • client_socket (socket.hpp): client_socket 类扩展了 file_descriptor 类, 表示与客户端进行通信的套接字. 它提供了一个 send() 方法, 用于向 io_uring 提交一个 send 请求, 以及一个 recv() 方法, 用于向 io_uring 提交一个 recv 请求.
  • io_uring (io_uring.hpp): io_uring 类是一个 thread_local 单例, 持有 io_urin 的提交队列与完成队列.
  • buffer_ring (buffer_ring.hpp): buffer_ring 类是一个 thread_local 单例, 向io_uring 提供一组固定大小的缓冲区. 当收到一个 HTTP 请求时, io_uring 从 buffer_ring 中选择一个缓冲区用于存放收到的数据. 当这组数据被处理完毕后, buffer_ring 会将缓冲区还给 io_uring, 允许缓冲区被重复使用. 缓冲区的数量与大小的常量定义于 constant.hpp, 可以根据 HTTP 服务器的预估工作负载进行调整.
  • http_server (http_server.hpp): http_server 类为 thread_pool 中的每个线程创建一个 thread_worker 任务, 并等待这些任务执行完毕. (其实这些任务是个无限循环, 根本不会执行完毕.)
  • thread_worker (http_server.hpp):thread_worker 类提供了一些可以与客户端交互的协程. 它的构造函会启动 thread_worker::accept_client() 和 thread_worker::event_loop() 这两个协程.
  • thread_worker::event_loop() 协程在一个循环中处理 io_uring 的完成队列中的事件, 并继续运行等待该事件的协程.
  • thread_worker::accept_client() 协程在一个循环中通过调用 server_socket::accept() 来提交一个 multishot accept 请求到 io_uring. (由于 multishot accept 请求的持久性, server_socket::accept() 只有当之前的请求失效时才会提交新的请求到 io_uring.) 当新的客户端建立连接后, 它会启动 thread_worker::handle_client() 协程处理该客户端发来的 HTTP 请求.
  • thread_worker::handle_client() 协程调用 client_socket::recv() 来接收 HTTP 请求, 并且用 http_parser (http_parser.hpp) 解析 HTTP 请求. 等请求解析完毕后, 它会构造一个 http_response (http_message.hpp) 并调用 client_socket::send() 将响应发给客户端.
// `thread_worker::handle_client()` 协程的简化版代码逻辑
// 省略了许多用于处理 `http_request` 并构造 `http_response` 的代码
// 实现细节请参考源代码
auto thread_worker::handle_client(client_socket client_socket) -> task<> {
  http_parser http_parser;
  buffer_ring &buffer_ring = buffer_ring::get_instance();
  while (true) {
    const auto [recv_buffer_id, recv_buffer_size] = co_await client_socket.recv(BUFFER_SIZE);
    const std::span<char> recv_buffer = buffer_ring.borrow_buffer(recv_buffer_id, recv_buffer_size);
    // ...
    if (const auto parse_result = http_parser.parse_packet(recv_buffer); parse_result.has_value()) {
      const http_request &http_request = parse_result.value();
      // ...
      std::string send_buffer = http_response.serialize();
      co_await client_socket.send(send_buffer, send_buffer.size());
    }

    buffer_ring.return_buffer(recv_buffer_id);
  }
}

工作流程

  • http_server 为 thread_pool 中的每个线程创建一个 thread_worker 任务.
  • 每个 thread_worker 任务使用 SO_REUSEPORT 选项创建一个套接字来监听相同的端口, 并启动 thread_worker::accept_client() 与 thread_worker::event_loop() 协程.
  • 当新的客户端建立连接后, thread_worker::accept_client() 协程会启动 thread_worker::handle_client() 协程来处理该客户端的 HTTP 请求.
  • 当 thread_worker::accept_client() 或 thread_worker::handle_client() 协程等待异步 I/O 请求时, 它会暂停执行并向 io_uring 的提交队列提交请求, 然后把控制权还给 thread_worker::event_loop().
  • thread_worker::event_loop() 处理 io_uring 的完成队列中的事件. 对于每个事件, 它会识别等待该事件的协程, 并恢复其执行.

支持多种活动助力 实时更新助力状态提供助力截图 还可以获得分佣奖励(可提现),用这个赚个小钱还是可以的!

安装教程:

1.上传压缩包至根目录解压,可选完整版、极简版(适合低性能服务器 低延迟)

2.访问网站首页扫码绑定管理员身份

3.刷新页面扫码登陆管理员账号

拼多多助力工具网页版,可引流获取分佣,实时更新助力状态提供助力截图

下载链接:
[bshide}
https://wwxb.lanzoul.com/iAD240u3tk5i
解压密码:blog.xiaohack.org
[/bshide]

Invicti Standard 2023 年 4 月 24 日 v23.4.0---来源:pwn3
版本信息:23.4.0.40376

新的安全检查

  • 添加了 GrapQL 攻击使用的新模式。
  • 向 CommandInjection.xml 添加了新的攻击模式。
  • 实施了 Bootstrap 库检测。
  • 为 mod_ssl 添加了过时漏洞。
  • 添加了 Spring Framework Identified 的报告模板和漏洞类型。
  • 添加了 JavaMelody 接口检测到的签名。
  • 更改了 F5 大 IP 的 WAF 标识签名。
  • 添加了对用于 GraphQL 攻击的嵌套对象的支持。

改进

  • 更新了带有新品牌标志的Invicti Standard 。
  • 添加了外部模式导入以解决一个 WSDL 文件导入另一个 WSDL 文件的问题。
  • 从验证程序对话框中删除了交互式登录按钮。
  • 在站点地图中添加重新测试所有子项,以防止重新测试不可重新测试的问题。
  • 添加了对导入的 HAR 文件的空检查。
  • 改进了 cookie 导入过程,以便 cookie 与 RFC 兼容。
  • 更新了 IAST NuGet PHP 包。
  • 更新了 StaticDetection.xml 和 StaticResourceFinder.xml。
  • 添加了对身份验证、登录模拟和爬取的 Service Worker 请求支持。

修复

  • 修复了在收集表单值时导致内存使用率过高的问题。
  • 修复了内部代理的不受信任证书错误。
  • 修复了导致 Postman 文件导入期间日期和时间格式发生变化的问题。
  • 修复了 Linux 代理无法在启用 FIPS 的环境中工作的问题。
  • 修复了内部代理的不受信任证书错误。
  • 修复了 Whoops 调试检测中的“灾难性回溯”。

下载地址:

链接:https://pan.quark.cn/s/629ca5af6e4b
解压密码:mht