版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
.NET程序的代碼混淆、加殼與脫殼通常我們通過代碼混淆、加密的形式達到軟件保護的目的。在Web開發(fā)里我們接觸過的可能就是JS代碼加密了,可以通過對JS代碼進行混淆、加密從而實現(xiàn)對核心JS代碼的保護。如果沒有接觸過的可以在這里簡單了解一下,這次我們就不去細說了。在以前Win32的軟件中,加殼脫殼的技術(shù)已經(jīng)發(fā)展的非常成熟,國內(nèi)有大名鼎鼎的看雪、吾愛破解等論壇,三四年前還在上學(xué)時,論壇里的大牛一直都是自己的偶像。而.NET程序因為編譯結(jié)果不是機器代碼語言,而是IL語言,所以加殼脫殼相關(guān)的軟件還不是很多,我搜索到了一些,如VS自帶的DotFuscator、.NETReactor、xeoncode等,這次我們就簡單介紹下手邊有的.NETReactor。1.代碼混淆代碼混淆主要通過一些名稱替換、移位、流程混淆的方式來實現(xiàn)。先來看一個測試的DEMO程序,很簡單的一個Winform程序,實例化窗體時實例化一個User類,點擊按鈕顯示用戶名,這樣也可以測試加密、加殼后程序是否能夠繼續(xù)運行。
1
using
System;
2
using
System.Windows.Forms;
3
4
namespace
CodeObfuscator
5
{
6
public
partial
class
Form1
:
Form
7
{
8
private
readonly
User
_currentUser;
9
public
Form1()
10
{
11
InitializeComponent();
12
_currentUser
=
new
User
13
{
14
UserID
=
1,
15
UserName
=
"Parry@cnblogs"
16
};
17
}
18
19
private
void
ButtonAlertClick(object
sender,
EventArgs
e)
20
{
21
MessageBox.Show(_currentUser.UserName);
22
}
23
}
24
25
public
class
User
26
{
27
public
int
UserID
{
get;
set;
}
28
public
string
UserName
{
get;
set;
}
29
}
30
}我們使用最常用的反編譯工具Reflector對生成的exe反編譯查看源碼。下面我們打開.NETReactor進行代碼混淆,載入exe后,在一般設(shè)置里可以設(shè)置壓縮選項,不過設(shè)置后程序初始化速度會變慢,是因為需要將代碼解壓縮后再加載到內(nèi)存中。在混淆選項里將Enable設(shè)置為啟用,混淆公共類型,字符串加密等常用的也設(shè)置成啟用。其他的選項Tips里都有詳細的解釋,就不一一講解。
當(dāng)我們再使用Reflector反編譯查看時,發(fā)現(xiàn)沒有看到混淆后的代碼,而是看到了這個結(jié)果。猜想應(yīng)該是.NETReactor程序?qū)xe進行處理后打了個包,我們使用查殼工具查看后發(fā)現(xiàn)果然是這樣,外面套了一層Delphi的東西,這個還不是殼,只是一些額外數(shù)據(jù)。關(guān)于Overlay相關(guān)內(nèi)容可以查看這里。2.加殼與脫殼加殼實際上就是一種加密方式,被加殼的程序在運行前要先運行一段附加指令,這段附加的指令完成相關(guān)操作后會啟動主程序,程序就像被包在一個殼里一樣,加殼的技術(shù)在病毒編寫的時候也被大量使用。我們使用北斗加殼程序?qū)ι厦娴膃xe加殼后,再來反編譯看一看。反編譯后我們已經(jīng)找不到之前程序任何相關(guān)名稱、代碼,完全被一個“殼子”包裹了起來,在程序運行時,程序?qū)⑾冗\行我們反編譯看到的main函數(shù)進行一系列的解壓、解密動作后將代碼加載到內(nèi)存中運行原始的程序,這樣就實現(xiàn)了對程序的保護功能。脫殼就是對程序進行解壓縮、解密,將外面的一層殼脫去后,繼續(xù)進行逆向工程進行破解。
而關(guān)于脫殼,本人也是略知皮毛,不敢胡亂賣弄,感興趣的可以去論壇里學(xué)習(xí)相關(guān)知識。這里介紹的混淆、加殼的方法也只是為了在需要對自己的程序進行保護時的一種方法。覺得文章還行的話就推薦下吧,哈哈。
作者:Parry
出處:/parry/
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。分類:
03.Sugars,
04..NET標簽:
.NET,
安全綠色通道:
好文要頂
關(guān)注我
收藏該文與我聯(lián)系
Parry
關(guān)注-16
粉絲-171榮譽:推薦博客+加關(guān)注180(請您對文章做出評價)?
上一篇:\o"發(fā)布于2012-11-0917:10"ASP.NETWebAPI(二):安全驗證之使用HTTP基本認證
?
下一篇:\o"發(fā)布于2012-12-0418:37"小心DataContractJsonSerializer和JavaScriptSerializer的內(nèi)部實現(xiàn)差異posted@
2012-11-1417:18
Parry
閱讀(8765)評論(25)
編輯
收藏評論
#1樓
2012-11-1417:31
|
Quella
\o"發(fā)送站內(nèi)短消息"
如果混淆,那就沒辦法看到原來的代碼。。。支持(0)反對(0)
#2樓[樓主]
2012-11-1417:42
|
Parry
\o"發(fā)送站內(nèi)短消息"
\o"查看所回復(fù)的評論"@Quella
\o"查看引用原文"引用如果混淆,那就沒辦法看到原來的代碼。。。
是,只是進行了混淆而已,一些邏輯還是能看出來的。支持(0)反對(0)
#3樓
2012-11-1417:44
|
sunriseyuen
\o"發(fā)送站內(nèi)短消息"
\o"查看所回復(fù)的評論"@Parry
\o"查看引用原文"引用@Quella
引用引用如果混淆,那就沒辦法看到原來的代碼。。。
是,只是進行了混淆而已,一些邏輯還是能看出來的。
代碼多了,看到你不想看了.支持(0)反對(0)
#4樓[樓主]
2012-11-1417:50
|
Parry
\o"發(fā)送站內(nèi)短消息"
\o"查看所回復(fù)的評論"@sunriseyuen
\o"查看引用原文"引用@Parry
引用引用@Quella
引用引用如果混淆,那就沒辦法看到原來的代碼。。。
是,只是進行了混淆而已,一些邏輯還是能看出來的。
代碼多了,看到你不想看了.
但是如果價值很高的話,哈哈!支持(0)反對(0)
#5樓
2012-11-1419:34
|
James-yu
\o"發(fā)送站內(nèi)短消息"
DLL混淆后啥效果?支持(0)反對(0)
#6樓
2012-11-1420:17
|
幻元素
\o"發(fā)送站內(nèi)短消息"
使用了.NETReactor之后,序列化等用到元數(shù)據(jù)的功能就用不了了,不知有沒有什么解決方法.支持(0)反對(0)
#7樓[樓主]
2012-11-1420:41
|
Parry
\o"發(fā)送站內(nèi)短消息"
\o"查看所回復(fù)的評論"@James-yu
\o"查看引用原文"引用DLL混淆后啥效果?
效果是一樣的支持(0)反對(0)
#8樓[樓主]
2012-11-1420:44
|
Parry
\o"發(fā)送站內(nèi)短消息"
\o"查看所回復(fù)的評論"@幻元素
\o"查看引用原文"引用使用了.NETReactor之后,序列化等用到元數(shù)據(jù)的功能就用不了了,不知有沒有什么解決方法.
還真沒試過,我去看看:-)支持(0)反對(0)
#9樓
2012-11-1420:48
|
rsync
\o"發(fā)送站內(nèi)短消息"
這些混淆沒太大作用。人家直接到處IL,然后修改IL。之后重新build一份就解決問題了。支持(0)反對(0)
#10樓[樓主]
2012-11-1421:41
|
Parry
\o"發(fā)送站內(nèi)短消息"
\o"查看所回復(fù)的評論"@imfunny
\o"查看引用原文"引用這些混淆沒太大作用。人家直接到處IL,然后修改IL。之后重新build一份就解決問題了。
你用這種方法試試看能不能看到IL哦支持(0)反對(0)
#11樓
2012-11-1421:44
|
rsync
\o"發(fā)送站內(nèi)短消息"
\o"查看所回復(fù)的評論"@Parry
混淆的是可以看到的。我確定。。加殼的不能夠。但是加殼的不一定能夠運行,也不能夠被引用撒的。
用vs帶的ildasm看下就知道了。
至于代碼呢,誰愛看就誰誰拿去的,混淆沒什么意義。支持(0)反對(0)
#12樓
2012-11-1422:17
|
daconglee
\o"發(fā)送站內(nèi)短消息"
至于代碼呢,誰愛看就誰誰拿去的,混淆沒什么意義支持(1)反對(0)
#13樓
2012-11-1422:33
|
LineZero
\o"發(fā)送站內(nèi)短消息"
文章不錯,支持一下支持(0)反對(0)
#14樓
2012-11-1500:27
|
gongji
\o"發(fā)送站內(nèi)短消息"
aspack支持(0)反對(0)
#15樓
2012-11-1507:25
|
liuyilin888
\o"發(fā)送站內(nèi)短消息"
皮毛而已支持(0)反對(0)
#16樓[樓主]
2012-11-1509:45
|
Parry
\o"發(fā)送站內(nèi)短消息"
\o"查看所回復(fù)的評論"@liuyilin888
\o"查看引用原文"引用皮毛而已
恩水平一般脫殼的部分還等大牛們來寫
我再學(xué)習(xí)學(xué)習(xí)哈哈支持(0)反對(0)
#17樓[樓主]
2012-11-1512:09
|
Parry
\o"發(fā)送站內(nèi)短消息"
\o"查看所回復(fù)的評論"@imfunny
一般的混淆是可以的
但是使用上面的.NETReactor混淆后是看不到的,需要脫殼后才能看到。
至于混淆的意義主要看不同的需求了,就想js混淆一樣。支持(0)反對(0)
#18樓
2012-11-1514:07
|
eflay
\o"發(fā)送站內(nèi)短消息"
再保護也比c++的保護好破的多,所以一般最多加個變量名混淆,否則反倒破壞很多東西,降低執(zhí)行效率。。支持(0)反對(0)
#19樓
2012-11-1516:30
|
6572789
\o"發(fā)送站內(nèi)短消息"
混淆后,代碼慢不慢,并且會不會爆病毒錯誤支持(0)反對(0)
#20樓
2012-11-1518:56
|
為樂而來
\o"發(fā)送站內(nèi)短消息"
這個一定要學(xué)習(xí)。只有winform能這樣做嗎。webform行不行啊支持(0)反對(0)
#21樓
2012-11-1522:29
|
鵬程一鍵財務(wù)分析軟件Clojure+Logic+R+C#
\o"發(fā)送站內(nèi)短消息"
使用scala,clojure,等罕用的平臺語言,編譯后相當(dāng)于進行了一次流程混淆,再用混淆軟件混淆一下,效果應(yīng)還可以的。支持(0)反對(0)
HYPERLINK"/parry/archive/2012/11/14/Dot_NET_Co
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版文化藝術(shù)節(jié)專用舞臺搭建與施工承包合同3篇
- 二零二五年度塔吊安全監(jiān)控安裝施工勞務(wù)分包合同
- 二零二五年度房產(chǎn)買賣合同關(guān)于房屋附屬設(shè)施使用協(xié)議4篇
- 口腔科2025年度公益活動策劃與執(zhí)行合同3篇
- 二零二五年度土地儲備與交易居間合同
- 2025年度消防器材租賃與維修專業(yè)承包服務(wù)協(xié)議3篇
- 2025年度臨時倉儲倉儲貨物保險及理賠合同
- 2025年度牧草種植與農(nóng)業(yè)科技研發(fā)合同范本4篇
- 2024維修電器合同
- 2025年度配電箱模塊化設(shè)計與制造合同4篇
- 洗浴部前臺收銀員崗位職責(zé)
- 2024年輔警考試公基常識300題(附解析)
- GB/T 43650-2024野生動物及其制品DNA物種鑒定技術(shù)規(guī)程
- 暴發(fā)性心肌炎查房
- 口腔醫(yī)學(xué)中的人工智能應(yīng)用培訓(xùn)課件
- 工程質(zhì)保金返還審批單
- 【可行性報告】2023年電動自行車項目可行性研究分析報告
- 五月天歌詞全集
- 商品退換貨申請表模板
- 實習(xí)單位鑒定表(模板)
- 數(shù)字媒體應(yīng)用技術(shù)專業(yè)調(diào)研方案
評論
0/150
提交評論