iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 26
0
Software Development

闖入DLL的世界 DLL我要進來了哦系列 第 26

第二十六天:DLL的殼?!

  • 分享至 

  • xImage
  •  

大家好我是Andy,今天來到了第二十六天,距離完賽只剩下四天,今天我們來講一下DLL的加密,常常會聽到「阿你要先破殼才能看得到裡面的程式碼啊!」心裡就會想,殼?烏龜?,程式碼怎麼會有殼,那我們廢話不多說直接進入主題。

DLL加密

加密是使用程式碼將原本的程式碼包軌 (包起來),讓想要破解的人不會看到原本裡面的程式碼,就會增加破解的難度,而這邊的話又稱為加殼。

用在甚麼地方

通常是為了保護程式的智慧財產權所設立的,所以在市場上有一些商用的加殼脫殼技術,也有一些加密的軟體例如ASProtect、Armadillo加密殼、EXECryptor加密殼、Themida加密殼等等,所以在一開始我們才會先利用PEiD或是exeinfope去查殼,看看是不是商用殼。

私有殼

這個是一堆大大自創出來的加密殼,都非常難破解,甚至有些利用到了病毒上面,不易讓防毒軟體分析,bad bad。

VMProtect

看到VM就知道這是一款虛擬機的保護軟體,網路上稱是目前最強的虛擬機保護軟體 (不知道戶口有沒有到帳),當然也有缺點就是會影響程序速度,理所當然的因為在外面加一層殼他還要經過那個殼所以速度一定會變慢。

SDK標記代碼

這是應用在VMProtect裡面的,在編程的時候插入一個標記,然後在加密的時候VMProtect會認出這些標記,並在有標記的地方進行保護加密等等。

asm db $EB,$10,'VMProtect begin',0       //標記開始處想保護的程序代碼
asm db $EB,$0E,'VMProtect end',0         //標記結束處

然後還有一堆常見加密殼的官方網站在網站最下面可以讓各位看一下~
點我點我

結語

今天帶了一下DLL加密和了解一些商用加殼軟體,今天就先到這裡了,連假好快又要結束了,繼續無止盡循環上班下班上課下課睡覺起床,或是來到台灣旅行第一天,未來還要繼續n天,我們明天見!seeya。


上一篇
第二十五天:常用函數類型(2)
下一篇
第二十七天:脫殼又稱脫衣服?!
系列文
闖入DLL的世界 DLL我要進來了哦30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言