JSON是用于在应用程序内共享对象和数据的标准格式。对于Java,不存在对JSON处理的内置支持,但是有几种广泛使用的库可供选择。在本文中,我们将重点介绍最受欢迎的Jackson。
保护使用Jackson进行JSON处理的应用程序时,请务必注意是否使用Java对象存储JSON数据(如使用数据绑定),或者是否在没有相应Java对象的情况下完全操纵JSON数据(如Jackson一样)树模型)。这会影响我们配置混淆设置的方式。
对于数据绑定Java对象(POJO),我们需要保留get和set方法以确保适当的运行时功能。另一方面,如果我们使用树模型来操作JSON数据(没有POJO),则无需任何自定义配置就可以应用混淆。请考虑以下内容。
此示例项目使用两种不同的方式对JSON格式的字符串进行序列化和反序列化。一种方法使用不支持POJO的Jackson树模型。第二种方法使用数据绑定将JSON数据存储为POJO。以下是预期的输出:
在对jar文件应用保护之后,请注意“树模型”示例可以正常运行,但是“数据绑定”示例将引发异常:
如果按照例外说明,如果我通过在POJO中添加@JsonInclude(Include.NON_NULL)批注来允许空bean,那么我仍然会在输出中得到空结果,这也是预期的行为。
为了防止这种情况,我需要从重命名中排除Car对象的get和set方法。
这样做之后,受保护的输出将正常运行。
说到PreEmptive,其名下两款实力派软件保护工具——Dotfuscator和DashO Pro。
Dotfuscator是一个.NET的Obfuscator。它提供企业级的应用程序保护,大大降低了盗版、知识产权盗窃和篡改的风险。Dotfuscator的分层混淆、加密、水印、自动失效、防调试、防篡改、报警和防御技术,为世界各地成千上万的应用程序提供保护。
DashO是一个Java和Android的混用程序,它提供企业级应用的加固和屏蔽,大大降低了知识产权盗窃、数据盗窃、盗版和篡改的风险。分层混淆,加密,水印,自动失效,反调试,反篡改,反仿真器,反挂钩,反根设备解决方案,为世界各地的应用程序提供保护。
下表突出显示了在过去20年中以各种形式包含在PreEmptive Protection产品Dotfuscator和DashO Pro的应用程序内保护模式,其客户已成功将其集成到几乎每个行业,地理和设备的应用程序中。
接受的模式 | 减少时间 | 最少的培训 | 简化的SDLC | 平台支援 | 合规 | 性能与质量 |
邮政编码处理 | √ | √ | √ | √ | ||
IDE DevOps集成 | √ | √ | √ | √ | ||
更新了侦探控制 | √ | √ | √ | √ | √ | |
交钥匙侦探反应 | √ | √ | √ | √ | √ | √ |
以应用程序为中心的响应 | √ | √ | √ | |||
100%标准混淆 | √ | √ | √ | √ | ||
自动检测框架 | √ | √ | √ | √ | √ | √ |
Wizards | √ | √ | √ | √ | √ | √ |
PreEmptive已经提供了20多年的应用程序保护解决方案。RASP,模糊处理和屏蔽都是PreEmptive掌握并内置于即用型解决方案中的所有技术。100多个国家/地区的5000多家组织已经使用PreEmptive Protection产品来为其应用程序提供一层保护。
当然,你也可以阅读【防止代码被反编译,来看看都有哪些工具可以帮你】来挑选其他工具。
来源:oschina
链接:https://my.oschina.net/u/4087915/blog/4875245