重玄科技

进阶资料

 

白杨的原创免费作品


跨平台、分布式 C/C++ 开发,QQ/Mail: asbai@msn.com

最后更新:2022-02-20

 


目录

注意:经常有人说他的杀毒软件查出我写的小工具是病毒。这里澄清一下:我写的大部分小工具都使用 upx 进行了压缩。upx 是一款免费开源的应用程序压缩工具,有些杀软会误报使用该工具处理过的程序是病毒。解决方法是:去 upx 的官方网站 http://upx.sourceforge.net/ 下载最新版本;然后使用 -d 参数运行 upx 以解压被误报的 exe。

 

 


最终用户许可协议

作者在本网站上提供的任何原创软件作品,均遵循此:《最终用户许可协议》。在您开始使用本网站上的原创作品前,请仔细此协议,若有任何不同意见,请立即停用本网站提供的任何原创作品。

 


文档

C++编码规范与技术指导

最后更新:2013-05-29, Ver 1.41

对于任何工程项目来说,统一的施工标准都是保证工程质量的重要因素。堪称当今人类最抽象、最复杂的工程——软件工程,自然更加不能例外。

高品质、易维护的软件开发离不开清晰严格的编码规范。本文档详细描述C++软件开发过程中的编码规范。本规范也适用于所有在文档中出现的源码。

此外,本文档还描述了编译器如何实现 RTTI、虚基类、模板、异常等 C++ 高级特性,以及的相关设计权衡。

 

nSOA 架构 - SOA 的有力替代和补充 / nSOA - a powerful alternative and complementary of SOA

最后更新:2022-02-20

SOA 的主要优点是高内聚、低耦合,但也同时带来了不少麻烦。nSOA 专为解决这些麻烦而生。

 

高性能、高并发 Web 架构 / High-performance and high concurrency Web architecture

最后更新:2015-05-30

探讨了一种基于异步 IO 的典型 Web 架构。

 

分布式网游服务器架构

最后更新:2022-02-20

有鉴于当今网游行业的服务器端单点性能普遍不佳,并且其整体架构仍处于 "分区分服,相互分割" 的落后模式而提出的一套单点性能高,同时支持高性能(HPC)+高可用(HAC),可实现统一大世界的分布式网游服务器集群解决方案。

点击阅读(PDF)

 


GUI工具

RecoveryWare一键恢复系统

最后更新:2007-04-15, Ver 1.1.3.415

RecoveryWare 用于在发生灾难时(例如:机器无法启动;系统和重要应用无法正常运行;计算机感染病毒等恶意程序;正在从硬件故障中恢复,等等),完成简单快捷的系统恢复。

RecoveryWare 的设计目标:

  • 为初级用户提供简易的向导式系统恢复。
  • 为高级用户提供可自由增删的高级工具项,以及自定义各种行为的能力。

 

RecoveryWare 主要针对没有技术背景的普通计算机用户,特点如下:

  • 同时支持光盘版(系统恢复光盘)和硬盘版(一键恢复)。
  • 向导式操作,用户只需要了解鼠标单击操作和标准按钮即可使用
  • 完整的多国语言界面,从界面到在线帮助文档。目前支持简体中文、繁体中文和英文。
  • 开始恢复前有完整的提示和确认流程,确保用户清楚地知道自己在做什么,避免出现不必要的损失。
  • 可自定义流程步骤,支持无人值守恢复(跳过确认步骤,完成后自动重启计算机等)。
  • 可搭配各种磁盘映像工具使用。如:symantec ghost、acronis true image、paragon disk manager 以及 dd 等。
  • 完整的错误处理流程,可自定出错返回码表。一旦恢复失败,用户会被及时告知并采取其它补救措施。
  • 可自定义或禁用高级工具。基于 Winodws XP SP2 的 PE 环境制作,可以运行绝大部分 Windows 应用程序。用户可以根据自己的喜好和习惯增删各类第三方工具(例如:硬件检测、数据恢复、刻录备份、病毒查杀工具等等)。
  • 启动时在前台或后台执行用户定义的第三方应用,完成额外的信息交互、管理诊断等操作。
  • 启动时合并用户指定的配置到 WinPE 环境的注册表,方便修改系统选项和添加配置信息(例如:添加系统服务和输入法、导入自定义高级工具的配置信息等)。
  • 完整的驱动支持
    • 支持 USB 2.0 大容量存储设备(U盘、外置硬盘),方便数据备份。
    • 内置 Intel、SiS、ALi、VIA、Adaptec、HP Compaq、DELL、MegaRAID、Promise、LSI、Silicon、Stallion、MyLex、AdvenSys、ASUS、HighPoint、ATI、ULi、ACARD、nVIDIA 等厂商的 SATA、SCSI RAID 控制器驱动。
    • 内置 VIA、Intel、SiS、ALi、Toshiba、Promise 等厂商的专用高速 IDE 控制器驱动。
    • 支持笔记本专用 CardBus/PCMCIA 总线和相应磁盘控制器。
RecoveryWare 目前能够通过两种途径装载:
  1. 由 RecoveryWare 恢复光盘启动加载(光盘版)。
  2. 系统开机时,由启动界面选择加载(硬盘版,一键恢复)。

硬盘版使用起来更加方便,而光盘版则适用于更为严重的灾难(例如MBR被恶意破坏导致硬盘版无法加载)。除了启动方式稍有不同外,两者的界面及应用流程都是一致的。

 

 

星际争霸版本切换工具

最后更新:2013-08-02, Ver 1.0.13.0802
  • 1.0.13.0802 解决了在个别厂商的虚拟磁盘工具上无法正常启动的问题。
  • 内置 1.08b 至 1.16.1 的补丁版本
  • 绿色软件,不修改系统注册表;无需安装
  • 单一文件,使用时不会建立任何额外文件和目录,便于管理和分发
  • 游戏安装路径和当前版本自动检测
  • 鼠标即点快速帮助,各版本详细信息
  • 节省空间,所有补丁均经压缩存储
  • 高效切换,切换速度快;支持切换并运行
  • 最小化至系统托盘,同时最小化物理内存用量
  • 支持命令行参数。通过不同组合,可以方便地创建各种快捷方式和批命令(详见:帮助->命令行参数)
  • 支持在桌面和开始菜单中创建直接启动各个版本的快捷方式
  • 多国语言界面,根据当前系统设置自动识别。目前提供简体中文、繁体中文和英文。

 

CSV -> Excel 格式转换工具

最后更新:2014-01-20
一直很讨厌 Excel 打开 CSV 时,自作主张地将手机号、身份证号等字段辨认为数字的问题。所以写了个 GUI 小工具。

 


命令行工具

Run As Service

runassrv - 把任何可执行文件(包括批处理和脚本)当作系统服务运行的工具

最后更新:2006-08-03, Ver 1.1.2.803

  • 将任何可执行文件作为系统服务运行。
  • 开始主要是为了移植一些linux 的 daemon;也可以用于启动任何应用程序和维护性脚本。
  • 安静地运行,除非指定了 Interactive 模式,否则不会弹出任何窗口。
  • 无需登陆,系统启动后自动运行,无需等待用户登陆完毕。
  • 作为附带的功能,支持启动、停止和删除任何系统服务。
  • 完整接管系统服务管理器的指令(启动、停止等等)。运行的程序终止后,自动向服务管理器提交状态同时自身退出,不会驻留内存。
  • pause / continue 操作。
  • 一个 runassrv 服务可以并发运行多个 /cmdline 指定的应用,应用按指定顺序初始化。
  • runassrv.exe 本身不需要放入系统搜索路径中。
  • 新增 control 操作,向指定的服务发送控制码。
  • 新增 listsrv 操作,列出所有服务和驱动,支持很多过滤条件。
  • 新增 -logfile 和 -loglevel 选项,日志记录功能。
  • 新增 -unstoppable 系统服务管理器将拒绝停止一个以该选项安装的服务。
  • 内存收缩策略,典型情况下内存开销少于 300KB。

 

File Wipe

filewipe - 商用级文件擦除工具

最后更新:2013-02-15, Ver 2.2.4.0215

  • 默认行为满足商用级数据擦除的要求。
  • 以N次(默认为6次)随机值,一次全壹,一次全零填充擦除指定文件。
  • 支持文件通配符和子目录遍历。
  • 可选记录日志文件。
  • 随机值填充次数可选,默认为 6 次。
  • 直接填充物理扇区,跳过操作的系统文件缓冲/磁盘调度机制以及硬盘的物理缓存机制,保证可靠擦除。
  • 填充用随机数种子通过底层硬件杂讯和 CPU TSC 等高随机源获取(通过 Win32 Crypto API、/dev/random 等)。随机数据生成使用 SHA 算法,符合密码编码学级别的随机度。
  • 以磁盘簇为单位进行填充;每遍填充均使用不同的随机数据。
  • 清除文件的同时完成文件名混淆:使攻击者不仅无法恢复数据,甚至连被擦除的文件名也无法恢复。
  • 支持 Win32 和纯 DOS 环境(纯DOS环境中需要 HX DOS Extender 支持)。
  • 支持 POSIX 环境,提供 linux x86/x64、FreeBSD、Solaris 等版本下载。

 

crypto

crypto
 - 用强加密算法加、解密指定文件集。
 - 使用散列或校验和算法产生、检查指定文件集的可靠性。

最后更新:2021-06-01, Ver 1.0.10.0601

  • 支持当今绝大部分对称强加密算法。
  • 可定制的密钥长度,从最低32位到最高的448位。信息安全强度由用户自由选择。
  • 算法库已通过FIPS 140-2美国国家信息处理标准一致性检查,加密算法方面可以保证零漏洞。加密算法是程序设计中比较微妙的领域,一点小错误就会使算法安全性完全丧失。同时加密算法中的错误又不易被发现,所以一个已知为可靠的算法库是很重要的。(插播开源广告:本算法库基于优秀的 Cryptopp 库封装,该库免费开源,功能强大,是居家旅行、出门防被鸟枪打的必备精品……)^_^。
  • 使用迭代安全散列算法变换密钥,增强其安全性,几何级数地增加了字典攻击的难度。
  • 使用 LZ4、ZLIB、BZ2 或 GZIP 算法进行实时数据压缩。有效压缩文件尺寸、成倍增加算法运行速度,同时加强算法抗已知部分密文攻击和语言学分析攻击的能力(后面详细说明原理)。
  • 完整支持当今密码编码学体系中定义的各种块加密模式。
  • 支持批量文件加/解密操作,支持包含子目录。支持同时指定多个文件通配符或文件列表。
  • 同时加密保存文件名和相对路径信息更改结果文件的名称和目录层次结构不会影响解密过程——解密时将在正确的目录层次还原原始文件名。
  • 支持大部分流行的散列及校验和算法。
  • 批量散列值计算和批量验证,生成标准的散列值列表文件,方便与其它工具互动(验证其它工具生成的列表或为其它工具生成验证列表)。
  • 同时支持多个通配符或文件列表,支持子目录。
  • 高效,在所有存在大规模数据移动的地方都实现了零拷贝算法,各个部分都尽可能洗练高效。
  • 支持 Win32 和纯 DOS 环境(纯DOS环境中需要 HX DOS Extender 支持)。
  • 支持 POSIX 环境,提供 linux x86/x64、FreeBSD、NetBSD、Solaris 等版本下载。

 

badcopy

badcopy - 从不良的存储介质中复制文件

最后更新:2006-07-16, Ver 2.0.0.716

  • 从包含物理坏块的存储介质中复制文件。
  • 直接读取物理扇区,尽力恢复数据。
  • 允许自定义读取步长和重试次数,用户自己在正确性和效率之间作出权衡。
  • 可以从用户定义的位置开始复制,支持数据追加模式。
  • 对于无法读出的数据,允许用户自定义填充字节。
  • 支持文件通配符,可以包含子目录。
  • 分级的日志文件。

 

Disk Recovery

disk recovery - 转储受损的磁盘和文件

最后更新:2021-06-01, Ver 1.0.10-0601

  • FreeBSD recoverdisk 工具的跨平台改进版。
  • 支持手动设置块尺寸和扇区尺寸。对未受损的区域以较大的块尺寸进行高效读取,对包含坏道的块使用 Med 区块及逐扇区恢复。
  • 可指定对于每个坏扇,最多尝试重复读取几次。
  • 可指定遇到无法恢复的坏扇时,使用的填充值。
  • 直接访问源物理设备,禁用了操作系统缓存机制和预读策略:确保更可靠高效的恢复操作,防止由于缓存和预读机制而反复读取一个坏道导致性能和可靠性下降,甚至进一步损伤设备。
  • 源既可以是一个磁盘设备,也可以是普通文件。方便仅需要恢复个别有坏道文件的情形。
  • 目的既可以是一个磁盘设备,也可以是普通文件。将一个磁盘设备转储到镜像文件不需要专门准备一个扇区尺寸一致的专用磁盘,而且可以方便地使用 WinImage、R-Studio 等工具对镜像文件进行扫描和恢复。
  • 可指定冷却间隔,例如:指定 "30/5" 表示每工作 30 分钟后,自动停止 5 分钟。冷却机制防止本已损伤的设备因为过热和疲劳而进一步恶化。
  • 在磁盘设备健康水平进一步恶化前,尽可能多地抢救数据:rdd 先以大块(默认 1MB)为单位转储数据,期间跳过无法读取(受损)的部分;然后集中尝试以中块(Med,默认 32KB)为单位读取所有受损的大块,期间跳过无法读取(受损)的中块;最后再逐扇区地尝试恢复所有受损的中块,对超过指定重试次数仍无法正常读取的扇区按预定义的填充值(默认 0x00)进行转储。
  • 可指定转储的范围,跳过坏块密集或者无需进行恢复的部分。
  • 可指定日志文件和日志级别。
  • 极高的 IO 并发效率:源读取、目标写入以及日志记录均在各自的工作线程中完成。
  • 可指定读线程和写线程间的数据缓存队列尺寸,也可根据当前系统的可用物理内存数量进行自动判断。
  • 可指定进程的运行优先级。例如:较低的进程优先级可以大大降低程序对前台用户体验的影响。
  • 使用清晰的 '-from' 和 '-to' 开关项来指定源和目的以及执行前确认机制,避免由于参数错误带来的灾难性后果。
  • 支持 Win32 和纯 DOS 环境(纯DOS环境中需要 HX DOS Extender 支持且功能受限)。
  • 支持 POSIX 环境,提供 linux x86/x64、FreeBSD、Mac OS X、Solaris 等版本下载。

 

find

f - 在文件中查找匹配的字符串

最后更新:2012-01-19, Ver 2.3.3.0119

  • 支持一次性指定多个文件通配符和文件列表。
  • 支持管道模式,与其它命令协同工作。
  • 支持包含子目录,与 grep 不同,即使查找目录中不包含任何匹配文件,也会继续子目录查找。
  • 支持普通匹配、正则匹配、可忽略大小写、可跨行匹配。
  • 支持 TCL 8.2 兼容的高级正则表达式(ARE)。
  • 同时支持 posix 标准的扩展正则表达式及 perl 风格的正则匹配。
  • 支持 DOS(Windows)、Macintosh 和 unix 风格的换行符,可选择自动识别(默认)或手动指定。
  • 可完全自定义的匹配结果输出格式,更方便查看或与其它软件配合。
  • 统计功能,列出每个文件中的匹配次数、总匹配次数等,也可以仅列出发现匹配的文件列表。
  • 支持 Win32 和纯 DOS 环境(纯DOS环境中需要 HX DOS Extender 支持)。
  • 支持 POSIX 环境,提供 linux x86/x64、FreeBSD、NetBSD、Solaris 等版本下载。

 

find - replace

fr - 在文件中批量查找并替换匹配的字符串

最后更新:2012-04-24, Ver 2.1.7.0424

  • 支持一次性指定多个文件通配符和文件列表。
  • 支持管道模式,与其它命令协同工作;支持半管道模式,从文件中获取输入,但将结果写到标准输出。
  • 支持包含子目录。
  • 支持普通匹配、正则匹配、可忽略大小写、可跨行匹配。替换时可以使用正则的子表达式。
  • 支持 TCL 8.2 兼容的高级正则表达式(ARE)。
  • 同时支持 posix 标准的扩展正则表达式及 perl 风格的正则匹配。
  • 支持 url encoding (percent-encoding, rfc 3986) 风格的换码序列。
  • 可以格式化替换内容为全大写或全小写,便于在批处理中对环境变量和命令行参数做大小写一致化处理。
  • 支持 DOS(Windows)、Macintosh 和 unix 风格的换行符,可选择自动识别(默认)或手动指定。
  • 支持 Win32 和纯 DOS 环境(纯DOS环境中需要 HX DOS Extender 支持)。
  • 支持 POSIX 环境,提供 linux x86/x64、FreeBSD、NetBSD、Solaris 等版本下载。

 

wide find - replace

wfr
  - 支持多国语言的字符串批量查找和替换
  - 批量字符集编码转换

最后更新:2013-11-19, Ver 2.3.9-1119

  • 纯 unicode 规则匹配内核,真正支持各国语言文字的正则匹配。
  • 支持 TCL 8.2 兼容的高级正则表达式(ARE)。
  • 带有兼容性检查的字符集编码转换功能。同时支持 GUN libiconv(iconv.dll) 和 Windows 自带的字符集编码转换 API。
  • 支持一次性指定多个文件通配符和文件列表。
  • 支持管道模式,与其它命令协同工作;支持半管道模式,从文件中获取输入,但将结果写到标准输出。
  • 支持包含子目录。
  • 支持普通匹配、正则匹配、可忽略大小写、可跨行匹配。替换时可以使用正则的子表达式。
  • 同时支持 posix 标准的扩展正则表达式及 perl 风格的正则匹配。
  • 可以格式化替换内容为全大写或全小写,便于在批处理中对环境变量和命令行参数做大小写一致化处理。
  • 支持 DOS(Windows)、Macintosh 和 unix 风格的换行符,可选择自动识别(默认)或手动指定。
  • 统计功能,列出每个文件中的替换次数、总替换次数等。
  • 支持 Win32 和纯 DOS 环境(纯DOS环境中需要 HX DOS Extender 支持)。
  • 支持 POSIX 环境,提供 linux x86/x64、FreeBSD、NetBSD、Solaris 等版本下载。

 

batch_wide find - replace

bwfr
  - 支持多国语言的字符串批量查找和替换
  - 批量字符集编码转换

最后更新:2013-11-19, Ver 2.4.11-1119

  • 纯 unicode 规则匹配内核,真正支持各国语言文字的正则匹配。
  • 支持 TCL 8.2 兼容的高级正则表达式(ARE)。
  • 带有兼容性检查的字符集编码转换功能。同时支持 GNU libiconv(iconv.dll) 和 Windows 自带的字符集编码转换 API。
  • 支持一次性指定多个查找/替换对。
  • 支持环境变量展开,可以在查找/替换对中使用系统环境变量。
  • 支持一次性指定多个文件通配符和文件列表。
  • 支持管道模式,与其它命令协同工作;支持半管道模式,从文件中获取输入,但将结果写到标准输出。
  • 支持包含子目录。
  • 支持普通匹配、正则匹配、可忽略大小写、可跨行匹配。替换时可以使用正则的子表达式。
  • 同时支持 posix 标准的扩展正则表达式及 perl 风格的正则匹配。
  • 可以格式化替换内容为全大写或全小写,便于在批处理中对环境变量和命令行参数做大小写一致化处理。
  • 支持 DOS(Windows)、Macintosh 和 unix 风格的换行符,可选择自动识别(默认)或手动指定。
  • 统计功能,列出每个文件中的替换次数、总替换次数等。
  • 支持 Win32 和纯 DOS 环境(纯DOS环境中需要 HX DOS Extender 支持)。
  • 支持 POSIX 环境,提供 linux x86/x64、FreeBSD、NetBSD、Solaris 等版本下载。

 

jscompile

jscompile
  - 使用 Google Closure-Compiler 进行 JavaScript 批量编译

最后更新:2011-05-17, Ver 1.0.1.0517

  • 支持一次性指定多个文件通配符和文件列表。
  • 支持包含子目录。
  • 允许用户指定自定义编译参数。
  • 自动判断编译时发生错误的情况。
  • 支持并行编译(在多核环境下并发编译多个文件)。默认情况下,并行编译级别根据待编译的文件总数以及当前平台下的在线处理器数量自动计算。

 

 

跨平台 C/C++ 开发,QQ/Mail: asbai@msn.com

版权所有 (C) 2006 - 2022, 白杨 (baiy.cn). 保留所有权利.
Copyright (C) 2006 - 2022, Bai Yang (baiy.cn). All Rights Reserved.

沪ICP备07504088号
沪公网安备 31011002004034号

 

重玄科技

进阶资料