現在很多提供軟件保護的平台,xx盾xx盾啥的。
以前,保護通常需要寫在源碼里,而且要看說明,很多小白甚至都看不懂。(話說,小白也寫不出啥需要保護的東西……)
現在他們一般都提供兩種傻瓜模式的保護,一種是加殼軟件,一種是不加殼軟件。
原理有很多,比如注入dll后加密混淆,寫出運行,內存運行等等。
哎,說了一些廢話。
說說忽然想到的一個小思路。一個exe軟件,兩個dll分別是a.dll和b.dll。a.dll中有exe程序的md5,一個b.dll中有a.dll的md5。
運行的時候,exe在運行前,首先從b那里獲取a的md5,如果正確,就調用a中的命令執行程序。在exe調用a命令的過程中,a中的命令會自動效驗exe程序的md5。
這樣就用一個b.dll的過度,實現了exe和a的互相效驗。
上面,我提到了加密平台提供的一種服務形式,就是軟件直接一鍵加保護。
這種方式的原理,通常是用保護殼程序內存運行原軟件,這樣按照我上面說的小思路,就可以給保護殼程序多一層效驗。
對於內存加密,通常需要虛擬機技術。太難了,討論不動……