自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(705)
  • 资源 (4)
  • 收藏
  • 关注

原创 主流防火墙策略绕过漏洞的修复方案与加固实践

主流防火墙策略绕过漏洞的修复方案 攻击者通过TCP序列号攻击和恶意标志组合绕过防火墙DPI检测,主要手法包括:1)正常TCP三次握手;2)将TLS ClientHello拆分为多个数据包,并插入含MD5-SIG选项的恶意包干扰防火墙状态;3)利用ACK without PUSH标志伪装控制包,使防火墙无法正确重组SNI域名。漏洞根源在于防火墙对TCP流控、重组机制及协议处理的缺陷。 修复方案包括:1)强化TCP层,实现状态化重组和严格SEQ/ACK验证;2)优化标志位处理,丢弃PSH-only等异常包;3)

2025-06-19 22:50:00 713

原创 加密DNS流量审计技术方案(一)

加密DNS流量审计技术方案(一)

2025-06-19 17:23:25 613

原创 中国移动(大陆)现持有运营的IP地址段,用于BGP分流用途。

本文汇总了多个IPv4地址段及其CIDR掩码,涵盖103.192.0.0/22至45.65.16.0/22等多个网段。这些地址段来自不同A、B、C类网络,包含/10、/12、/13、/14、/15、/17、/19、/20、/21、/22等多种子网划分,涉及36.128.0.0/10、211.103.0.0/17、223.112.0.0/14等不同规模的网络分配。数据呈现了IP地址资源的分布情况,可用于网络规划或地址管理参考。

2025-06-19 15:35:49 114

原创 Reality 技术分析及应对方案(一)

Reality 技术分析及应对方案(一)

2025-06-19 15:24:02 752

原创 MacOS X 命令行永久设置网卡IP、MASK、GW、DNS

格式:IP、掩码、网关。

2025-06-18 14:54:23 158

原创 关于极高性能的AES-128-GCM实现

AES-128-GCM在不验证认证标签时,单核吞吐量可达7000MB/s,但安全性显著低于AES-128-CFB。这种性能提升以牺牲安全性为代价。相关技术细节可参考:1)CSDN博客关于剔除标签验证的AEAD/GCM分析;2)C++实现记录;3)openppp2项目中的SIMD优化实现。该案例揭示了加密算法中性能与安全性的权衡关系。

2025-06-18 13:15:20 122

原创 C++ 软件工程实现日常的记录

摘要:现代C/C++编译器已高效处理寄存器分配,手动使用register关键字可能引发寄存器冲突,且高级优化选项(如/Ox、/O3)会自动进行寄存器优化,使其失去意义。此外,在AES算法中,虽然本地缓存密钥扩展(KeyExpansion)可提升性能,但实际实现中较少采用这种深度优化。编译器优化技术进步降低了手动优化的必要性。(149字)

2025-06-18 13:08:12 139

原创 _mm_aeskeygenassist_si128 硬件指令执行的操作

其中,temp是输入寄存器的32位部分,实际上,该指令将输入分成两个64位部分,对每个64位部分的高32位进行RotWord和SubWord,然后与轮常数异或(对于第一个和第三个32位块),然后复制到输出寄存器的相应位置。而 shuffle 操作是为了将这个中间值调整为正确的形式。在代码中,我们使用了0xFF和0xAA。在AES-256的密钥扩展中,我们通常使用该指令生成一个中间值,然后与之前的轮密钥异或。

2025-06-17 23:11:37 140

原创 OPENPPP2 目前提供中英双语文档(README)

OpenPPP2项目提供中英文文档(README_CN.md和README.md),包含应用案例、配置指南、命令行接口、编译说明、用户许可协议及司法风险提示等内容。该项目支持多平台,文档明确声明了用户许可条款。具体技术特点和应用案例可参考文档附录。(49字) 或更简洁版: OpenPPP2开源项目提供完整的中英文技术文档,涵盖使用配置、许可协议、司法风险等说明,支持多平台运行,详细应用案例见附录。(38字)

2025-06-17 13:34:33 380

原创 C++ 高性能的大小端字节序反转

摘要:建议在GCC/CLANG/VC++中使用编译器内置的字节交换函数(如__builtin_bswap32/64)替代传统ntohl/htonl等函数,因为它们通过编译器优化能直接生成BSWAP汇编指令(32位用EAX,64位用RAX),执行效率更高。相比位运算实现方式,这些内置函数只需单条指令即可完成字节序反转,性能更优。不同编译器可通过宏定义统一接口,确保在X86_64平台上获得最佳性能。

2025-06-17 13:24:12 663

原创 剔除标签验证的AEAD/128-256/GCM

【代码】剔除标签验证的AEAD/128-256/GCM。

2025-06-16 23:46:42 149 3

原创 C++ 通过AES-NI指令集高级硬件加速实现AES-128-GCM算法。

本文实现了一个AES-128-GCM加密算法,使用SIMD指令集优化性能,并对比了OpenSSL的实现。主要问题在于GHASH计算生成的TAG与OpenSSL不一致,但该差异不影响加密/解密功能。测试表明:1)算法能正确加解密数据;2)可实现标签篡改检测;3)提供了性能测试框架。验证方法包括:1)解密函数验证标签(通过XOR和_mm_test_all_zeros判断);2)支持memcmp标签比对。代码实现包含密钥扩展、GCTR模式、GHASH计算等核心功能,并进行了1000万次加密的性能测试,与OpenS

2025-06-16 19:45:16 132

原创 C++ 通过AES-NI指令集高级硬件加速实现AES-256-GCM算法。

本文实现了一个基于AES指令集的AES-256-GCM加密算法,包含密钥扩展、加密/解密、GHASH计算等功能。虽然GHASH计算部分与OpenSSL存在差异(生成的TAG不同),但这不影响加密/解密数据的正确性。代码使用SSE指令集优化了核心操作,并通过篡改测试验证了算法的安全性。性能测试表明,该实现与OpenSSL性能相当。主要挑战在于正确解析OpenSSL的GHASH汇编实现。代码提供了完整的功能测试,包括加密结果对比和性能评估。

2025-06-16 18:36:05 214

原创 markdown 显示 Github 仓库基础信息徽章

这篇文档介绍了如何在GitHub项目的README文件中添加项目指标徽章。主要包括三种徽章的Markdown代码示例: Stars徽章 - 显示项目获得的star数量 Forks徽章 - 显示项目被fork的次数 Commits徽章 - 展示项目提交活跃度 每个徽章都提供了标准的Shields.io格式代码,包含徽章样式和指向项目地址的链接。使用时只需替换代码中的"用户名"和"仓库名"即可快速集成到README中。

2025-06-16 13:47:09 82

原创 markdown 显示 Github 仓库提交活动热力图

GitHub活动热力图可视化用户提交记录,通过Markdown代码嵌入个人或仓库的贡献图表。采用GitHub官方主题,支持显示提交区域并隐藏边框,直观展示开发活跃度。插入格式为![ContributionGraph](仓库地址),需替换用户名和仓库名参数。该图表由github-readme-activity-graph服务生成,适用于README文件的美化展示。

2025-06-16 13:42:56 90

原创 markdown 显示 Github 仓库概要信息

🔍 GitHub仓库概览卡片 使用GitHub Readme Stats API动态生成仓库卡片,展示仓库基本信息和统计。卡片包含: 仓库名称及所有者信息 可视化统计图标 Vue主题风格 点击跳转到仓库的链接 仅需替换"用户名"和"仓库名"即可快速生成专属项目卡片,适合在README文件中展示项目状态。卡片采用响应式设计,自动适应不同设备查看。

2025-06-16 13:41:35 78

原创 markdown 显示 Github 仓库 ⭐ Star & Fork 历史

GitHub项目Star&Fork统计 通过Markdown代码可以嵌入GitHub项目的Star和Fork历史图表。示例代码展示了如何使用Starchart.cc服务来可视化"liulilittle/openppp2"仓库的发展轨迹,将动态统计图表直接嵌入文档中,方便跟踪项目受欢迎程度的变化趋势。

2025-06-16 13:40:17 102

原创 C++ 通过AES-NI指令集高级硬件加速实现AES-128-CFB算法。

高性能AES_128_CFB(AES密码反馈模式)实现,基于INTEL/AMD处理器AES-NI指令集结合SSE指令集实现。AES_128_CFB、AES_256_CFB之间区别只有 “密钥扩展函数” 轮次及立即数常数的不同。AES_128_CFB 密钥扩展函数立即数轮常数(为10个、AES_256_CFB为14个)第10轮: 0x36。

2025-06-11 18:58:21 408

原创 C++ 通过AES-NI指令集高级硬件加速实现AES-256-CFB算法。

但我并不否认,本文的AES实现存在致命的平台处理器CPU局限性,但我个人认为,的确是可以通过C/CXX编译器宏,为特定平台提高更为极致的性能优化是有一定必要的,因为在绝大多数情况下,目标也均仅在X86/X64(i386/i686、AMD64)处理器平台上运行。源实现已添加了大量的中文注释,如果对实现原理感兴趣的童鞋,可以详细参考阅读本文的C++代码实现,性能这块没得说,预期目的一直是为了 PPP PRIVATE NETWORK™ 2 性能继续提高服务的,否则难有过多的心气,去肝爆重写这个东西。

2025-06-11 03:57:00 811

原创 通过高级处理器硬件指令集AES-NI实现AES-256-CFB算法并通过OPENSSL加密验证算法正确性。

本文介绍了如何利用AES-NI指令集实现AES-256-CFB加密算法。通过使用Intel处理器内置的硬件加速指令,该实现展示了密钥扩展、块加密以及CFB模式操作的核心流程。代码包含与OpenSSL库的对比验证,确保实现的正确性,并提供了性能测试功能。文章详细说明了密钥扩展过程、加密/解密逻辑,以及如何处理部分数据块,为开发者提供了基于硬件加速的高效AES实现参考。

2025-06-11 03:21:26 304

原创 通过高级处理器硬件指令集AES-NI实现AES-256-CFB算法。

本文介绍了一种基于XMM硬件指令集的AES-256-CFB加密算法实现方案。该方案通过Intel AES-NI指令集加速,详细展示了密钥扩展、块加密和CFB模式的具体实现。代码包含完整的加密/解密路径,支持任意长度数据,并通过测试向量验证了正确性。实现中特别优化了CFB模式的反馈机制,加密时使用密文作为反馈,解密时使用输入的密文作为反馈。性能测试表明,该硬件加速实现比传统软件实现效率提升显著,适用于需要高性能加密的场景。

2025-06-11 03:12:53 220

原创 关于AES-256-CFB密钥扩展实现

注意,以下代码并不能被编译 _mm_aeskeygenassist_si128 不接受非立即数的,实际上展开是,人工通过编译器宏函数自己干的,一共七轮自己挨着逐个弄,当然本文会提供展开的代码。

2025-06-11 02:20:25 210

原创 C/C++ 检测CPU是否支持AES-NI硬件指令集

本文介绍了在不同X86/X64平台下检测CPU是否支持AES-NI指令集的多种实现方法:1) 使用GNU AT&T格式的内联汇编检查ECX寄存器第25位;2) 通过MSVC的__cpuid函数实现;3) 采用Intel格式的内嵌汇编方式;4) 使用__cpuidex函数;5) 调用编译器内置函数_may_i_use_cpu_feature。这些方法的原理都是通过CPUID指令读取处理器特征信息,通过检查特定标志位(如AES-NI对应ECX[25])来判断指令集支持情况。文中还展示了扩展应用:通过类似

2025-06-11 01:48:10 610

原创 OpenSSL 的 AES-NI 支持机制

OpenSSL自动检测并启用AES-NI硬件加速,通过CPUID指令检测处理器支持情况。版本1.0.1+开始支持,建议使用1.1.0+。启用后通过EVP标准接口自动选择最优实现,避免使用低级函数。可通过命令行和C++代码验证是否启用,若未启用需检查BIOS设置或虚拟机配置。最佳实践包括始终使用EVP接口并进行运行时检查。特殊情况可通过环境变量强制禁用硬件加速。

2025-06-11 01:34:59 255

原创 Linux 删除登录痕迹

echo "" | sudo tee /var/log/auth.log >/dev/null # 认证日志(Ubuntu/Debian)echo "" | sudo tee /var/log/wtmp >/dev/null # 用户登录/注销记录。echo "" | sudo tee /var/log/btmp >/dev/null # 失败登录记录。echo "" | sudo tee /var/log/lastlog >/dev/null # 最后登录信息。当然,仍可以先查阅以下文章。

2025-06-10 14:14:14 527

原创 Linux 命令行添加用户。

3、添加用户到 sudo 组。

2025-06-10 13:20:05 102

原创 Linux 删除用户终端命令行操作记录

这样 history 无法显示用户的操作记录,可以防止被管理员通过 history 命令察觉。假设你想删除最近的 N 行历史记录,可以使用 history -d 命令。如果你知道要删除的行数,您可以使用循环命令。但这会留下操作记录,尽量不要采用这种方式。a. 删除最后几行的命令。2、删除特定的历史项。

2025-06-10 13:17:08 334

原创 boost::asio::ip::<tcp/udp>::resolver 需要慎用它进行异步解析DNS地址列表。

摘要:boost::asio::ip::tcp/udp::resolver虽然支持异步DNS解析,但在高并发场景下可能出现卡死问题,导致回调长时间未触发。建议避免使用其异步实现,或者考虑修改底层实现。同步版本调用C函数库(gethostbyname等)性能更稳定。对于异步需求,可选用C++开源DNS库如cpp-dns、gko_pool等,它们提供更好的异步解析支持且性能更可靠。(146字)

2025-06-06 11:48:47 581

原创 简单方法判断 “域名” 是否ARPA,反向查询(RDnS)

该代码实现了一个判断DNS反向查询的函数IsReverseQuery。它检查输入的hostname是否以".ip6.arpa"或".in-addr.arpa"结尾(分别对应IPv6和IPv4的反向查询),同时验证hostname长度不超过64字节。函数首先处理空指针或空字符串情况,然后检查长度限制,最后通过字符串匹配判断是否为反向查询请求。如果是则返回true,否则返回false。该函数采用noexcept保证不抛出异常,并使用了constexpr定义常量字符串和最大

2025-06-06 11:23:31 127

原创 OS默认DNS查询短暂合并等待时间

DNS解析优化机制:操作系统会同时发送IPv4(A)和IPv6(AAAA)查询以提高效率,采用并行等待机制但设置超时限制。当任一记录返回时,系统启动100毫秒左右的定时器(各平台差异:Linux 50ms/MacOS 50-100ms/Windows 100-300ms),超时后即返回已获得的记录。该硬编码值通过逆向工程和开源资料确认,主要影响操作系统级的DNS管理模块,Windows NT表现尤为典型。注:不同底层库实现存在差异(如glibc设为500ms)。

2025-06-06 11:18:04 216

原创 openppp2 -- 1.0.0.25225 优化多线接入运营商路由调配

摘要:本文介绍openppp2-1.0.0.25196版本新增的VBGP技术优化功能,针对DNS解析路由规则进行改进。新版采用类似DNSMASQ的配置格式,允许用户指定不同域名的解析路径(如.cn域名通过本地物理网卡解析)。结合VBGP运营商路由控制,该技术能确保境内域名强制走大陆线路,避免被境外服务器识别追踪,有效解决IP地址递归回溯问题,同时支持接入***、新加坡等地区网络时的智能路由分流。

2025-05-30 23:50:43 575

原创 C++ 判断文件的编码类型

文本编辑器通过文件头部字节(BOM)判断编码类型。常见的BOM标识包括:0xFFFE41(Unicode)、0xFEFF00(UnicodeBIG)和0xEFBBBF(UTF8)。若无BOM则默认返回ASCII编码。该代码实现了对这三种编码类型的识别,并支持偏移量调整。

2025-05-29 20:29:32 198

原创 关于DDOS

实际上要制作这些程序最好的办法是结合DPDK来发送,这样可以用最低的CPU能耗发出足够巨量的IP数据报文,当然通过系统提供的PF_PACKET, RAW_SOCKET也是可以,但这或许会相对慢得多,在不利用DPDK的情况下,更快的报文轰炸发送是通过内核RING(环)来发送数据的。所以IP协议上的源地址就是对端用来应答数据的IP地址,但这个过程是可以修改的,因为在互联网之中运行的TTL跃点路由器并不会检查源地址,它根本不需要关注源地址,这个附加信息本身就是给IP目标地址指向的对端主机看的。

2025-05-29 20:10:57 931

原创 关于近期中国移动民用家庭网络,新增的UDP网络限制。

中国移动近期在全国范围部署新技术方案打击PCDN等违规应用,该方案于2025年5月17日植入省级网关。尽管承认技术尚未成熟,移动仍坚持启用该系统,导致正常家宽用户(特别是UDP需求用户)网络受限,引发大量投诉。系统主要针对三类UDP使用场景进行限速,对海外UDP流量限制尤为严格。技术规避方案包括定期更换UDP端口等,但需开发者具备较强的网络编程能力来实现无缝切换。移动认为牺牲部分高端用户需求是可接受的,但该决策引发用户不满和投诉风险。

2025-05-28 02:45:39 809

原创 解决:MySQL client, error code: 1251, SQLState: 08004

MySQL认证协议不兼容问题解决方案:客户端报错1251是由于MySQL 8.0默认使用caching_sha2_password认证方式,而旧客户端不支持。可通过修改用户认证插件为mysql_native_password解决。修复步骤:1)执行ALTER USER修改认证方式;2)FLUSH PRIVILEGES刷新权限。该方法可快速解决客户端连接认证失败问题,适用于MySQL 8.0与旧版客户端的兼容场景。

2025-05-28 01:55:06 393

原创 MySQL命令行创建用户并赋予所有权限且允许所有的来源访问。

创建用户并基于所有的权限。显示用户拥有的所有权限。

2025-05-28 01:37:55 128

原创 Ubuntu 系统上安装 MySQL 默认的超级管理员密码

Ubuntu系统的MySQL安装包会自动创建debian-sys-maint用户,其密码存储在/etc/mysql/debian.cnf配置文件中,可通过该用户登录MySQL。若忘记root密码,可采用特权模式强制修改密码,或尝试查看mysql日志文件查找临时密码(var/log/mysql/error.log)。不同版本可能存在差异,新版可能不再提供默认密码。

2025-05-28 01:16:38 211

原创 Linux 下命令行获取本机外网IP地址

本文提供了多个通过命令行快速获取本机公网IP地址的方法,包括使用curl访问checkip.dyndns.org、ifconfig.me、cip.cc等十余个IP查询服务。这些指令通过管道和sed处理返回结果,能直接输出简洁的IP地址信息,适用于Linux/Unix系统环境下的网络调试和IP查询需求。不同服务可作为互相验证的备选方案,部分网址可能需要VPN访问。

2025-05-27 02:42:07 120

原创 Linux 下设置IPV4网络路由优先,但仍支持IPV6网络路由。

本文摘要: 要在双栈服务器上设置IPv4优先访问,需root权限修改/etc/gai.conf文件,添加precedence ::ffff:0:0/96 100配置项。该指令通过调整地址选择策略表(RFC 3484),将IPv4映射地址(::ffff:0:0/96)的优先级设为100,确保系统优先使用IPv4连接。此方法适用于Linux系统,需重启网络服务生效,可解决双栈环境下IPv6默认优先导致的兼容性问题。

2025-05-27 02:37:33 173

原创 中国大陆IP段(含港澳)【2025-05-27】APNIC lasted 2025-05-27

以下列出近期的IP路由列表,人们可以基于以下路由表,配置到大陆的BGP静态路由信息。

2025-05-27 02:16:34 161 3

Intel Smart Sound Technology (ISST) Driver

J4105/J4125 NUC/Notebook PC ISST Driver J4105/J4125 NUC/笔记本电脑 ISST声卡驱动

2024-08-01

serverspeeder2 锐速(TCP/IP单边加速)

支持:“Windows XP/2003” 操作系统平台(含:32/64位程序)

2022-09-20

sscli20.zip

Microsoft .NET Framework 2.0 FCL/BCL/RUNTIME,.NET虚拟机实现源代码!

2022-09-20

serverspeeder 锐速

serverspeeder 锐速, 一:支持 “Windows Server 2016/2012/2008” x86_64 服务器平台。 二:支持 “Windows Desktop 7/8” x86_64 桌面平台

2022-09-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除