强命名防止dll被篡改
今天试了下强命名是不是能够防止Dll被篡改,按照原理,如果你更改了Dll,CLR在load Dll的时候,验证是不能通过的,Dll是不会被load的。
可是实际情况not the case! 当你用Binary Editor更改了Dll, 例如改变了字符串某个字符,Dll会被load
弄了半天,原来才发现是强命名验证被.NET优化了 http://msdn.microsoft.com/zh-cn/library/cc713694.aspx 需要更改注册表选项。
----------------------Cut from MSDN---------------------
对所有应用程序禁用强名称跳过功能
On 32-bit computers, in the system registry, create a DWORD entry with a value of 0 named AllowStrongNameBypass under the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework key.
On 64-bit computers, in the system registry, create a DWORD entry with a value of 0 named AllowStrongNameBypass under the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework and HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework keys.
对单个应用程序禁用强名称跳过功能
打开或创建应用程序配置文件。
有关此文件的更多信息,请参见配置文件中的“应用程序配置文件”一节。
添加下面的项:
<configuration><runtime>< bypassTrustedAppStrongNames enabled="false" /></runtime> </configuration>
----------------------Cut end------------------
转载于:https://www.cnblogs.com/DylanWind/archive/2011/08/11/2135418.html
强命名防止dll被篡改相关推荐
- 强命名保护DLL文件
强命名保护DLL文件 Posted on 2009-03-19 14:32 花猫.NET 阅读(1390) 评论(2) 编辑 收藏 大家做项目开发一般都是分层的,比如UI层,业务层,数据访问层.业务 ...
- CLR via C# 边读边想 03 - 本地程序集和强命名程序集
Two Kinds of Assemblies, Two Kinds of Deployment CLR 支持两种类型的程序集:weakly named assemblies and strongly ...
- 共享程序集和强命名程序集(3):强命名程序集的一些作用
强命名程序集能防篡改 用私钥对程序集进行签名,并将公钥和签名嵌入程序集,CLR就可以炎症程序集未被修改或破坏.程序集安装到GAC时,系统对包含清单的那个文件的内容进行哈希处理,将Hash值与PE文件中 ...
- 所引用的程序集没有强命名解决方法
所引用的程序集没有强命名 1.打开SDK 命令提示窗口; 也就是VS2012 开发人员命令提示,一般所在目录C:\ProgramData\Microsoft \Windows\Start Menu\P ...
- 第 3 章 共享程序集和强命名程序集
3.1 节 两种程序集,两种部署 CLR 支持两种程序集:弱命名程序集(weakly named assembly,即无签名的程序集) 和 强命名程序集(strongly named assembly ...
- 公共语言运行库中的程序集-04强命名的程序集
具有强命名的程序集 强命名是由程序集的标识加上公钥和数字签名组成的.其中,程序集的标识包括简单文本名称.版本号和区域性信息(如果提供的话).强命名是使用相应的私钥,通过程序集文件(包含程序集清单的文件 ...
- 自制的 .net framework 强命名工具(支持.net4)
我们知道,以前在Windows下开发程序时常会遭遇著名的"DLL Hell"问题,即动态链接库的向后兼容问题.微软在.Net产生前曾尝试使用COM组件的方式来解决DLL Hell问 ...
- IntelE3 E5 E7 至强命名规则
随着Intel E3至强的全面发布,新一代Sandy Bridge至强将逐渐占据市场,取代上一代至强产品.那么,新一代 Sandy Bridge至强又是怎么命名的呢,我们来解析一下下面这张图表. 我们 ...
- 如何通过函数名的字符串运行函数(从dll动态库谈起,使用c++)
1.问题描述 比如现在有一个函数叫MyFunc,现在想通过函数名调用该函数,该怎么办呢? 2.概述 如果这个问题是JAVA语言,我们会很自然的想到反射来解决这个问题,但是c++中没有反射,该怎么办呢? ...
最新文章
- 在控制台打印sql语句的办法(MyBatis Log Plugin插件的安装与使用)
- python3 asyncio loop 使用线程池原理
- sql语句的一些参考
- Top-K问题与多路归并排序
- c语言中*用于指针,关于C语言中指针的理解
- mysql控制台操作
- java获取指定倒退或向前的时间工具类
- spark 存入hbase_Spark DataFrame写入HBase的常用方式
- angular2-动画
- L2-011 玩转二叉树(建树+BFS)
- Excel图表如何更改坐标轴最大值
- 克利夫顿优势识别器 Clifton Strengths
- 打飞机小游戏c++窗口实现版
- 重磅精品课程总有一门是你想要找的
- ASCII 字元表(详细讲解)
- windows安装cygwin
- 无聊写着玩:解二阶线性微分方程
- 【深度学习】为什么深度学习需要大内存?
- 整合Visual C++和WDK7:Step by step
- mysql 多表查询 优化_MySql多表查询优化
热门文章
- Python数据结构与算法(2.5)——循环链表
- java spark 环境_在 IntelliJ IDEA 中配置 Spark(Java API) 运行环境
- mysql doc插入数据_如何向MySQL数据库的表中录入数据.doc
- 什么是SQL Server TRIM()函数?
- java静态构造函数_为什么不允许使用Java静态构造函数?
- C++正则表达式创建匿名函数
- 如何才能成为高级Java开发工程师
- Linq To Sql进阶系列(二)M:M关系
- WinForm XML
- js Dom对象的属性与方法