我不是一名軟件工程師,因爲您會看到如果您繼續閱讀,但是我設法編寫了一個非常有價值的應用程序,爲我們公司節省了大量資金。我沒有支付編寫軟件的費用,我沒有爲編寫此應用程序付費,我的職位也不是軟件工程師,所以如果我必須離開,我想完全控制誰使用此應用程序,因爲據我所知這在法律上並不屬於他們(也不在公司時間內寫)。使用WebRequest檢查許可證是否有效
這聽起來可能幼稚,但我已經投入了很多時間,而且我幾乎每天都在維護它,所以我覺得我應該有一些控制權,或者至少可以把它賣給我公司如果他們曾經讓我離開,或者我想繼續前進。
這個應用程序我目前的保護方案看起來是這樣的:
string version;
WebRequest request = WebRequest.Create("http://MyWebSiteURL/Licence text file that either says 'expired' or "not expired'");
WebResponse response = request.GetResponse();
StreamReader stream = new StreamReader(response.GetResponseStream());
version = stream.ReadToEnd();
stream.Close();
response.Close();
if (version == ("not expired") == false)
{
MessageBox.Show(Environment.NewLine + "application expired etc etc", "Version Control");
}
它會檢查我的服務器「未過期」(純文本),而如果WebRequest的回來,只能作爲「未過期「,它最終會彈出另一個表單,說明它已過期,並允許您輸入日期的密碼,這是當前日期的某些預定數字的乘法,以便在需要時創建」日間通行證「(我認爲Alan Turing只是翻過他的墳墓)。
不是最好的安全方案,但我認爲這是非常聰明的沒有軟件安全經驗。然而,我聽說過十六進制編輯來解決安全問題,所以我做了一些科學測試,發現我編譯的EXE的這個區域:
「System.Net.WebRequest」。我填滿了零,看起來像這樣:System.Net000000000
這是所有花抵消應用程序的加載服務器檢查這讓我點擊「繼續」時打嗝,完全繞過所有我的「安全」,並繼續使用該程序,而不會過期。
現在一個普通人會去這個長度(十六進制編輯)試圖超越我的保護計劃嗎?儘管不像學習經驗那麼可能,但作爲增加步驟來進行十六進制編輯或其他任何常用解決方法,除非是「專業」解密者,否則我可以做些什麼?
我再次不是偏執狂,我只是渴望更多地瞭解應用程序的安全性。我既爲自己感到自豪,又爲創造和打破自己的保護而感到羞愧。
如果發表評論,請客氣,因爲我知道這可能是一個比我更知情的肱骨文章,因爲我真的沒有什麼經驗來編寫軟件,並且從未接受過任何類型的課程等。感謝您的閱讀!
這聽起來像你應該說你的公司約及彼的補償,而不是採取技術措施。 –
@MitchWheat,他說他在他自己的時間裏工作。 – Amy