- 博客(10)
- 收藏
- 关注
原创 .NET安全-委托
.NET委托是封装方法的对象,支持多播和异步调用。委托分为普通委托和泛型委托(Action无返回值,Func带返回值),可通过"+="添加方法。开放委托(Delegate.CreateDelegate)支持动态方法调用,适用于反射场景。委托调用时执行其包含的所有匹配签名的方法,增强了代码灵活性和复用性。
2025-10-12 15:31:21
515
原创 .NET安全-泛型
本文介绍了泛型编程的概念与应用。泛型通过"类型占位符"实现代码复用,避免类型重复声明。重点分析了类型参数约束机制,使用where子句限定参数类型范围;详细讲解了泛型方法的声明与调用方式,包括显式指定和编译器类型推断;最后演示了如何为泛型类创建扩展方法。通过自定义泛型类MyStack<T>、Holder<T>等示例,对比了传统类型声明与泛型的差异,展示了泛型在提高代码复用性和类型安全性方面的优势。
2025-10-04 14:26:47
706
原创 .NET安全-反射机制
GetMembers方法也可以不传BindingFlags标志,则默认返回的是所有公开的成员,如果要获取私有的方法,需要指定BindingFlags标志,则默认返回的是所有公开的成员,如果要获取私有的方法,需要指定BindingFlags.NonPublic。反射是.NET中的一项技术,允许程序在运行时动态地访问和操作程序集、类型和对象的信息。反射动态是创建一个类的实例有多种方式,使用Activator类动态创建一个类的实例是最常见的做法,下面以创建一个BigInteger类的实例为例,具体代码如下。
2025-09-28 16:56:38
416
原创 .NET安全-命名空间与成员封装
摘要:.NET命名空间是对基础类库进行逻辑分组的机制,如System.IO处理文件操作,System.Data处理数据库访问。Visual Studio的对象浏览器工具可查看命名空间结构。在类成员封装方面,通过属性(含Getter/Setter方法)实现数据访问控制,如Person类的Name属性。C#还支持自动属性(public string Name{get;set;}),由编译器自动生成访问方法,简化代码编写。
2025-09-24 11:18:22
336
原创 .NET安全-共享程序集
摘要:共享程序集部署在GAC(全局程序集缓存)中,通过强名称确保唯一性,包括版本号和公钥标记。与私有程序集不同,共享程序集不会被复制到应用程序目录。.NET通过codeBase和privatePath配置程序集加载路径,其中privatePath可能存在安全风险,如RCE漏洞。.NET Core仅生成.dll文件,Windows平台的可执行文件实为dotnet.exe的快捷方式。程序集包含托管模块(IL代码和元数据)、资源文件和清单,是.NET Core编译后的核心组件。
2025-09-22 12:35:00
1043
原创 .NET安全-程序集
摘要:.NET程序集是包含托管代码的二进制文件(.dll/.exe),由IL代码、元数据、清单和资源组成。IL代码需经JIT编译为机器码才能运行,与Java字节码类似。程序集清单记录了版本、依赖等关键信息。私有程序集仅限特定应用使用,不部署到全局缓存,便于灵活部署且不影响其他应用。不同语言编写的相同功能代码会生成相同IL代码,体现了.NET平台的跨语言特性。
2025-09-21 17:11:39
421
原创 .NET安全攻防基础知识-补充-下
由于即时编译面临性能损耗的问题,于是微软又提供了顶编译方式,简称Pre-JIT,在.NET Framework中使用本机图像生成器Ngen.exe将整个源代码直接转换为本地代码,这样就可以从缓存中使用本机代码,而不是调用JIT编译器。即时(JIT)编译是一种执行计算机代码的方式,在程序运行时而不是在执行之前进行编译,JIT也是CLR的一部分,编译器负责加快代码执行速度,并提供对多平台的支持,工作原理如下图所示。CIL操作码有很多,上图中使用到的操作码也是常见的,关于更多操作码的详细说明如表2-11所示。
2025-09-20 14:41:37
664
原创 .NET安全攻防基础知识-补充-上
摘要:本文详细介绍了CLR(公共语言运行时)的启动流程,分为多个阶段:首先启动错误处理、调试和分析API等功能(表2-6);接着初始化垃圾回收和AppDomain等核心功能(表2-7);最后完成EE启动并通知其他组件(表2-8)。文章还介绍了.NET基础类库(BCL)的功能和公共语言规范(CLS)的作用,通过代码示例说明了如何编写符合CLS规范的代码。CLS作为CTS的子集,确保了不同.NET语言间的互操作性,要求公开接口必须使用所有语言都支持的数据类型。
2025-09-19 13:20:48
745
原创 .NET安全攻防基础知识
本文介绍了.NET框架中的两个核心概念:公共类型系统(CTS)和公共语言运行时(CLR)。CTS定义了CLR支持的所有数据类型和编程结构,包括接口、结构、枚举、委托和类等5种常用类型。CLR是.NET的托管运行环境,负责系统调用、内存管理、程序编译等核心功能。文章详细说明了CLR的版本发展历程以及与.NET框架的对应关系,并重点分析了CLR初始化加载的复杂过程,将其分为32个关键步骤,涵盖基础设施设置、核心组件初始化等内容。这些底层机制为.NET应用程序提供了安全可靠的运行基础。
2025-09-18 16:50:33
930
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅