Re: [討論] 序號保護機制
※ 引述《jlovet (Want 2 see u no more)》之銘言:
: 謝謝那個lib,
: 您說的都沒有錯,
: codeproject那的文件就把RSA用來作activation
: 我不用signature的原因是
: 雖然他可以保留住private key
: 但是他只是比對簽章對不對,那些pediy的人還是可以很容易改掉一個指令
: 讓簽章就算不對也可以繼續執行軟體
可以考慮這樣的做法:
先將一段重要的機械碼以AES加密,設對稱金鑰為K,
RSA以公鑰檢驗簽章(解密)後,正確的序號可以得到正確的K,
再使用K將機械碼解密,該段機械碼執行完畢後再加密回來(要做一些防止dump的處理)。
如果使用了不正確的序號,會解出不正確的K'!=K,就無法解密並執行該段機械碼。
如此可以使得破解者想籍由改掉指令而破解軟體的困難度大增,
我除了這樣做之外,還會做一些Anti-Debug及檢驗機械碼是否有被竄改的動作。
其實這樣仍然有可能被破解,只是增加破解者破解的困難度而已。
一套軟體要做到完全不被破解不太可能,
但是我們可以做到短時間內不被破解,
讓軟體賣出後維持一段壽命,讓公司賺錢,然後跟老闆交差了事,呵呵呵。
: 如果用來sign軟體本身當序號的話
: 那我就覺得有疑問了
: 對同一個文件不是應該會生出同樣的signature嗎?
這部份我是用RSA簽章做,可以加一些參數,讓它產生不同的簽章,
然後再搭配前文的方式(用ECDSA就無法做到前文的方法了)。
我的做法是sign使用者名稱時,再加上一些參數一起sign,
使得同樣的使用者名稱可以產生不同序號。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.169.103.110
推
02/23 22:06, , 1F
02/23 22:06, 1F
→
02/23 22:06, , 2F
02/23 22:06, 2F
→
02/23 22:07, , 3F
02/23 22:07, 3F
討論串 (同標題文章)
CodeJob 近期熱門文章
PTT數位生活區 即時熱門文章