# Ping32技术内幕：如何开发一个文档透明加密软件？ \| Ping32 \- 终端数据安全一体化解决方案提供商。

Canonical: https://www.nsecsoft.com/jiami/20210101304.html

Language: zh-CN

Updated: 2022-03-31T05:24:27Z

如需转载到其他平台，请联系我们取得授权，违者将严肃追究法律责任。我于2008年进入安全行业，从事Windows \[…\]

*如需转载到其他平台，请联系我们取得授权，违者将严肃追究法律责任。*

我于2008年进入安全行业，从事Windows方向的C\\C++的底层研发工作。虽然那时Windows进入寻常百姓家，进入企业领域已有10年的光景，但是整体来说，技术资料和今天比还是相当匮乏，开源生态也不如今天这么完善。

举个简单的例子就是做API HOOK用的微软官方的

[Detours](https://github.com/microsoft/Detours)

库只开源了x86指令集的版本，x64版本售价9999美元，然而时至今日，Detours的x86，x64，ARM版本全部开源。过去十多年，我始终奋斗在研发一线，一路走来给我的感觉就是，解决一个技术难题越来越容易了。我时常在想，是什么造就了这种差异。答案显而易见，就是开源生态的发展，以及开发者的分享奉献精神。因此，我一直在评估是否有可能将Ping32文档加密的一些核心技术也开放出来，可能是开源的方式，亦或是技术分享的方式。

将一款商用产品的核心技术进行开放，这个想法不可谓不大胆。但是深思熟虑后，我们的立场很简单：数据安全用到的技术往往具备“冷、偏、难”的特点，这就导致鲜有企业有足够的技术积累，可以进入这个领域并孵化产品。结果就是市场无法良性健康发展，技术无法迭代升级。

随着《数据安全法》的颁布，以及

[Ping32新一代文档透明加密](https://www.nsecsoft.com/des/)

产品的发布，我想时机终于成熟了：我会将Ping32第一代文档加密产品的技术细节进行分享。虽然这并非完全的代码开源，但是涉及到的技术细节是立论严谨，经过工程实现检验的。这对于有意从事文档透明加密产品研究的团队来说，只要达到要求的知识储备，都可以在短期内实现一个具备商用价值的，从底层核心到上层权限管控的具备商用价值的透明加密产品，比如：图纸加密、文档加密、数据防泄漏、文档安全管理产品等。

Ping32第一代文档透明加密方案是基于应用层的HOOK技术实现的，在过去近十年的迭代发展过程中，积累了大量用户案例，稳定性得到了充分的验证。部分人聊到透明加密产品，言必谈论驱动层的方案如何更优。考虑商业场景应用的稳定性等因素，我依然认为应用层的透明加解密方案仍具极大的研究空间。此外，纵观目前国内做透明加密的厂商，大多数商用场景稳定的产品，透明加解密的核心逻辑依然是应用层方案，只不过辅以文件微过滤驱动实现小部分管控逻辑。

需要具备的知识储备

1.精通Windows平台下的C\\C++开发，熟悉常见的数据结构和算法；  
2.熟悉网络架构，了解各层的协议细节及应用场景，以及具备编写网络流量过滤器的能力；  
3.精通Windows架构体系，了解Windows XP - Windows 10的架构变迁；  
4.熟读《Windows核心编程》，读过《深入解析Windows操作系统》尤佳。  
5.熟悉WinDbg，IDA，ProcExp，ProcMon等高级调试工具的使用。

总结就是扎实的操作系统、网络、软件调试理论基础。

分享内容涵盖以下主题，将定期以博客的形式更新到官网，敬请关注

1、需要“透明”处理的操作、属性有哪些？  
2、生成文件内核对象句柄的途径有哪些以及应该如何处理？  
3、文件大小的透明化处理；  
4、文件指针的透明化处理；  
5、其他属性的透明化处理；  
6、Windows API 还是 Windows Native API；  
7、内存映射文件的处理；  
8、进程注入的艺术；  
9、邮件白名单与透明解密网关的实现；  
10、屏幕水印、打印水印、防截屏的实现；  
11、剪切板、OLE等其他细节的处理；  
12、不同文件系统的差异化处理；  
13、优点与不足之处；

如果你对其他技术细节也感兴趣，也可以和我们取得联系。
