❶ 各位大俠upx加殼的原理是什麼啊!不勝感激
upx加殼原理
upx的功能有兩種描述。一種叫做給程序加殼,另一種叫壓縮程序。其實這兩種表述都是正確的,只是從不同的
角度 對upx的描述。
upx的工作原理其實是這樣的:首先將程序壓縮。所謂的壓縮包括兩方面,一方面在程序的開頭或者其他合適的
地方 插入一段代碼,另一方面是將程序的其他地方做壓縮。壓縮也可以叫做加密,因為壓縮後的程序比較難看
懂,主要是 和原來的代碼有很大的不同。最大的表現也就是他的主要作用就是程序本身變小了。變小之後的程
序在傳輸方面有很 大的優勢。其次就是在程序執行時,實時的對程序解壓縮。解壓縮功能是在第一步時插入的
代碼完成的功能。聯起來 就是:upx可以完成代碼的壓縮和實時解壓執行。且不會影響程序的執行效率。
upx和普通的壓縮,解壓不同點就算在於upx是實時解壓縮的。實時解壓的原理可以使用一下圖形表示:
1==>2==>3==>4==>5==>6
假設1是upx插入的代碼,2,3,4是壓縮後的代碼。5,6是隨便的什麼東西。
程序從1開始執行。而1的功能是將2,3,4解壓縮為7,8,9。7,8,9就是2,3,4在壓縮之前的形式。
1==>7==>8==>9==>5==>6
連起來就是:
最初代碼的形式就應該是:7==>8==>9==>5==>6
用upx壓縮之後形式為:1==>2==>3==>4==>5==>6
執行時的形式變為:1==>7==>8==>9==>5==>6
類似的技術還有很多。這樣的技術較多的應用於:木馬和病毒躲避殺毒軟體時,發布的程序防止被反編譯或
破解時。 upx是一種典型的加殼程序或者壓縮程序。因此已經有非常成熟的去殼程序或者解壓縮程序。
同時,很多的殺毒軟體 也可以識別出加有upx殼的病毒和木馬。而一些軟體生產場上為了防止被破解所加的
殼也同時被輕易的破解。在這樣 的情況下很多人想出了產生自己的加殼程序的想法。應此很多人都通過改
編一些成熟的加殼程序來產生自己的加殼程 序。 其實改編upx也是很簡單的。因為upx的源代碼是公開的
,所以可以下載它的源代碼來瞧瞧。upx可以壓縮很多種類型 的可執行文件。因此如果自己只是想要壓縮exe
程序,則只需要閱讀與壓縮exe文件相關的內容。這些代碼是很少的。
改寫upx一般需要注意一下幾點:
1、保證修改後的加殼程序不會產生upx產生的特徵碼。有很多軟體可以通過這些特徵碼識別出程序是經過upx
加殼的。
2、保證加殼之後,程序仍然可以順利執行。
3、在一定程度上保證效率不會下降太多。
希望對你有幫助~