資源描述:
《codemeter wupi samples說明for c++》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、CodeMeterWUPISamples說明ForC++1.C++的例子當(dāng)安裝完后已經(jīng)安裝在您的電腦上,首先打開CodeMeterStartCenter,選擇Samples可進(jìn)入目錄C++WupiCalculatorIndex下查找到。2.該例子的加密原理是由外殼工具AXPROTECTOR和WUPI函數(shù)功能組成,用戶除了可以用自動(dòng)外殼工具保護(hù)程序外,還可以對源程序的函數(shù)段進(jìn)行自定義加密,并且可以通過WUPI函數(shù)來控制該函數(shù)段在內(nèi)存中什么時(shí)候解密運(yùn)行,什么時(shí)候再次加密保護(hù)起來。3.首先我們打開外殼配置文件,如果您是CodeMeter用戶請打開該目錄下WupiCalcul
2、ator-CodeMeter.WibuAxProject文件,如果您是WibuKey則打開WupiCalculator-WibuKey.WibuAxProject文件,以下我們以CodeMeter為例。4.雙擊該外殼配置文件后,外殼程序AxProtector也會(huì)被自動(dòng)啟動(dòng),如下圖:首先要選擇需要加密的應(yīng)用程序exe或者dll,然后下一步如下圖:該步驟和后面一些步驟的說明都可以參考外殼的操作說明,這里不一一介紹說明了,一直下一步到Advancedoptions選項(xiàng),如下圖:通常單純的自動(dòng)外殼加密的時(shí)候“ActivateIxProtector/WUPI”默認(rèn)是不激活的,而這
3、里我們需要讓外殼和我們的WUPI函數(shù)功能組合在一起使用時(shí),必須如圖中打上勾激活。接著我們就可以進(jìn)入下一步進(jìn)行細(xì)節(jié)的配置。該例子是一個(gè)計(jì)算器例子,并且對計(jì)算器里的計(jì)算功能進(jìn)行模塊許可分配,如下圖,在許可列表里為每個(gè)不同的模塊功能分配不同的許可,(這些都針對希望對程序中多個(gè)功能進(jìn)行分開授權(quán)管理而設(shè)定的,否則的話用戶默認(rèn)即可,不用設(shè)置)然后在下一步里如下圖,用戶可以把希望做加密的函數(shù)名稱添加到以下列表中按添加函數(shù)按鈕會(huì)出現(xiàn)如下圖,在Name中填入函數(shù)名稱(外殼程序會(huì)自動(dòng)查找程序并進(jìn)行加密),還可以通過Length來設(shè)定加密字節(jié)多少,而在licenselist里如果需要對該函數(shù)
4、功能進(jìn)行模塊分授權(quán)管理,即可選擇上一步已經(jīng)設(shè)定的許可列表里的許可,則會(huì)自動(dòng)綁定到該函數(shù)。然后就可以一直next到最后一步,按finish來完成加密工作,如下圖:5.以上的步驟是外殼程序自動(dòng)對WUPI函數(shù)進(jìn)行處理,但是在這之前其實(shí)我們必須要程序中定義好WUPI函數(shù)并且編譯生成后,才可以用以上外殼加密工具進(jìn)行。然后下面我們看一下程序,這里請注意,所有在前面外殼加密時(shí)設(shè)定的加密函數(shù)段,必須在程序中做如下處理才可以進(jìn)行加密,必須先調(diào)用WupiDecryptCode()函數(shù)進(jìn)行解密操作,然后才能運(yùn)行那些加密的函數(shù)段如下面的CalcSimpleOperation(),否則將會(huì)出錯(cuò),
5、在運(yùn)行完以后再調(diào)用WupiEncryptCode()函數(shù)進(jìn)行加密,來保證內(nèi)存中不要長時(shí)間暴露解密的函數(shù)程序。(在這里用戶可以自行調(diào)節(jié),什么時(shí)候再加密,比如有些經(jīng)常會(huì)被調(diào)用到的大運(yùn)算量函數(shù)考慮到運(yùn)行效率問題可以延后再進(jìn)行加密,降低了一些安全性而保證運(yùn)行效率)另外可看到WupiDecryptCode()的參數(shù)為1,2,3…這個(gè)參數(shù)對應(yīng)的是前面外殼加密時(shí)定義的加密函數(shù)段的ID如下圖。其他一些函數(shù)如WupiDecreaseUnitCounter()只有當(dāng)設(shè)定了計(jì)數(shù)器時(shí),可以使用該函數(shù)來對計(jì)數(shù)器進(jìn)行減數(shù)操作。另外一些WUPI函數(shù)WupiCheckLicense(),可以用來檢測加
6、密鎖上是否存在相應(yīng)的許可單元(請注意該函數(shù)后的參數(shù)對應(yīng)的是licenselists中的許可列表中的ID而不是上面的函數(shù)定義ID),還有一個(gè)比較關(guān)鍵的函數(shù)WupiCheckDebugger可以在程序中進(jìn)行定義,它會(huì)自動(dòng)對偵測進(jìn)程中是否有debugger破解工具,用戶可以在程序中多出添加來防止別人嘗試破解您的軟件。所有WUPI函數(shù)詳細(xì)可查看開始-所有程序-CodeMeter-Documentation-SoftwareProtectionAPIHelp(English)文檔。6.Wupi函數(shù)必須引用到頭文件wibuixap.h(在目錄C:ProgramFilesWIBU
7、-SYSTEMSAxProtectorDevkitinclude)和lib文件WupiEngine32.lib(在目錄C:ProgramFilesWIBU-SYSTEMSAxProtectorDevkitlib),在編譯完后用上述外殼工具進(jìn)行加密,另外請注意所有需要被加密處理的函數(shù)頭文件中必須以__declspec(dllexport)申請,這樣外殼加密時(shí)才能認(rèn)出該函數(shù)并進(jìn)行加密。另外請注意,編譯完程序后,在外殼工具加密前運(yùn)行的話會(huì)要求WupiEngine32.dll動(dòng)態(tài)庫,用戶不必?fù)?dān)心動(dòng)態(tài)庫是否暴露在外面的問題,因?yàn)橥鈿?/p>