C是否能指定函數在特定記憶體 執行後抹除?

看板ASM (組合語言)作者 (懶黑)時間6年前 (2018/03/16 12:57), 編輯推噓1(1020)
留言21則, 4人參與, 6年前最新討論串1/2 (看更多)
用eclipse編譯 stm32 希望增加反編譯難度 請問是否能指定特定位址給函數 以便單次執 行後抹除?聽某些人說修改linker檔可達成有前輩知道大概要怎麼做嗎? 另外也想問算出來的密鑰儲存的記憶體位址,會對反編譯難度造成影響嗎? 還是說以上作法都是自嗨,無法根本提升破解困難度? 還望各位給予各種建議或方向,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.237.92.141 ※ 文章網址: https://www.ptt.cc/bbs/ASM/M.1521176243.A.E30.html

03/16 16:09, 6年前 , 1F
不是應該會有硬體的鎖讓debugger不能讀嗎?
03/16 16:09, 1F

03/16 16:28, 6年前 , 2F
關鍵字stm32 PCROP AN4701
03/16 16:28, 2F

03/16 16:29, 6年前 , 3F
其中RDP可以設成lv2, 直接把jtag腳fuse燒斷
03/16 16:29, 3F

03/16 18:08, 6年前 , 4F
讀取保護就算到lv2還是能透過bootloader去探裡面的內容
03/16 18:08, 4F

03/16 18:08, 6年前 , 5F
的樣子 所以意圖在軟體裡面做誤導增加破解成本
03/16 18:08, 5F

03/16 19:36, 6年前 , 6F
改link檔只能把特定東西放到特定位址
03/16 19:36, 6F

03/16 19:37, 6年前 , 7F
但是不能做到"執行後刪除"這事情
03/16 19:37, 7F

03/16 19:42, 6年前 , 8F
另外你想要保障code不被理解/修改?
03/16 19:42, 8F

03/16 19:43, 6年前 , 9F
還是不要被copy拿去用(只要會動)?
03/16 19:43, 9F

03/16 19:43, 6年前 , 10F
前者用obfuscate技巧(無意義指令、VM類的) google上很多
03/16 19:43, 10F

03/16 19:44, 6年前 , 11F
後者的話要用硬體相關的 例如晶片unique id去計算有的沒的
03/16 19:44, 11F

03/16 22:35, 6年前 , 12F
bootloader可以讀出來喔...一般不是應該只能更新或讀某
03/16 22:35, 12F

03/16 22:35, 6年前 , 13F
些特定的資訊嗎
03/16 22:35, 13F

03/16 22:37, 6年前 , 14F
看你要不要加密放到flash,執行時讀出來解密放到ram裡
03/16 22:37, 14F

03/16 22:37, 6年前 , 15F
面。或是比較間接的方式編譯一個Lua的直譯器,把腳本加
03/16 22:37, 15F

03/16 22:37, 6年前 , 16F
03/16 22:37, 16F

03/16 22:37, 6年前 , 17F
有個eLua的移植版本可以放在stm32上跑
03/16 22:37, 17F

03/16 23:40, 6年前 , 18F
bootloader不是也是你燒的嗎?
03/16 23:40, 18F

03/16 23:53, 6年前 , 19F
可以改linker,把某段程式指定某個區塊內,但清除就是自己
03/16 23:53, 19F

03/16 23:53, 6年前 , 20F
要去判斷了
03/16 23:53, 20F

03/17 11:16, 6年前 , 21F
感謝!筆記一下再去網上找改link的教學
03/17 11:16, 21F
文章代碼(AID): #1Qgqwpum (ASM)
文章代碼(AID): #1Qgqwpum (ASM)