深思數盾使用指令碼加密(加殼)踩的坑

2021-10-21 11:14:21 字數 1864 閱讀 3761

商業化軟體要盈利離不開加密,目前專案上選擇的加密軟體是深思數盾。

一般來說加密都是由實施人員來做的,但是本專案又個特殊的地方,需要和二次開發者寫作開發,這樣就需要將debug編譯的dll也加密到。專案的編譯採用jenkins自動化編譯,在此前,加密的工作由開發人員手動加密替換dll。

為了提高工作效率,決定研究下深思數盾的加密指令碼。

深思數盾由兩個加殼程式,乙個是vriboxprotector.exe,另乙個是dsprotector.exe。這兩個exe是gui介面的加密程式。

另外兩個帶_con的exe,是cmd命令列執行的。

傳統加密c++的dll、exe是用vriboxprotector.exe即可,dsprotector.exe是用於加密u3d等資源檔案的,不能用於加密dll(提示報錯如下)

另外,c++的dll的加密方式要選擇《**混淆》,選擇預設的《**加密》方式是有問題的

因此我們只需要選擇vriboxprotector_con.exe做加密指令碼

1、將需要製作的dll檔案複製到加密目錄下,使用gui的加密程式先導出.ssp加密配置

例如要加密這個office.dll,則開啟之後選擇「儲存選中配置」,或者「儲存所有配置」就會匯出.ssp檔案,至於這些加密選項則根據具體情況選。

值得一提的是,如果是需要在debug下除錯這個dll,則一定要勾選上圖中標紅的選項「使用可除錯runtime庫(許可功能庫),發布版本時請務必不要勾選!」

2、將生成的ssp與dll放到同一級目錄下,就可以用vriboxprotector_con.exe加密了

3、編寫加密指令碼

xcopy e:\***\office.dll e:\autoencrypt\  /s /c /y /r

cd /d e:\program files (x86)\senseshield\sdk\tool\virboxprotect\bin64

virboxprotector_con.exe e:\autoencrypt\office.dll -c cloud -u username -p password -o e:\output\office_encrypted.dll

exit

注:指令碼中的username 和 password需要替換成自己的開發者賬號密碼。

如果加密dll同級目錄下找不到.ssp檔案,就會用預設選項進行加密

4、接入jenkins

jenkins中加入編譯選項「execute windows batch command」,並執行指令碼即可。再次不贅述

主要的踩坑點在與一開始用了dsprotector_con.exe來做指令碼,加密出來的dll死活用不了。

後面想了下換了vriboxprotector_con.exe來做。但是dsprotector_con是有指定ssp檔案的引數,vriboxprotector_con.exe沒有。最後驗證需要.ssp在待加密dll的同級目錄下才能讀取加密配置

virboxprotector命令列使用文件

wincc 使用vbs指令碼進行MySQL資料庫連線

option explicit function action dim adoconn 定義ado連線物件 dim connectionstr 定義資料庫連線字串 dim sqlstr 獲取連線資料庫字串 connectionstr provider msdasql.1 persist securi...

wincc使用vbs指令碼連線mysql資料庫

注意事項,wincc如果是32位軟體系統需要去c盤找到c windows syswow64 odbcad32.exe配置mysql資料來源,並測試,避免使用64位的odbc資料來源,不然會一直除錯不同,連線不上,其他內容基本上跟網上內容差不多,option explicit function act...

linux shell指令碼備份mysql資料庫

bin sh 備份資料庫 mysql 使用者名稱密碼 mysql user root mysql pass root backup dir data backup mysql data dir data backup dbdata 查詢mysql中所有資料庫名字 sql string select ...