成人在线你懂的-成人在线免费小视频-成人在线免费网站-成人在线免费视频观看-日韩精品国产一区二区-日韩精品国产一区

掃一掃
關注微信公眾號

淺談 DotNet 保護中字符串加密的技術
2007-03-08   賽迪網(wǎng)

學習過了名稱混淆,最近又看了一些字符串加密方面的東西。在混淆保護和加密殼中都有字符串加密保護功能。

總體上字符串加密可以分為兩類, 第一類是混淆保護中的字符串加密技術。主要特征是修改代碼執(zhí)行路徑。大部分混淆保護工具的字符串加密都是這一類。

第二類就是加密殼中的字符串加密技術。這種不用修改IL代碼,直接對元數(shù)據(jù)中的字符串加密。這一類以remotesoft,maxtocode為代表。

先看第一類,加密實現(xiàn)大致如下。

加密前:

MessageBox.Show("Hellow World!");

加密后:

MessageBox.Show(Helper.Decode("A34579dfbbeyu346563345/=="));

簡單的說就是將原來使用字符串的地方,將直接使用字符串改為間接使用字符串。在這里保護軟件將字符串 "Hellow World!" 進行加密 得到結果 "A34579dfbbeyu346563345/=="。 Helper.Decode 是保護軟件提供的一個解密函數(shù),它實現(xiàn)將 "A34579dfbbeyu346563345/==" 還原為 "Hellow World!" 。

因為是混淆保護,所以我們可以分析得到 Decode 的代碼。然后直接用這個函數(shù)的代碼寫一個小工具將程序集中所有加密的字符串都還原。生成一個字符串對應表。以方便代碼閱讀和調(diào)試。

如果再深入,可以實現(xiàn)自動將字符串還原到原程序集中。

再來看上面例子的IL代碼。

加密前:

ldstr "Hellow World!" 
call MessageBox.Show(string)

加密后:

ldstr "A34579dfbbeyu346563345/==" 
call string Helper.Decode(string) 
call MessageBox.Show(string)

怎么還原,其實很簡單,我們已經(jīng)知道了decode的代碼,而且已經(jīng)能實現(xiàn)字符串的解密了。得到了字符串的對應表。

直接將

ldstr "A34579dfbbeyu346563345/==" 
call string Helper.Decode(string)


替換為

ldstr "Hellow World"


即可。寫一個小工具使用正則表達式搜索替換就可以了。

第二類字符串加密保護:

實現(xiàn)就是直接對元數(shù)據(jù)中的String流進行加密。

這類保護有一個缺陷,程序運行后 元數(shù)據(jù)中的String流會解密后在內(nèi)存中完整還原。在我前面的文章里面有介紹元數(shù)據(jù)的dump。這里就不重復羅嗦了。

對于第一類字符串加密保護,還有其它的形式,如 Helper.Decode這個函數(shù)可以是一個native的函數(shù)?;蛘呤呛土鞒袒煜Y合。

熱詞搜索:

上一篇:失控的網(wǎng)絡
下一篇:不聲不響清理Vista操作歷史記錄

分享到: 收藏
主站蜘蛛池模板: 龙咁威| 《白狼》大结局| 陈颖芝全部的电影| 野性的呼唤巴克原版| 五年级上册书法教案| 韩国电影解禁男女| 一夜风流| 456电影网络重口味456| 士兵突击演员| 《牵牛花》阅读答案| 男同视频在线| 韵达快递收费标准| 南昌起义 电影| 我是特种兵免费观看完整版| 樱井步| 2024头像| 陈嘉男| yy五项滚刀骂人套词| 男人亲女人下面的视频| 抚养费标准一般是多少钱一个月| 大船| 姐妹微电影| 色在线视频| 媳妇的全盛时代| 乔治娅·格洛梅| 青蛙王子 电影| 邯郸学步成语故事完整版| 影库| 欲海情缘| 汤浅政明| 泰国xxx| 流行性感冒ppt课件| 最近好看电影推荐| 玻璃笼| 汉宣帝40集电视剧叫什么名| 黄视频在线网站| 繁花免费版在线观看全集国语| 大秦帝国第一部免费看| 雪肌夜叉| 杨子纯| 干了一个月的家具导购|