3 回答

TA貢獻1862條經驗 獲得超6個贊
有辦法做到嗎?
不。
(至少沒有官方的、可移植的方式。當然,您可以修改二進制文件并更改例如數據或 BSS 段,但這很困難,依賴于操作系統,并且不能解決您的問題,因為它與外部文件具有相同的問題:您可以保留原始可執行文件并重新開始。有些事情根本無法從技術上解決。)

TA貢獻1841條經驗 獲得超3個贊
這是您嘗試執行的操作(不是寫入可執行文件)的解決方案,該解決方案將擊敗文件的隨意復制。
一種可能的方法是定期將請求計數和當前系統時間寫入文件。該文件甚至不需要加密 - 您只需要生成數據的哈希值(例如使用 SHA2)并使用私鑰對其進行簽名,然后附加到文件中。
然后,當您(重新)啟動服務時,使用您的公鑰讀取并驗證文件,并檢查自寫入文件的時間以來是否已經過去太久。請注意,安裝時必須寫入一些初始文件,并且您的服務需要持續運行 - 只允許短暫重新啟動。您還可能會驗證該時間不是將來的時間,因為這表明有人試圖規避系統。
當然,這種方法存在一些問題,例如客戶端擺弄系統時間,甚至調試代碼以查找私鑰和其他可能的密鑰。希望這些措施足以起到威懾作用。此外,如果服務或系統關閉很長一段時間,則需要某種手動干預。

TA貢獻1772條經驗 獲得超5個贊
如果您的其余 API 在您的控制范圍內,并且是您要貨幣化的部分,那么您肯定會在此時過濾許可的可能是某種證書身份驗證或 API 密鑰,然后您可以保留并依賴該 API您可以控制的一面,然后無論它是在平面文件還是數據庫等中都沒關系,因為您可以控制它。
- 3 回答
- 0 關注
- 191 瀏覽
添加回答
舉報