没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|行业资讯|编辑:李显亮|2019-12-11 13:37:33.150|阅读 247 次
概述:在大多数情况下,使用动态类型的应用程序在Dotfuscator保护它们之后可以正常工作。这是因为动态类型通常解析为Dotfuscator输入中不包含的程序集中定义的类(因此不进行重命名)。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
C#中的动态类型提供了其他静态类型语言无法提供的灵活性。自C#4.0(.NET 4.5)引入以来,Dotfuscator与希望了解有关混淆类型如何影响动态类型的客户进行了合作。
Dotfuscator(点击下载最新版)是一个.NET的Obfuscator。它提供企业级的应用程序保护,大大降低了盗版、知识产权盗窃和篡改的风险。Dotfuscator的分层混淆、加密、水印、自动失效、防调试、防篡改、报警和防御技术,为世界各地成千上万的应用程序提供保护。
使用动态类型时,编译器会对其成员方法(和/或属性)生成反射调用。这些反射调用使用方法名称的字符串表示形式在运行时调用该方法。混淆后,此字符串必须与方法名称匹配,以避免破坏运行时行为。
在大多数情况下,使用动态类型的应用程序在Dotfuscator保护它们之后可以正常工作。这是因为动态类型通常解析为Dotfuscator输入中不包含的程序集中定义的类(因此不进行重命名)。这包括来自第三方程序集的类型,来自非托管程序集的类型,以及内置类型-int,bool,string。另一方面,如果动态类型解析为在Dotfuscator的输入程序集中定义的类型,则需要设置Dotfuscator重命名排除项以保留那些编译器生成的反射调用。
可参考以下示例:
动态类型解析为MyClass,如我们的代码中所定义。然后,它从MyClass调用MyMethod。编译完此代码后,请注意,编译器将MyMethod的字符串表示形式加载到要通过反射加载的堆栈上。从MSIL:
如果对这些代码进行了混淆而没有重命名排除,我们将遇到运行时错误:
Unhandled Exception: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 'a.a' does not contain a definition for 'MyMethod' at CallSite.Target(Closure , CallSite , Object , String ) at System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid2[T0,T1](CallSite site, T0 arg0, T1 arg1) at a.a() in C:\SampleCode\Dynamic\Dynamic\Program.cs:line 25
为了避免此运行时错误,我从重命名中排除了“ MyMethod”。
如果我们从MyClass加载属性,则可能会应用相同的想法。在示例的其他地方,有一个动态类型可以解析为内置类型。即使在运行时在int和string之间切换,此代码也可以在没有其他Dotfuscator配置的情况下正常运行:
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
Java 开发团队常常面临测试覆盖率与开发效率的双重挑战。通过引入 AI 与自动化工具,团队不仅能减轻静态分析与单元测试的负担,还能在保障代码质量的同时提升开发节奏。本文以 Parasoft Jtest 为案例,深入探讨了当前主流的 AI 测试实践如何帮助企业实现代码级测试的优化与落地。
Sparx Systems Enterprise Architect(EA)作为一款领先的企业级建模工具,凭借其强大的四大引擎——BPSim、DMN、Open Modelica/SysML和可执行代码生成,为企业提供了从流程优化到智能决策的全方位支持。本文将深入解析这四大核心引擎如何显著提升企业建模的智能化水平和实用价值。
UI自动化测试中,团队常因语言偏好不同而协作困难,脚本复用也麻烦。从简单的录制测试升级到灵活脚本,或者搭建稳定框架,往往费时费力。TestComplete用自动化UI测试直接解决这些问题:它支持多种语言并行开发(Python, C#, C++等),让每个人用顺手的工具;还能轻松把录制脚本转换成代码,省去重写麻烦;并且自带实用框架和项目示例,开箱即用,大大加快搭建速度。
CodeRush 25.1 新推 AI 双引擎 AiGen(语音/文字生成与修改代码)和 AiFind(智能代码搜索),直接在 Visual Studio 环境中响应,免除窗口切换与手动操作,让开发者更专注核心问题。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号