Net Core教程

C#语言的类型变量、反编译与代码保护

本文主要是介绍C#语言的类型变量、反编译与代码保护,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

类型和变量

  • 类型:声明可以包含其成员、基类型、它实现的接口和该类型允许的操作。 保留字:@
  • 变量:用于引用特定类型的实例的标签。
  • 值类型 和 引用类型。
    • 值类型的变量直接包含它们的数据。
    • 引用类型的变量存储对数据(称为“对象”)的引用。 对于引用类型,两个变量可以引用同一个对象。

​ 由上图的二叉树显示结构可以看出,类型包括值类型和引用类型,分别有不同的组成部分。分为基础结构类型和用户自定义结构类型;基于两种不同的结构类型,在堆栈中存储可由 下图呈现:

​ 在上图左侧的Method1 中,定义了int 值类型和class 引用类型,由于值类型存储空间小,由栈管理数据并返回变量a 一个内存地址。而引用类型class 则在栈中分配一块内存地址指向堆中的数据

​ 同样的,假设我们在Method1中,定义 class2 obj2 = obj; 这样的结构语句的情况下,栈中同样会开辟一块内存地址交由obj2 管理,但指向是和obj 同样堆中的数据Obj 对象。

IL字节代码探索

IL 汇编程序

作用:将中间语言IL编译成DLL文件

引用:Ilasm.exe(IL 汇编程序) - .NET Framework | Microsoft Docs

打开 Ilasm.exe所在位置:

操作步骤:

​ 1、将ildasm 程序查看的文件【文件】-【转储】 成IL 中间语言文件数据

​ 2、编辑ComsoleSample.il 右键打开为文本文档

​ 3、编辑需要修改的内容,并保存修改的数据信息

​ 4、在当前Il 文件所在目录,运行cmd命令,并输入执行命令:ilasm全路径 xx.il /dll /output:xx.dll

IL 反汇编程序

作用:将DLL 程序反编译成IL 中间语言

引用:Ildasm.exe(IL 反汇编程序) - .NET Framework | Microsoft Docs

打开 Ildasm.exe所在位置:

运行Ildasm.exe程序

  • 终端输入:ildasm
  • 复制文件位置,cmd 命令打开文件路径

将需要反编译成IL的dll 文件拖入运行的ildasm.exe 程序中;即可看到dll 生成的IL中间语言。

应用程序保护

Dotfuscator Community 为开发人员、架构师和测试人员提供了一系列的软件保护和强化服务。 Dotfuscator Community 中包含的 .NET 模糊处理和其他应用程序保护功能的示例有:

  • 重命名 标识符,增加对已编译程序集实施反向工程的难度。
  • 防篡改:检测已遭篡改的应用程序的执行,并终止或响应已遭篡改的会话。
  • 防调试:检测向正在运行的应用程序附加的调试器,并终止或响应已遭调试的会话。
  • 防取得 root 权限的设备:检测应用程序是否在取得 root 权限的 Android 设备上运行,并终止或响应这些设备上的会话。
  • 应用程序到期行为:对生命周期结束日期进行编码,并终止已到期的应用程序会话。

文章引用来源:Dotfuscator Community - Visual Studio (Windows) | Microsoft Docs

命令行解析 CommandLineParser

文章引用来源:Home · commandlineparser/commandline Wiki · GitHub

本文引用来源:htttp://www.xcode.me

这篇关于C#语言的类型变量、反编译与代码保护的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!