防禦指南-當你得知你的軟體正在被除錯

dalerkd發表於2016-09-18

我相信當你發現你心血之作正被破解時,你最希望做的就是讓對方收手.
本《防禦指南》獻給你-網路上的路人。
以下是經驗之談,希望能給閱讀本文的你帶來新的思考。

  • 知悉
  • 懲罰
  • 自強與自慰
  • 關注可能的源頭

知悉

首先你一定想盡快知道這一軍情,這是正確的選擇,以下是針對具體狀況的一些建議:

  1. 當你的軟體提供網路服務時,封掉對方賬號,讓他失去後續服務。如果你的程式依賴後續服務和更新的話,這將使破解者為此付出購買賬號的金錢代價。但是如何使用不起眼的方式回報對方的賬號是一門學問.對於某些特殊情況的服務,你的服務由於實際應用環境難以要求維購買者長期聯網,如何將此資訊傳出是一門學問,你可以選擇主動出擊誘導對方開啟網路開關,或者一直保持等待傳輸狀態,製造一些小“故障”,讓對方被迫開啟閘道器。
  2. 當你的軟體只是提供本地服務該如何處置被攻擊的情況。
  3. 當你的軟體深陷虛擬機器時.什麼是真實的世界?什麼是真實的PC?一個無法使時光倒轉的PC就是真實的.換言之一個反覆執行你的程式到先前狀態的PC應當被拒絕。如何去區分呢?其實虛擬機器並不一定是一個永恆重複的地方,一個漏洞是BIOS的時間在走動。一種方案是:每隔一定時間生成一段包含時間的標記,如果這段標記消失或者標記是過去的則說明時光逆轉了,這裡要注意關機和休眠的情況。另一種方案是藉助我們的伺服器來確保時光不會倒轉。即將標籤放在雲上。

懲罰

懲罰

對嘗試分析以及盜版你的程式的人(簡稱為:攻擊者)我們能做寫什麼呢?
其實我們在上面的方案已經展示了在經濟上對攻擊者的打擊即封號。有人可能會想到法律上的懲處,但實在艱難,理由不說。

  • 出錯:裝傻賣瘋,以靜制動.讓攻擊者誤以為我們的程式是個BUG漫天的程式,如果繼續破解會嚴重侮辱和影響他的智力。不詳細舉例。
  • 攻擊: 其實這才是重頭好嗎?如果對方使用的是虛擬機器建議你裝傻裝簡單。如果真正電腦,,,,我why打這幾個逗號呢?因為我在糾結,其實我是想格盤的,但是你想想如果你格了他的盤,他能不跟你急?說不定立馬請大師把你的軟體搞了,這不是自殺嗎,有違我們的目的,何況誤殺了怎麼辦,把你的客戶搞了,你沒得錢賺還背罵名。還是不要這麼直接極端的好難道就沒有別的辦法了嗎?延時刪除幾個檔案讓電腦出問題別懷疑到你身上但又沒有空和心情除錯你加上前面的裝傻裝簡單

注意自己的邊界,有些被破解者直接對攻擊者使用木馬擷取對方隱私資訊,這不推薦。

要自強&&不要自慰

注意

正確地使用最強壯的保護方案延緩對方破解的速度。
- 在關鍵程式碼使用外部保護方案提供的標記將使你的程式更安全。
- 延緩意味著它可能在明天被破解,特別是脫殼工具被暴露出來的時候。

在設計上不要鬆懈,自慰之心不可有。
回想一下,木桶短板理論。
舉一個例子:

某軟體校驗驗證碼是一個dll功能演算法複雜且使用私有殼保護。
短板:
但接受驗證結果的模組未做任何保護,位元組該je為jne即過。

對方需要你複雜的驗證碼演算法嗎?
以攻擊者的思維來看防護問題是個有用的角度。對方實際上在對你的產品做黑盒安全測試

關注可能的源頭

源

即使技術上再強大,如果值得總有被人突破之日。通過論壇等途徑知道何時亡羊,為時不晚。

多去菜市場看下有沒有自己的羊被偷後賣肉了。

移動端上不少APP加固公司提供了“盜版監測”功能,畢竟要想獲利上應用商場是個快捷的辦法。PC端上可能需要你經常依據你的程式型別可能出現的地方進行搜尋了。

結語

感謝我的家人忍受我為了寫本文關掉了和她的視訊。
2016年9月18日星期日 21:47
全文共1424字,使用Markdown+小鶴雙拼輸入,較大提高了輸入的舒適度。

相關文章