C 軟體註冊和註冊

2021-07-13 18:09:16 字數 3548 閱讀 2325

原理就是軟體與序號產生器使用同一種演算法,將資料進行匹配。註冊後將資料寫入至登錄檔中。一種簡單的序號產生器的方式。

1、軟體的實現

using system;

using system.collections.generic;

using system.linq;

using system.management;

using system.text;

using system.threading.tasks;

namespace softwareregister

/// /// 獲取cpu序列號

///

///

public string getcpuserialnum()

return cpustr;

}/// /// 通過cpu序列號和硬碟序列號的前24位做機器碼

///

///

public string getmachinenum()

public int m_intcode = new int[127]; //儲存金鑰

public char m_charascii = new char[25]; //儲存ascii

public int m_intascii = new int[25]; //儲存ascii的值

/// /// 初始化金鑰(通過模9生成)

///

public void intiintcode()

}/// /// 獲取裝置註冊碼

///

///

public string getregisternum()

//通過簡單演算法,改變ascii的值, ascii的值,再加上初始化金鑰的值

for (int j = 1; j < m_intascii.length; j++)

string machineascii = "";

for (int k = 1; k < m_intascii.length; k++)

else if (m_intascii[k] > 122)

else

}return machineascii;}}

}

2、檢查註冊是否可用

using microsoft.win32;

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace softwareregister

}return ischeck;

}/// /// 判斷軟體是否可用,擁有二十次的試用期,也可以換成天數,再寫入登錄檔資訊

///

///

public bool getuseinfo(ref int m_intuse)

catch (exception)

m_intuse = (int)registry.getvalue("hkey_local_machine\\software\\mysoftware", "usetimes", 0);

if (m_intuse < 5)

else

return is_canuse;}}

}

主窗體:: 

using microsoft.win32;

using softwareregister;

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.threading.tasks;

using system.windows.forms;

namespace registermachine

softreg softreg = new softreg();

checkreg checkreg = new checkreg();

private void inti()

}private void button1_click(object sender, eventargs e)

else

}catch(exception ex)

}private void but_cancel_click(object sender, eventargs e)}}

二:序號產生器

裡面的方法和上面的一樣,通過同一種演算法對資料進行匹配。

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.threading.tasks;

using system.windows.forms;

namespace register

public int m_intcode = new int[127]; //儲存金鑰

public char m_charascii = new char[25]; //儲存ascii

public int m_intascii = new int[25]; //儲存ascii的值

/// /// 初始化金鑰(通過模9生成)

///

public void intiintcode()

}public string getregisternum(string machinenume)

//通過簡單演算法,改變ascii的值, ascii的值,再加上初始化金鑰的值

for (int j = 1; j < m_intascii.length; j++)

string machineascii = "";

for (int k = 1; k < m_intascii.length; k++)

else if (m_intascii[k] > 122)

else

}return machineascii;

}private void but_reg_click(object sender, eventargs e)

private void btn_cancel_click(object sender, eventargs e)}}

3、再回到主介面進行註冊

C 軟體註冊功能

1 using system 2using system.collections.generic 3using system.linq 4using system.text 5using system.management 67 namespace softregister 8 22 23 24 獲...

C 生成軟體註冊碼

今天早上,花了乙個早上弄了個生成機器碼和註冊碼的demo,通過生成的註冊碼裡面包含時間資訊,保證了註冊碼在使用後的指定時間後失效 由於數學不行所以寫的比較簡單,ok 上 吧 產生機器碼的原理很簡單,基本上都是取裝置資訊之後加密 取本機機器碼 public static string getmachi...

C 生成軟體註冊碼

開發軟體時,當用到商業用途時,註冊碼與啟用碼就顯得很重要了。現在的軟體破解技術實在在強了,各種國內外大型軟體都有註冊機制,但同時也不斷地被破解。下面發的只是乙個常用版本,發出原始碼被破就更容易了,但我們學習的是技術。當然也為以後自己的軟體不會被輕易破解。第一步。根據卷標,cpu序列號,生成機器碼 取...