查看: 1347|回复: 5
收起左侧

[求助] 求教编程高手

[复制链接]
Johnny.R
发表于 2010-12-26 14:43:55 | 显示全部楼层 |阅读模式
本帖最后由 Johnny.R 于 2010-12-26 14:44 编辑

朋友突然问我的
RT 一个程序a.exe若要运行必须调用到b.dll  可b.dll需要的程序集比a.exe低一个版本,这种情况下如何实现程序集私有化

我知道如果使用共有程序集,系统会通过policy文件跳转,网上的很多文章说如果要实现程序集私有化必须程序集与程序所需的版本一样

小弟对编程略懂皮毛,朋友他对这个很好奇,我本人打算年后开始学习C语言,望各位大大能说的明白些
xyq.dell.com
发表于 2010-12-26 15:35:42 | 显示全部楼层
帮顶。
lixun12358
发表于 2010-12-26 15:55:16 | 显示全部楼层
dll可以动态调用或静态调用,没有什么程序集的问题,程序集是什么???
snyzaa
发表于 2010-12-26 19:28:00 | 显示全部楼层
本帖最后由 snyzaa 于 2010-12-26 19:30 编辑

不太懂你的意思
程序集 是指.NET里的程序集吗?
你所说的“b.dll需要的程序集比a.exe低一个版本”是什么意思?我理解的是:
有一个程序集c,它有c1 和 一个更高版本c2,并且c2不兼容c1
b.dll引用了c1
a.exe 引用了b.dll 和 c2
然后你要把c1、c2、b.dll 和 a.exe放在一起

这时候,你可以先对c签名
然后在应用程序配置文件里面指定c1的基本代码:
    <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="c"   publicKeyToken="b4d8ba656087793e/> <!--这里换成你的公钥-->                  <codeBase version="1.0.0.0" href="c1.dll"/>
                  <codeBase version="2.0.0.0" href="c2.dll"/>

         </dependentAssembly>
      </assemblyBinding>
    </runtime>


Johnny.R
 楼主| 发表于 2010-12-27 17:48:12 | 显示全部楼层
回复 4楼 snyzaa 的帖子

这么说吧
这个程序早期有个版本a.exe和b.dll,所需的运行库版本一样,或来微软发现该运行库中c.dll有个漏洞能被黑客利用,就更新了运行库,可该作者很懒在更新程序版本时直接套用了旧版的b.dll,只更新了a.exe  该程序是C语言编写
wulongxiang2009
发表于 2010-12-28 18:44:06 | 显示全部楼层
站里高手如云,编的工具也很多,可就是很少有人提起程序的源码,所以楼主换个论坛问问,没办法高手们都潜水了啊
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-12-25 11:00 , Processed in 0.116238 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表