精华内容
下载资源
问答
  • 什么是程序集? 1.程序集(assembly)是一个及一...4、在编译应用程序,所创建的CIL代码存储在一个程序集中,程序集包括可执行的应用程序文件(.exe扩展名文件)和其他应用程序使用的库(.dll扩展名文件)。 作为一个单
  • Java使用JSP和servlet的这组代码涉及创建一个动态Web应用程序,该应用程序涉及一个作为请求的前端(客户端)注册页面和一个后端数据库存储,该数据库存储由cleint提供的数据并响应前端的成功或错误,因此创建了...
  • 关于Strong Name的主题,网上已经有很多...如果就这么做了,代码中没有什么处理,可能你的程序还不够安全,因为有个Strong Name Remover可以很容易的清除你的签名,它运行起来是这样的 如果你不想让你的程序被这...

    关于Strong Name的主题,网上已经有很多这方面的介绍,你可能最熟悉的印象就是这样

    image

    大部分的情况,这样就可以了。如果代码是机密的,还可能用到Delay sign only,这就复杂一些,请查找相关资料。

    如果就这么做了,代码中没有什么处理,可能你的程序还不够安全,因为有个Strong Name Remover可以很容易的清除你的签名,它运行起来是这样的

    image

    如果你不想让你的程序被这个小程序折磨,那你应该看一下这篇文章。

    仅仅有签名还不够,你还需要在你的程序集中检测签名,而且检测到的签名只能是我自己的名字。

    请到Visual Studio Tools中找到命令行,启动它,并执行sn –Tp Application,如下图所示

    image

    它显示出了public key token,把这个记下来,稍后我的程序中要用到。再来写检测签名的代码,代码如下所示

    public static void PreInitCoreSetup()
            {
                //check singature
                bool pfWasVerified = false;
    
                string fcommon = "Flextronics.Framework.Common.dll";
                bool licensed = StrongNameSignatureVerificationEx(fcommon, true, ref pfWasVerified);
                if (!licensed)
                    throw new FatalException(Shared.LicenseExceptionError);
    }

    看这几句话,它检测传入应用程序集是否有签名,也就是否有strong name,如果没有则会抛出异常。这里用到了Native method,它的签名如下所示

    [DllImport("mscoree.dll", CharSet = CharSet.Unicode)]
            private static extern bool StrongNameSignatureVerificationEx(
                string filePath,
                bool forceVerification,
                ref bool wasVerified
            );

    继续看代码,我们不仅仅要保证程序集有签名,而且要有我自己的签名。请看下面的程序片段

    public static void EnsureAssemblyIsSigned(Assembly assembly)
    {
               if (assembly == null)
                    throw new ArgumentNullException("assembly");
    
                byte[] pubkey = assembly.GetName().GetPublicKeyToken();
                if (pubkey.Length == 0)
                    throw new ArgumentException("No public key token in assembly.");
    
                StringBuilder builder = new StringBuilder();
                foreach (byte b in pubkey)
                {
                    builder.AppendFormat("{0:x2}", b);
                }
                string pkString = builder.ToString();
              
                if(pkString != Shared.PublickKey)
                {
                    throw new FatalException(Shared.LicenseExceptionError);
                }
    }

    这几句话的意思,是获取程序集的签名,与我们自己的签名是否相符合,如果是则验证通过,否则立即终止程序执行。

    最后一句中的Shared.PublickKey,就是上面图中sn中最后一行显示的d1063c1538fcc2c8。

    启动程序调试,在Visual Studio中看到,它显示的publick key与我们用sn工具看到的是一样的。

    image

    有了这两步,不仅仅实现了验证程序集有签名,而且要有自己的签名。为什么要这样做呢,因为strong name可以被替换掉,在破解程序中,经常会用到替换strong name,比如这个程序,它可以实现替换程序集的strong name

    image

    如图所示,选择指定的程序集,再指定一个key,它就可以实现strong name的替换。自己辛苦写的程序,那么轻松的就被人破解了,你肯定很不舒服,那就请使用这篇文章中介绍给你技术,应用strong name来保护你的程序集。

     

    软件破解与保护,矛与盾的斗争,希望本文能给你带来帮助。

     

    请到epn.codeplex.com(http://epn.codeplex.com/releases/view/68647)中下载最新版的Data Loader。

    展开全文
  • C#如何实现从内存加载程序集

    千次阅读 2014-11-14 15:29:27
    首先,为了动态的在内存装载程序或程序集,我们以文件流的方式读取二进制文件,并将其以字节的形式保存在数组代码如下: //动态加载插件 String pluginFilePath = Path.GetDirectoryName(Application...

    首先,为了动态的在内存中装载程序或程序集,我们以文件流的方式读取二进制文件,并将其以字节的形式保存在数组中,代码如下:

    1. //动态加载插件 
    2.             String pluginFilePath = Path.GetDirectoryName(Application.ExecutablePath) + 
    3.                 "\\plugins\\PluginLibrary.dll"
    4.             FileStream fs = new FileStream(pluginFilePath, FileMode.Open); 
    5.             BinaryReader br = new BinaryReader(fs); 
    6.             byte bin = br.ReadBytes(Convert.ToInt32(fs.Length)); 
    7.             fs.Close(); 
    8.             br.Close(); 

    然后,利用 Assembly 类的 Load 重载方法,以数组的形式加载该程序集。代码如下:

    1. Assembly assembly = Assembly.Load(bin); 
    展开全文
  • VB笔记本-记事程序-资料保存程序,是一个字符处理程序,类似于记事本的功能,不过进行了增强和界面重新设计,用于记录一些好文、代码片段等,是工作和学习的小助手。  这个VB笔记本,记录存放在其目录下的名为...
  • 即使没有可用的源代码,您也可以使用它来编辑和调试程序集。 主要特点: 调试.NET和Unity程序集 编辑.NET和Unity程序集 浅色和深色主题 参见下文了解更多功能 二进制文件 建筑 git clone --recursive ...
  • 可以作为一个Reflector插件修改程序集的IL并保存到磁盘文件,也可以在自己的.NET程序调用进行更为灵活的.NET程序集修改。Reflexil使用的Mono.Cecil。   下面介绍在Reflector使用Reflexil插件进行反编   ...
  • .NET小笔记之程序集

    2009-08-31 12:29:00
    前面文章小笔记之——.NET Framework的内容 讲到了c#开发的程序在VS可以编译成MSIL代码,那么这些代码保存在什么地方呢?答案就是程序集中。那么程序集又是以什么形式的文件存储呢?程序集主要以.exe和.dll为后缀...
     前面文章小笔记之——.NET Framework的内容 讲到了c#开发的程序在VS中可以编译成MSIL代码,那么这些代码保存在什么地方呢?答案就是程序集中。那么程序集又是以什么形式的文件存储呢?程序集主要以.exe和.dll为后缀名的文件存储,程序集主要包括了以下的一些东西
    (1)可执行的应用程序,这类程序可直接在Windows上运行,其扩展名为.exe。
    (2)应用程序使用的库,也就是dll文件。
    (3)元信息(也称为元数据),它允许程序集进行自我描述。
    (4)可选资源,MSIL使用的其它数据,如声音文件和图片。

    转载于:https://www.cnblogs.com/zoupeiyang/archive/2009/08/31/1557171.html

    展开全文
  • 建议123:程序集不必与命名空间同名 / 296 建议124:考虑在命名空间使用复数 / 297 建议125:避免用FCL的类型名称命名自己的类型 / / 297 建议126:用名词和名词组给类型命名 / 298 建议127:用形容词组给...
  •  调试.NET Framework,.NET Core和Unity游戏程序集,无需源代码  设置断点并进入任何程序集  当地人,手表,汽车窗户  变量窗口支持将变量(例如,解密的字节数组)保存到磁盘或在十六进制编辑器(内存窗口)...

      软件功能.NET调试器一、调试器

      调试.NET Framework,.NET Core和Unity游戏程序集,无需源代码

      设置断点并进入任何程序集

      当地人,手表,汽车窗户

      变量窗口支持将变量(例如,解密的字节数组)保存到磁盘或在十六进制编辑器(内存窗口)中查看它们

      .NET调试器对象IDq2315702359

      可以同时调试多个进程

      打破模块负载

      .NET调试器跟踪点和条件断点

      .NET调试器导出/导入断点和跟踪点

      .NET调试器调用堆栈,线程,模块,进程窗口

      打破抛出异常(第一次机会)

      变量窗口支持评估C#/ Visual Basic表达式

      可以调试动态模块(但由于CLR限制,不是动态方法)

      输出窗口记录各种调试事件,默认情况下显示时间戳:)

      可以调试在运行时解密自己的程序集,dnSpy将使用内存中的映像。您还可以强制dnSpy始终使用内存中的映像而不是磁盘文件。

      .NET调试器公共API,您可以编写扩展或使用C#Interactive窗口来控制调试器

      .NET调试器二、装配编辑

      可以编辑所有元数据

      使用IntelliSense在C#或Visual Basic中编辑方法和类,不需要源代码

      在C#或Visual Basic中添加新方法,类或成员

      用于低级IL方法体编辑的IL编辑器

      可以编辑低级元数据表。这在内部使用十六进制编辑器。

      .NET调试器三、Hex编辑器

      单击反编译代码中的地址,转到十六进制编辑器中的IL代码

      反过来,在十六进制编辑器中的IL主体中按F12转到反编译代码或位的其他高级表示。很高兴找到补丁修改的语句。

      重点介绍.NET元数据结构和PE结构

      工具提示显示有关所选.NET元数据/ PE字段的更多信息

      转到位置,文件,RVA

      转到.NET元数据标记,方法体,#Blob / #Strings / #US堆偏移或#GUID堆索引

      按照参考(Ctrl + F12)

      .NET调试器四、其他

      BAML反编译器

      .NET调试器蓝色,浅色和深色主题(以及深色高对比度主题)

      书签

      C#Interactive窗口可用于脚本dnSpy

      搜索类,方法,字符串等的程序集

      分析类和方法用法,查找调用者等

      多个选项卡和选项卡组

      引用被突出显示,使用Tab / Shift + Tab移动到下一个引用

      转到入口点和模块初始化程序命令

      转到元数据标记或元数据行命令

      代码工具提示(C#和Visual Basic)

      .NET调试器导出到项目

      dnSpy使用的其他开源库列表

      ILSpy反编译器引擎(C#和Visual Basic反编译器)

      Roslyn(C#和Visual Basic编译器)

      dnlib(.NET元数据读取器/写入器,也可以读取混淆的程序集)

      VS MEF(更快的MEF等于更快的启动)

      ClrMD(访问CorDebug API未提供的较低级调试信息)

    展开全文
  • System.Reflection 命名空间:包含通过检查托管代码中程序集、模块、成员、参数和其他实体的元数据来检索其相关信息的类型。 Assembly 类:表示一个程序集,它是一个可重用、无版本冲突并且可自我描述的公共语言...
  • System.Reflection 命名空间:包含通过检查托管代码中程序集、模块、成员、参数和其他实体的元数据来检索其相关信息的类型。 Assembly 类:表示一个程序集,它是一个可重用、无版本冲突并且可自我描述的公共语言...
  • System.Reflection 命名空间:包含通过检查托管代码中程序集、模块、成员、参数和其他实体的元数据来检索其相关信息的类型。 Assembly 类:表示一个程序集,它是一个可重用、无版本冲突并且可自我描述的公共语言...
  • 这里我们以一个完整的范例来讲解外部程序集在标签解析引擎的用法。  (关于程序方面的知识,超出了本文所讲授的范围。下面的内容以C#讲授,如不能理解代码可参考《C#入门经典》一书)  开启Visual Studio新建一...
  • 您可以通过从计算机指定适当的文件或使用“从GAC打开”选项打开程序集,该选项为您提供全局程序集缓存可用的条目列表。 4、.NET程序集的可靠反向工程工具 所有考虑的事情,dnSpy是一个方便的应用程序,使您能够以...
  • Java聊天室程序(源代码

    千次下载 热门讨论 2010-01-05 22:20:32
    当用户发送聊天信息时,服务端将会收到客户端用Socket传输过来的聊天信息对象,然后将其强制转换为Chat对象,并将本次用户的聊天信息对象添加到聊天对象Message,以供所有聊天用户访问。 接收用户的聊天信息是由...
  • 在跑通了官网的mnist和cifar10数据之后,笔者尝试着制作自己的数据,并保存,读入,显示。 TensorFlow可以支持cifar10的数据格式, 也提供了标准的TFRecord 格式,而关于 tensorflow 读取数据, 官网提供了3方法...
  • 工作发现一个公共组件...刚好负责的同事请假不在,尝试了iLSpy反编译方法后,最后决定使用Mono.Cecil直接修改现成的程序集dll解决。 示例代码如下: class Program { static void Main(string[] args) { ...
  • 本节书摘来自华章出版社《编写高质量代码:改善Objective-C程序的61个建议》一 书中的第2章,作者...虽然可以使用C语言数组来保存标值的集合,甚至是对象指针,但是在Objective-C代码中,大多数集合是Cocoa和Cocoa T...
  • vc源代码合集0951.rar

    热门讨论 2012-06-13 10:25:18
    2012-06-12 12:21 1,267 [自毁程序]源代码.txt 2012-06-12 12:25 1,826,678 《Keil Software –Cx51 编译器用户手册 中文完整版》(403页).pdf 2012-06-12 12:58 24,097 《黑客攻击手段之偷梁换柱》配套源代码.zip ...
  • 截屏完毕,可打印,可保存为指定格式,可显示图片信息,代码可在delphi7直接编译成功。源代码完整,程序功能虽然还有不完善的地方,但如果对抓图截屏功能不熟悉的朋友,本源码可作为你一个很好的范例参考。
  • 这些代码其中一些是根据原模型代码写的,我现在不知道到底哪里出了问题,每次运行这段程序出现的结果都并不一样,我不知道是不是我保存的模型有问题,下面贴出我保存模型的几句代码 ``` saver = tf.train....
  • TensorFlow(二)制作自己的TFRecord数据 读取、显示及代码详解:在跑通了官网的mnist和cifar10数据之后,笔者尝试着制作自己的数据,并保存,读入,显示。 TensorFlow可以支持cifar10的数据格式, 也提供了标准...
  • javascript 高级程序设计 第二版 中文版 含源代码

    千次下载 热门讨论 2011-03-25 09:50:23
    15.1.4 dom3级加载和保存 404 15.1.5 ie对xml的支持 409 15.1.6 跨浏览器处理xml 412 15.2 浏览器对xpath的支持 414 15.2.1 dom3级xpath 414 15.2.2 ie的xpath 418 15.2.3 跨浏览器使用xpath 419 15.3 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 692
精华内容 276
关键字:

代码中保存程序集