作者lazyblack (懶黑)
看板ASM
標題C是否能指定函數在特定記憶體 執行後抹除?
時間Fri Mar 16 12:57:21 2018
用eclipse編譯 stm32 希望增加反編譯難度 請問是否能指定特定位址給函數 以便單次執
行後抹除?聽某些人說修改linker檔可達成有前輩知道大概要怎麼做嗎?
另外也想問算出來的密鑰儲存的記憶體位址,會對反編譯難度造成影響嗎?
還是說以上作法都是自嗨,無法根本提升破解困難度?
還望各位給予各種建議或方向,謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.237.92.141
※ 文章網址: https://webptt.com/m.aspx?n=bbs/ASM/M.1521176243.A.E30.html
1F:→ Lipraxde: 不是應該會有硬體的鎖讓debugger不能讀嗎? 03/16 16:09
2F:→ m490521: 關鍵字stm32 PCROP AN4701 03/16 16:28
3F:→ m490521: 其中RDP可以設成lv2, 直接把jtag腳fuse燒斷 03/16 16:29
4F:→ lazyblack: 讀取保護就算到lv2還是能透過bootloader去探裡面的內容 03/16 18:08
5F:→ lazyblack: 的樣子 所以意圖在軟體裡面做誤導增加破解成本 03/16 18:08
6F:→ cs8425: 改link檔只能把特定東西放到特定位址 03/16 19:36
7F:→ cs8425: 但是不能做到"執行後刪除"這事情 03/16 19:37
8F:→ cs8425: 另外你想要保障code不被理解/修改? 03/16 19:42
9F:→ cs8425: 還是不要被copy拿去用(只要會動)? 03/16 19:43
10F:→ cs8425: 前者用obfuscate技巧(無意義指令、VM類的) google上很多 03/16 19:43
11F:→ cs8425: 後者的話要用硬體相關的 例如晶片unique id去計算有的沒的 03/16 19:44
12F:→ Lipraxde: bootloader可以讀出來喔...一般不是應該只能更新或讀某 03/16 22:35
13F:→ Lipraxde: 些特定的資訊嗎 03/16 22:35
14F:→ Lipraxde: 看你要不要加密放到flash,執行時讀出來解密放到ram裡 03/16 22:37
15F:→ Lipraxde: 面。或是比較間接的方式編譯一個Lua的直譯器,把腳本加 03/16 22:37
16F:→ Lipraxde: 密 03/16 22:37
17F:→ Lipraxde: 有個eLua的移植版本可以放在stm32上跑 03/16 22:37
18F:→ m490521: bootloader不是也是你燒的嗎? 03/16 23:40
19F:推 m490521: 可以改linker,把某段程式指定某個區塊內,但清除就是自己 03/16 23:53
20F:→ m490521: 要去判斷了 03/16 23:53
21F:→ lazyblack: 感謝!筆記一下再去網上找改link的教學 03/17 11:16