2018 2 13 C 動態載入解除安裝 DLL

2022-01-14 04:03:59 字數 1132 閱讀 5263

title

author

date

createtime

categories

c# 動態載入解除安裝 dll

lindexi

2018-2-13 17:23:3 +0800

2018-2-13 17:23:3 +0800

c#我最近做的軟體,需要檢測dll或exe是否混淆,需要反射獲得類名,這時發現,c#可以載入dll,但不能解除安裝dll。於是在網上找到乙個方法,可以動態載入dll,不使用時可以解除安裝。

我在寫乙個wpf 程式,發現可以通過assembly.load載入 dll,但是如何解除安裝dll?下面就來說下如何解除安裝。

看到assembly.load是把 dll 載入到當前程式集,這句話,我就想到了我們的主程式集和當前的不同,那麼可以載入到當前不會影響主程式。那麼如何新建乙個程式集?他是否可以解除安裝,答案是可以的。

internal

class

}var

proxy

=假如是從 檔案載入,可以使用 loadfile

varassembly

=assembly.loadfile(file.fullname);

assembly 可以獲得所有的類和方法。

首先我們使用assembly.loadfile(file)載入,再用反射獲得當前程式集,然後獲取他的所有 type ,當然我們是知道載入的 file 包含的 type,一會可以驗證使用已經載入他。

system.reflection.assembly.loadfile(file);

foreach (var

assembly

in

可以看到 file 包含的 type 在主程式。

const

string

="confusechecker"

; var

= var

proxy

= proxy.dosomething(new

fileinfo(file));

這時可以看到,我們的主程式沒有包含 file 的 type 。

2018 2 13 C 動態載入解除安裝 DLL

title author date createtime categories c 動態載入解除安裝 dll lindexi 2018 2 13 17 23 3 0800 2018 2 13 17 23 3 0800 c 我最近做的軟體,需要檢測dll或exe是否混淆,需要反射獲得類名,這時發現,c...

2018 2 13 C 搜尋演算法

title author date createtime categories c 搜尋演算法 lindexi 2018 2 13 17 23 3 0800 2018 2 13 17 23 3 0800 c 本文主要講c 搜尋演算法。這演算法是乙個模糊的演算法,用在使用者在找乙個他不確定的文字。判斷...

2018 2 13 C 獲得裝置usb資訊

title author date createtime categories c 獲得裝置usb資訊 lindexi 2018 2 13 17 23 3 0800 2018 2 13 17 23 3 0800 c 需要在專案右擊引用,點選程式集,搜尋 system.management 然後安裝他...