作者lazyblack (懒黑)
看板ASM
标题C是否能指定函数在特定记忆体 执行後抹除?
时间Fri Mar 16 12:57:21 2018
用eclipse编译 stm32 希望增加反编译难度 请问是否能指定特定位址给函数 以便单次执
行後抹除?听某些人说修改linker档可达成有前辈知道大概要怎麽做吗?
另外也想问算出来的密钥储存的记忆体位址,会对反编译难度造成影响吗?
还是说以上作法都是自嗨,无法根本提升破解困难度?
还望各位给予各种建议或方向,谢谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.237.92.141
※ 文章网址: https://webptt.com/cn.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