C 軟體license管理(簡單軟體註冊機制)

2021-09-29 04:15:21 字數 4360 閱讀 8028

原部落格位址

基本原理:

這樣別人要破解也就需要點力氣了(沒打算防破解,本意只想防複製的),有能力破解的人也不在乎破解這個軟體了

【c#提供了managementclass類(命名空間system.management):可以獲得磁碟驅動器模組的方法、屬性和限定符】

using microsoft.win32;

using system;

using system.management;

using system.net.networkinformation;

namespace rfidclient1.util

private static string getcpuinfo()

private static string getbiosinfo()

private static string getbaseboardinfo()

private static string getmacinfo()

private static string gethardwareinfo(string typepath, string key)}}

}catch (exception ex)

return string.empty;

}private static string getmacaddressbynetworkinformation()

\\";

string macaddress = string.empty;

trybreak;}}

}}

}catch (exception ex)

return macaddress;}}

}

【 注:這邊在md5時前後各加了一段字元,這樣增加一點破解難度。】

using system;

using system.io;

using system.security.cryptography;

using system.text;

namespace rfidclient1.util

public class encryptionhelper

public encryptionhelper(encryptionkeyenum key)

private void initkey(encryptionkeyenum key = encryptionkeyenum.keya)

}public string encryptstring(string str)

public string decryptstring(string str)

public string ge***5string(string str)

private string encrypt(string str, string skey)

ret.tostring();

return ret.tostring();

}private string decrypt(string ptodecrypt, string skey)

des.key = asciiencoding.ascii.getbytes(skey);

des.iv = asciiencoding.ascii.getbytes(skey);

memorystream ms = new memorystream();

cryptostream cs = new cryptostream(ms, des.createdecryptor(), cryptostreammode.write);

cs.write(inputbytearray, 0, inputbytearray.length);

cs.flushfinalblock();

stringbuilder ret = new stringbuilder();

return system.text.encoding.default.getstring(ms.toarray());}}

}

using system;

using system.io;

namespace rfidclient1.util

public static void writecomputerinfofile(string info)

public static string readregistfile()

public static string readcomputerinfofile()

public static bool existcomputerinfofile()

public static bool existregistinfofile()

private static void writefile(string info, string filename)

}catch (exception ex)

}private static string readfile(string filename)

}catch (exception ex)

return info;}}

}

主介面**:

public partial class formmain : form

private void formmain_load(object sender, eventargs e)

else

}/// /// 試執行視窗

///

private void tryrunform()

private bool checkregist()

private bool checkregistdata(string key)

else

else}}

private void closeform()

thread.sleep(1 * 1000);

count++;

}if (isregist == true)

else

}private void btnregist_click(object sender, eventargs e)

string filename = string.empty;

openfiledialog openfiledialog = new openfiledialog();

if (openfiledialog.showdialog() == dialogresult.ok)

else

string localfilename = string.concat(

environment.currentdirectory,

path.directoryseparatorchar,

registfilehelper.registinfofile);

if (filename != localfilename)

file.copy(filename, localfilename, true);

if (checkregist() == true)

}}

序號產生器**:

public partial class formmain : form

private void btnregist_click(object sender, eventargs e)

else

string localfilename = string.concat(

environment.currentdirectory,

path.directoryseparatorchar,

registfilehelper.computerinfofile);

if (filename != localfilename)

file.copy(filename, localfilename, true);

string computer = registfilehelper.readcomputerinfofile();

encryptionhelper help = new encryptionhelper(encryptionkeyenum.keyb);

string md5string = help.ge***5string(computer);

string registinfo = help.encryptstring(md5string);

registfilehelper.writeregistfile(registinfo);

messagebox.show("註冊碼已生成");

}}

最後採用confuserex將可執行檔案加密(confuserex介紹),這樣就不能反編譯獲得原始碼。

成熟的軟體資產管理 license管理

成熟的軟體資產管理 license 管理 成熟的it 資產管理軟體,不僅僅包括對硬體裝置的管理,對網路 主機 pc和低值易耗品的管理,還包括對無形資產的管理,特別是軟體管理和軟體 license 管理。軟體管理的範疇 軟體管理是指乙個組織內對軟體的購買 部署 維護 利用 分發等管理行為。也就是iti...

易軟會員 會員積分管理軟體

易軟會員管理系統它是一套功能強大的會員管理軟體,具有對會員基本資料 消費 積分和儲值的管理以及各種查詢統計等功能,軟體操作方便,介面簡潔,可滿足商業銷售 餐飲 美容 醫藥 娛樂 桑拿等服務行業進行會員制管理 會員卡管理 會員積分管理 會員消費管理等行業的需求,經濟 高效 實用。具體來說,本系統具有下...

軟考複習 軟體工程05 軟體專案估算 進度管理

常用估算方法 基於已經完成的類似專案進行估算。基於分解技術計畫進行估算。基於經驗估算模型進行估算。自頂向下 從以前完成專案的總成本來估算現在的總成本,再進行分配。自底向上 先分別估算每個自認為所需要的開發工作量,最後再進行相加。差別估算方法 將待開發專案與已完成專案進行比對,找出其中差別所在,並估算...