我最近聽說過一家軟件安全公司,它使您的代碼在反向工程和代碼修改方面具有防黑客功能。他們的技術是這樣的:Java - 防止代碼修改技術
它們在代碼中的多個檢查點插入校驗和,以確保它們之間的代碼安全。由於代碼流在每個檢查點執行,所以會檢查校驗和,如果代碼已被篡改,則校驗和將失敗,並且您知道代碼已被修改。如果檢查點被刪除,則下一個檢查點也將失敗,因爲檢查點已被刪除。
購買他們的服務將完全超出我的項目(一個Android應用程序)的預算,但我希望自己實現該技術。
有人可以提供一些有關如何這樣的事情可以實施的見解?如果還有其他方法可以用來防止代碼修改,請分享。
(只是爲了澄清我知道迷惑,怪異missleading代碼邏輯,寫假方法來進一步使代碼難以閱讀和將太應用這些方法)
攻擊者只會刪除所有的校驗和試驗。對於一個熟練的攻擊者來說,識別這些數據,刪除它們,重新平衡這些數據不會特別困難。 「如果還有其他方法可以用來防止代碼修改,請分享」 - 不要寫任何在客戶端上運行的東西。 – CommonsWare
那麼我剛纔描述了基本的想法..顯然,該公司已經實施了這樣一種方式,使其牢不可破(或幾乎牢不可破),但我不知道內部運作。他們有像銀行和信用卡公司這樣的客戶,所以我猜他們是值得的錢 – Anonymous
你會猜錯了。您會驚訝於購買了多少無用的蛇油,因爲一些非技術經理對於蒸發器感到興奮。 –