国产精品久久久天天影视香蕉,亚洲第一网站男人都懂,漂亮人妻洗澡被公强 日日躁,亚洲精品成人网线在线播放va

應(yīng)用文檔
應(yīng)用文檔
應(yīng)用文檔 首頁 > 應(yīng)用文檔

如何更好地提高加密狗的使用效率---加密狗使用技巧

更新時間:2019-09-26 17:17:29   點(diǎn)擊量:
簡單技巧
 
1. 賦值和判斷分開 (參考強(qiáng)度值:1)
在賦值和對值的判斷之間,可以插入很多的其他操作,讓解密者難以猜到二者之間的聯(lián)系。對于全局變量,可以在別的函數(shù)塊中做判斷。
 
2. 多次判斷值  (參考強(qiáng)度值:2)
對于一個值,可以在不同的地方做判斷,可以做很多的判斷,讓解密者難以屏蔽所有的判斷操作,而只要有一個地方判斷結(jié)果不對就可以認(rèn)為整個結(jié)果是不對的。
 
3. 多次賦值   (參考強(qiáng)度值:3)
對于一個返回值,可以多次賦值給它,可以用復(fù)雜循環(huán)來做,讓解密者無法跟蹤該值的變化。
 
4. 賦多個值   (參考強(qiáng)度值:3)
返回的結(jié)果可以賦給很多的值,讓解密者難以跟蹤所有的這些返回值。而任意一個返回值不正確,都可以認(rèn)為結(jié)果不正確。
 
5. 使用返回值   (參考強(qiáng)度值:4)
其實(shí)做判斷是一種不好的方法,容易被識破和屏蔽。直接使用結(jié)果可以更好地讓應(yīng)用軟件和加密軟件結(jié)合。如計(jì)算圓面積這樣一個函數(shù),可以把圓周率參數(shù)放到加密狗的返回值中,如果返回值不正確,圓周率肯定也不正確,程序運(yùn)行的結(jié)果也就會混亂了。
 
6. 使用加密狗中常量   (參考強(qiáng)度值:6)
在加密狗中放置一些常量,要使用時從加密狗中讀出使用。比如路徑名,文件名,一些常用數(shù)據(jù)等。
 
7. 使用解密函數(shù)的結(jié)果   (參考強(qiáng)度值:10-20)
解密函數(shù)的結(jié)果可以看成是一種可預(yù)知的返回值,隨著輸入的不同,輸出也會不同,進(jìn)行多次解密運(yùn)算,并且使用解密后的結(jié)果。
 
8. 關(guān)鍵加密點(diǎn)不要使用系統(tǒng)的比較函數(shù)進(jìn)行比較   (參考強(qiáng)度值:10-20)
不要使用字符串和加密狗中的數(shù)據(jù)進(jìn)行簡單的比較,同時最好不要使用系統(tǒng)的比較函數(shù)來進(jìn)行比較,比如 strncmp、memcmp、radom、getsystemtime、messagebox 等函數(shù),最好自己編寫比較函數(shù)。因?yàn)楹诳秃苋菀资褂渺o態(tài)反編譯工具識別出此類函數(shù)。
 
9. 盡量在加密點(diǎn)附近不要調(diào)用一些敏感的系統(tǒng)函數(shù)   (參考強(qiáng)度值:10-20)
例如:random、getsystemtime、messagebox、 exitprocess 等函數(shù)。
 
中級技巧
 
10. 隨機(jī)執(zhí)行   (參考強(qiáng)度值:10)
解密者往往是通過大工作量地跟蹤程序以發(fā)現(xiàn)加密點(diǎn)的,這需要不停地運(yùn)行程序,以發(fā)現(xiàn)規(guī)律。在程序中設(shè)置隨機(jī)量可以讓加密者糊涂。這種隨機(jī)可以是隨機(jī)對返回值進(jìn)行判斷,可以是隨機(jī)的賦值,也可以是程序隨機(jī)地執(zhí)行。
一些解密的高手可能會注意到程序執(zhí)行的隨機(jī)性,從而屏蔽 Random 函數(shù)。下面幾條技巧也用到隨機(jī)量,如果可能,可以使用自己編寫的隨機(jī)數(shù)發(fā)生器。隨機(jī)發(fā)生器的初始化可以取如系統(tǒng)時間這樣的隨機(jī)值。
 
11. 隨機(jī)讀   (參考強(qiáng)度值:15)
可以隨機(jī)地從狗中讀取一些內(nèi)容,但是除非需要,這些內(nèi)容可以不使用。地址、長度都可以是隨機(jī)的。
 
12. 隨機(jī)寫   (參考強(qiáng)度值:20)
可以隨機(jī)地向加密狗中寫入一些隨機(jī)內(nèi)容,地址、長度都可以是隨機(jī)的。但是要注意不要覆蓋加密狗中有用的內(nèi)容。較好的辦法是在加密狗中規(guī)定一個特定數(shù)據(jù)文件區(qū)域用于隨機(jī)寫,并使隨機(jī)寫的地址和長度不會越界。
 
13. 隨機(jī)寫然后讀出   (參考強(qiáng)度值:35)
這其實(shí)是上面兩個技巧的配對使用。要注意的是讀和寫要從程序的運(yùn)行邏輯上分離遠(yuǎn)一些,中間可以加入其他對加密狗的操作,這樣解密者極難看出兩者的聯(lián)系。
 
14. 隨機(jī)調(diào)用加解密函數(shù)   (參考強(qiáng)度值:35)
隨機(jī)調(diào)用加解密函數(shù)是指做加解的內(nèi)容和長度可以是隨機(jī)的。而返回的變換結(jié)果可以不使用。
 
15. 隨機(jī)加密并使用結(jié)果   (參考強(qiáng)度值:20-100)
這個技巧可能比較難于理解。使用方法是這樣的:假如我們要使用常數(shù) 1,我們可以先產(chǎn)生一個隨機(jī)內(nèi)容 A,把 A 保存起來,按照技巧 14 用 A 做一次隨機(jī)加密函數(shù)調(diào)用得到加密結(jié)果 B,再把 B 同我們要得到的常數(shù)做一次運(yùn)算,這里比如是簡單的加法,得到結(jié)果 C,那么肯定 C = B + 1,再把 C 也保存起來。在程序的另外一個地方,我們再用保存的 A 再做一次加密,加密的結(jié)果肯定與上次的 B 相同,同保存的 C 做一次反運(yùn)算(解密函數(shù)),這里是減法,會得到結(jié)果 D = C - B = 1。這時就可以使用 D 了, D 就是我們要用的常量。要注意這個技巧也是有兩部分組成,它基于以下的原理:即使加密函數(shù)的結(jié)果是不可預(yù)知的,但是兩次相同的加密結(jié)果肯定是一樣的。有人可能會覺得中間那步加密和解密是多余的,其實(shí)不然。
 
16. 使用加密狗做全局變量   (參考強(qiáng)度值:40)
可以把一些變量放在加密狗中,使用加密狗來做傳遞變量,而且這些變量還是全局的,甚至下一次運(yùn)行程序時還在。
 
17. 定時查加密狗   (參考強(qiáng)度值:40)
可以在需要加密的程序中,根據(jù)日期來判斷是否需要查加密狗。比如說,在 2003-12-26 調(diào)用某個加密接口函數(shù),然后在 2004-1-26 以后又調(diào)用某個加密接口函數(shù),或者每天的某個時間調(diào)用加密接口函數(shù)。
 
18. 加密點(diǎn)分散原則   (參考強(qiáng)度值:40)
如果開發(fā)商的軟件包括很多的模塊,比如說 exe、 dll、 ocx 等子程序,建議不要僅僅在主程序中使用加密函數(shù)或者外殼工具,最好其它的模塊也使用加密狗進(jìn)行加密。
 
19. 使用AppOnChip   (參考強(qiáng)度值:20-150)
開發(fā)商如果使用的是C++的開發(fā)語言,可以使用加密狗提供的AppOnChip功能,將程序植入到加密狗中運(yùn)行。具體使用方法請參考加密狗的AppOnChip說明。
 
 
高級技巧
 
20.在不影響程序運(yùn)行效率的情況下,盡可能做外殼加密   (參考強(qiáng)度100)
外殼加密,外殼加密,外殼加密(重要的事情說3次)。外殼加密已經(jīng)集成了上面大多數(shù)的加密技巧,并經(jīng)過多次的優(yōu)化,常見的脫殼程序很難對它完全脫殼。對于需要較高的加密強(qiáng)度又沒有很多精力來研究加密策略的用戶來講,外殼加密是一個快速有效的辦法。
 
21. 自校驗(yàn)   (參考強(qiáng)度值:20-150)
可以使用外殼加密中提供的簽名功能對被加密文件簽名,如果黑客修改了加密的文件,則獲取到的簽名結(jié)果將會和以前獲取的簽名不一致。
 
22. 多線程   (參考強(qiáng)度值:20-150)
利用高級操作系統(tǒng)的多線程技術(shù)可以很好地迷惑解密者和解密工具?;舅悸肥沁@樣的:在一個線程中對加密狗操作,在另外一個線程中判斷和使用。
 
23. 隊(duì)列   (參考強(qiáng)度值:40-60)
可以建造一個隊(duì)列以管理返回值和返回結(jié)果,管理的方法可以復(fù)雜一些,而程序的執(zhí)行是依賴于這個隊(duì)列的。當(dāng)然不用隊(duì)列而使用其他的數(shù)據(jù)結(jié)構(gòu)也是一樣的,甚至效果更好。有心的讀者可能注意到本技巧也可以和上面的技巧結(jié)合起來。一個簡單的使用隊(duì)列進(jìn)行返回值管理的例子如下圖所示:
在上圖中,有一個初始化了的隊(duì)列,共有 6 個單元,初始數(shù)據(jù)為 148888,當(dāng)發(fā)生的返回值不為 0 時,將 205429 賦給 Pin,并使隊(duì)列移動一個單元。在 Pout 處檢測被推出的數(shù)據(jù),當(dāng)為 148888 時不做動作,當(dāng)為 205429 時即認(rèn)為非法。
 
其他加密技巧
 
24. 多模塊軟件或多套軟件共用一只加密狗
開發(fā)商可以將加密狗的FeatureID(特征)系統(tǒng)合理的分配給不同的模塊或軟件使用,可以實(shí)現(xiàn)多模塊軟件或多套軟件共用一只加密狗。
 
25. 限制軟件使用次數(shù)及使用時間或某些模塊無法使用
開發(fā)商可以通過訪問加密狗中的FeatureID(特征)的屬性來方便地實(shí)現(xiàn)軟件使用次數(shù)和模塊使用期限的限制。
 
26. 遠(yuǎn)程升級更新軟件
加密軟件的運(yùn)行依賴于加密狗中的數(shù)據(jù)。軟件開發(fā)商只需提供給最終客戶更新加密狗數(shù)據(jù)升級碼,將加密狗標(biāo)志字節(jié)等內(nèi)容重新初始化,使加密狗滿足升級加密軟件的運(yùn)行條件即可,更新加密狗的代碼也可直接做在升級加密軟件中。使用相同的方式也可將試用軟件升級至完全版本,或增加最終客戶的使用次數(shù)、時間。也可將某些功能、模塊或使用次數(shù)、時間的限制取消,授權(quán)給最終客戶使用。我們提供了遠(yuǎn)程升級的解決方案,不需要用戶將加密狗寄回就能實(shí)現(xiàn)遠(yuǎn)程的更新。
 
27. 安裝加密軟件時檢查加密狗(無加密狗不能安裝)
軟件開發(fā)商在加密軟件的安裝程序中可以通過調(diào)用加密狗的模塊進(jìn)行查狗,以實(shí)現(xiàn)安裝過程中校驗(yàn)加密狗。
 
總結(jié): 在程序中綜合使用以上各種加密方法可以很好地保護(hù)您的軟件。參考強(qiáng)度值僅供參考,與使用者的具體使用方法有很大關(guān)系。事實(shí)上也并不一定要追求高強(qiáng)度值的技巧,低強(qiáng)度參考值的技巧只要使用巧妙,而且多次使用,也可以達(dá)到很好的效果。而高級的技巧一般難于實(shí)現(xiàn),使用和調(diào)試都比較困難。
本頁關(guān)鍵詞: 加密狗使用技巧
?
临江市| 唐山市| 集安市| 嵊州市| 玛多县| 长沙市| 青铜峡市| 新沂市| 安岳县| 五台县| 吴桥县| 河池市| 靖安县| 黎川县| 和政县| 满洲里市| 梅州市| 祁连县| 子洲县| 宽甸| 建瓯市| 四川省| 康定县| 常山县| 阿克陶县| 广汉市| 瓦房店市| 乌审旗| 保康县| 闸北区| 孟连| 浑源县| 柳州市| 读书| 东阳市| 天祝| 乌鲁木齐市| 普兰店市| 长泰县| 酒泉市| 汉源县|