3 回答

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

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

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