zoukankan      html  css  js  c++  java
  • 将文件从程序集中复原

    1、场景:

    发到客户那的程序中使用的一个C++的库需要被替换,而该库在使用了前使用了md5进行检验防止其它伪装的库将其替换,因而替换时要算目标库的

    md5,并把使用该库的另一个库也换掉。

    2、涉及技术:

    做一个离线补丁包去升级程序,并将库文件集成到其中,程序运行时再将其释放出来。

    3、解决方法:

    将目标库当成资源添加到工程中,并在需要时调用它写入文件

     1         private bool GetFileFromAssembly(String fileName, String targetFilePath)
     2         {
     3             byte[] bs = null;
     4             String fileNameWithoutExtension = fileName.Substring(0, fileName.Length - 4);
     5             MemoryStream ms = null;
     6             FileStream fs = null;
     7 
     8             try
     9             {
    10                 bs = (byte[])Properties.Resources.ResourceManager.GetObject(fileNameWithoutExtension);
    11                 ms = new MemoryStream(bs);
    12                 fs = new FileStream(targetFilePath, FileMode.Create);
    13                 ms.WriteTo(fs);
    14             }
    15             catch (System.Exception ex)
    16             {
    17                 return false;
    18             }
    19             finally
    20             {
    21                 ms.Close();
    22                 fs.Close();
    23             }
    24             return true;
    25         }

    4、相关程序:

  • 相关阅读:
    qt一些函数
    js时间字符串转时间戳
    golang学习之interface与其它类型转换
    golang学习之奇葩的time format
    windows下安装mongodb
    golang学习之struct
    golang学习之闭包
    js生成6位随机码
    golang学习之生成代码文档
    moment常用操作
  • 原文地址:https://www.cnblogs.com/hshuzhao/p/4185380.html
Copyright © 2011-2022 走看看