如何提取全局应用程序集中的dll
GAC路径:C:\WINDOWS\assembly

在资源管理器中打开这个路径看到的东西不能复制,右键中也只有 “卸载” 和 “属性” 两个菜单。

在命令提示符下切换到 C:\WINDOWS\assembly 目录,使用 Copy命令会报找不到文件。

从网上找到了一个方法:

Subst b: %windir%\assembly

执行完后,会发现硬盘分区多了个B盘,打开后看到了所有assembly下的DLL,于是在这里就搜到了Microsoft.ReportViewer.ProcessingObjectModel.dll,将其复制出来。

然后,这个虚拟的B分区不再需要,于是执行以下命令将其删除:

Subst b: /d

只要是在这台机器上安装了的DLL或在assembly中可以看到的都是可以用上面的办法拿出来的。

Subst 命令的描述如下:

subst
[编辑本段]
DOS命令;
subst:路径替换 ,将路径与驱动器号关联,就是把一个目录当作一个磁盘驱动器来看,不过不能格式化;

命令介绍
[编辑本段]
Subst是DOS下的一个优秀的命令,它的可执行文件Subst.exe在C \Windows\Command文件夹下,
其正规的中文名称应该是“给目录赋驱动器符命令”。
它的功能是以磁盘驱动器符代替路径名称,以使驱动器符与指定的子目录路径等效。
其命令格式很简单:Subst Drive1 Drive2 Path ,
其中“Drive1”是指定替代磁盘路径的虚拟的新驱动器符,
“Drive2 Path”是指定所要替代的文件夹及其路径。
用户可以利用它将任意目录虚拟成一个磁盘驱动器,
如果用户需要删除虚拟的盘符,可以执行SubstDrive1 /D命令。
同时,并非所有的程序都可以正确使用Subst命令所生成的驱动器符,
比如Format、Sys、Fdisk等一些如今还常用的命令,这些命令必须使用真实的驱动器,
它们拒绝对Subst虚拟的驱动器进行操作。对于网络磁盘驱动器,Subst命令也是无能为力的。

用法格式
[编辑本段]
一、subst [盘符] [路径]  将指定的路径替代盘符,该路径将作为驱动器使用  
二、subst /b 解除替代

[例子] C:\DOS>subst a: c:\temp 用c盘temp目录替代a盘
   C:\>subst a: /d  解除替代

SUBST [drive1: [drive2:]path]
SUBST drive1: /D
drive1: 指定要指派路径的虚拟驱动器。
[drive2:]path 指定物理驱动器和要指派给虚拟驱动器的路径。
/D 删除被替换的 (虚拟) 驱动器。
不加任何参数键入 SUBST,可以显示当前虚拟驱动器的清单。

高级使用技巧
[编辑本段]
初步了解了Subst命令的用途及用法,不妨再看看它的一些高级使用技巧:
1.隐藏驱动器Subst的看家本领是虚拟磁盘驱动器符,虽然微软建议用户采用没有使用的盘符进行虚拟,但并不表示它不能虚拟已经存在的盘符,比如A盘、C盘等。于是用户可以通过Subst命令虚拟A、C等盘符,直接覆盖这些已经存在的盘符,使他人无法看到该盘的真正内容,以达到隐藏真实驱动器的目的。例如,用户先在D盘根目录下创建一个名为“Aaa”的文件夹,最好将文件夹的属性设置为“只读”和“隐藏”。然后在C盘根目录下打开“Autoexec.bat”文件,加入以下代码:@EchoOffC \Windows\Command\SubstA D \Aaa这样每次在系统启动后软盘的图标就变为硬盘的样子,其中的内容也变了,从而实现偷梁换柱的目的。需要还原的时候,只需在MS-DOS方式下,运行“SubstA /D”就行了。
2.特殊软件的安装有少数软件在安装时会提示需要从A盘中提取安装信息,这时难道只有将文件拷贝到软盘后再安装吗?完全没有这个必要,Subst命令可以“欺骗”这些需要用软盘安装的软件。用户把软盘中的文件全部拷贝到硬盘上的任意文件夹中,再将该文件夹用Subst命令虚拟成A盘后,即可顺利安装。
3.模拟光盘自动运行目前大部分多媒体光盘都带有一个自动运行命令,方便了用户的使用。然而若将光盘上的所有内容全盘拷贝到硬盘上就不能正常运行。这时,用户可以将放置光盘内容的文件夹虚拟成光盘驱动器(SubstF D \Guangpan,假设F 为光驱),则软件能正常运行。

提取全局应用程序集中的dll的更多相关文章

  1. WPF 10天修炼 第三天- Application全局应用程序类

    Application对象 当一个WPF应用程序启动时,首先会实例化一个全局唯一的Application对象,类似于WinForm下的Application类,用于控制整个应用程序,该类将用于追踪应用 ...

  2. 将halcon导出的c++程序打包成dll库

     1.从“文件”菜单中,选择“新建”,然后选择“项目…”. 2.从“项目类型”窗格中选择“Visual C++”下的“Win32”. 3.从“模板”窗格中,选择“Win32 控制台应用程序”. 4.为 ...

  3. ocx文件转换成C#程序引用的DLL

    将ocx文件转换成C#程序引用的DLL文件的办法  将ocx文件转换成C#程序引用的DLL文件的办法,需要的朋友可以参考一下  1.打开VS2008或VS2010命令提示符(此例用VS2008) 将o ...

  4. 利用OllyDebug查看程序调用的dll模块

    最近在做一个Qt项目,在产品发布的时候一直为找不到程序到底缺少了哪些dll组件而困扰.具体问题是,在我的项目中使用到了QMediaPlayer播放一段音频文件,我使用的开发环境的Win7 32位,而在 ...

  5. 让VC编译出来的程序不依赖于msvcr80.dll/msvcr90.dll/msvcr100.dll等文件

    ---转载:http://hi.baidu.com/liu_haitao/item/e2157ac3a3c32a0bc610b253 让VC编译出来的程序不依赖于msvcr80.dll/msvcr90 ...

  6. (二)一个工作任务引起的乱战——C++程序编译为dll,让C#调用

    C++程序编译为C#可调用的dll的过程: 1.新建一个Win32 Console Application 项目,项目名为:DLLDemo,下一步选择Application type为DLL; 2.在 ...

  7. 全局应用程序类(Global.asax)

     注:该部分参考的园区的“积少成多”的 <ASP.NET MVC中的Global.asax文件> . 1.Global.asax文件介绍 global.asax这个文件包含全局应用程序事件 ...

  8. 2017.10.29 C/C++/C#程序如何打成DLL动态库

    C/C++程序如何打成DLL动态库: **1.在VS中新建main.h,添加如下内容:** extern "C" _declspec(dllexport) int onLoad() ...

  9. C/C++/C#程序如何打成DLL动态库

    C/C++程序如何打成DLL动态库:1.在VS中新建main.h,添加如下内容:extern "C" _declspec(dllexport) int onLoad(); 2.新建 ...

随机推荐

  1. PJzhang:ping命令的基本用法

    猫宁!!! 参考链接:https://www.cnblogs.com/diantong/p/9626751.html http://aiezu.com/article/linux_ping_comma ...

  2. CentOS下Subversion(SVN)的快速安装与配置

    如果你是一个软件开发者,你一定对Subversion不会感到陌生.Subversion是一个自由开源的版本控制系统.在Subversion管理下,文件和目录可以超越时空.Subversion将文件存放 ...

  3. 二 MyBatis 从入门到进阶 2 Maven 入门

    1 Maven 的使用 1.1 本地仓库与中央仓库 本地仓库:Window \ Preferences \ Maven \ User Settings \ Local Repository 中央仓库: ...

  4. 应用安全 - 工具|框架 - Java - Jenkins - 漏洞 - 汇总

    未授权访问 /script /manage/asynchPeople//config.xml CVE-2015-8103 Date 2015.11 类型反序列化导致远程命令执行 影响范围Jenkins ...

  5. gulp时发生错误---------const { Math, Object } = primordials;

    [问题描述] 执行完npm install后,对前台页面进行gulp操作时,报如下错误: const { Math, Object } = primordials; [错误日志] ***@**** M ...

  6. Asteroid Collision

    We are given an array asteroids of integers representing asteroids in a row. For each asteroid, the ...

  7. reids集群状态正常redis.clients.jedis.exceptions.JedisNoReachableClusterNodeException: No reachable node in cluster

    重新启动redis集群时启动失败,报错: redis.clients.jedis.exceptions.JedisNoReachableClusterNodeException: No reachab ...

  8. Entity Framework常用方法及案例

    ⒈Skip(int count) 说明:跳过集合的前n个元素:延迟.即我们跳过给定的数目返回后面的结果集. ⒉Take(int count) 说明:获取集合的前n个元素:延迟.即只返回限定数量的结果集 ...

  9. Hive 教程(二)-认知hive

    在大数据领域,hive 的位置非常重要,排名前三的大数据工具为 spark.hive.kafka 什么是hive 在大数据领域有 3 种需求场景:传输.存储.计算: hive 是一个处理海量的结构化数 ...

  10. Codeforces 1196E. Connected Component on a Chessboard

    传送门 注意到棋盘可以看成无限大的,那么只要考虑如何构造一个尽可能合法的情况 不妨假设需要的白色格子比黑色格子少 那么容易发现最好的情况之一就是白色排一排然后中间黑的先连起来,剩下黑色的再全部填白色周 ...