找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4406|回复: 20
收起左侧

单片机,源代码如何隐藏一段代码,叫别人看不到

  [复制链接]
ID:709761 发表于 2021-9-17 07:56 | 显示全部楼层 |阅读模式
单片机,源代码如何隐藏一段代码,叫别人看不到,又能正常编译使用
回复

使用道具 举报

ID:319585 发表于 2021-9-17 09:34 来自手机 | 显示全部楼层
可以把源程序编译成.s文件后就可以了。毕竟能看懂汇编代码的人不多,真有这样的人也不会去搞你的代码。
回复

使用道具 举报

ID:130230 发表于 2021-9-17 09:38 | 显示全部楼层
你这是打算坑人的节奏啊。。
回复

使用道具 举报

ID:514901 发表于 2021-9-17 09:40 | 显示全部楼层
封装成lib库
回复

使用道具 举报

ID:97678 发表于 2021-9-17 09:40 | 显示全部楼层
隐藏一段代码,可以把一段源程序编译成库,调用库即可
回复

使用道具 举报

ID:401564 发表于 2021-9-17 09:54 | 显示全部楼层
一直在关注你,果然没有让我失望,终于是问了关于代码保密这一块的问题了
这好像是每个新手都想问的问题
代码还不会写,就开始担心代码被别人抄.....
回复

使用道具 举报

ID:709761 发表于 2021-9-17 10:12 | 显示全部楼层
jovew 发表于 2021-9-17 09:40
隐藏一段代码,可以把一段源程序编译成库,调用库即可

具体怎么做呢
回复

使用道具 举报

ID:709761 发表于 2021-9-17 10:16 | 显示全部楼层
jovew 发表于 2021-9-17 09:40
隐藏一段代码,可以把一段源程序编译成库,调用库即可

是不是把代码封装成函数,再把函数c文件编译成lib
回复

使用道具 举报

ID:419909 发表于 2021-9-17 10:23 | 显示全部楼层
liesnake 发表于 2021-9-17 09:34
可以把源程序编译成.s文件后就可以了。毕竟能看懂汇编代码的人不多,真有这样的人也不会去搞你的代码。

赞同!目前汇编可以挡住大部分人了。若遇到真正高手,都不用搞你。他自己写出来还更省时间。
回复

使用道具 举报

ID:47286 发表于 2021-9-17 11:11 来自手机 | 显示全部楼层
你咋老琢磨这些事呢 不如想想咋写个大牛的程序让我们看然后膜拜你
回复

使用道具 举报

ID:966720 发表于 2021-9-17 11:27 | 显示全部楼层
一般可以把想要保护的源代码做成库(lib),在开放的代码中调用这个库就可以了
回复

使用道具 举报

ID:342822 发表于 2021-9-17 12:07 | 显示全部楼层
$CRYPT
首页 上一页 下一页  
行动

这条指令标记了加密的BASIC代码。

语法

$CRYPT 数据

备注

在某些情况下,你可能只想分享你的部分代码。IDE可以对你的代码进行加密,而编译器可以处理这些加密的代码。

使用的是AES加密技术。你确实需要一个商业插件来使用该加密技术。从2.0.5.0版本开始,所有bascom版本都可以处理$crypt命令。所以你只需要在你想加密代码的时候使用一个插件。

注意一旦加密,你就不能解密到源代码!因此,要对你的源代码进行备份。因此,在加密代码之前,要对你的源代码做一个备份。


参见

编辑加密选定的代码



例子

$CRYPT 6288E522B4A1429A6F16D639BFB7405B

$CRYPT 7ABCF89E7F817EB166E03AFF2EB64C4B

$CRYPT 645C88E996A87BF94D34726AA1B1BCCC

$CRYPT 9405555D91FA3B51DEEC4C2186F09ED1

$CRYPT 6D4790DA2ADFF09DE0DA97C594C1B074

以上用机器翻译的
回复

使用道具 举报

ID:624769 发表于 2021-9-17 14:27 | 显示全部楼层
你要隐藏一段代码,不露痕迹的话,用数组吧, unsigned char code _AT_[此处写入你需要放置的地址] TEMP[] = {0x75,0xf0,0x80};  这样就把 P0 = B; 这样一个代码藏掉了。而编译后一切正常,人家也不知道你有过 P0 = B; 这个动作。 藏不同的代码,只要调整数组内的内容就可以了。
回复

使用道具 举报

ID:709761 发表于 2021-9-17 14:55 | 显示全部楼层
188610329 发表于 2021-9-17 14:27
你要隐藏一段代码,不露痕迹的话,用数组吧, unsigned char code _AT_[此处写入你需要放置的地址] TEMP[]  ...

不我很懂,举个例子
回复

使用道具 举报

ID:624769 发表于 2021-9-17 15:11 | 显示全部楼层
李冬 发表于 2021-9-17 14:55
不我很懂,举个例子

例子已经举了啊, 你只要把代码隐藏到数组当中,然后数组指向,你需要执行的地方就好了阿……
哦例子的数值写错了。比方说

unsigned char cade _AT_ 0x0688(此地址按实际需要调整) TEMP[] ={0x85,0x80,0xf0,0x75,0x80,0x7f};
比如,这段数组就是 把 B = P0; 然后, P0 = 0x7F; 这样两行代码, 你要藏的代码越多,数组就越长,当然也可以多个数组联合使用。差不多就是这个意思。
回复

使用道具 举报

ID:196216 发表于 2021-9-17 15:22 | 显示全部楼层
编译器在建工程的时候可以选择去建一个lib库文件 网上有教程的 自己百度
回复

使用道具 举报

ID:136485 发表于 2021-9-17 16:26 | 显示全部楼层
知道为什么我们的芯片技术差,人家是开源让更多的人学习,而我们是想着怎么让不让别人学到
回复

使用道具 举报

ID:709761 发表于 2021-9-18 09:45 | 显示全部楼层
188610329 发表于 2021-9-17 15:11
例子已经举了啊, 你只要把代码隐藏到数组当中,然后数组指向,你需要执行的地方就好了阿……
哦例子的数值 ...

是不是,把代码对应的汇编语句,转成十六进制数放在数组里
回复

使用道具 举报

ID:879348 发表于 2021-9-19 08:12 | 显示全部楼层
keil可以封装成lib
回复

使用道具 举报

ID:961300 发表于 2021-9-19 08:27 | 显示全部楼层
没必要吧,现在不是特殊程序完全可以开源的,再说一般程序到网上找的话一堆一堆的。
回复

使用道具 举报

ID:123289 发表于 2021-9-19 10:05 | 显示全部楼层
方法有,需要智慧。流程是:
程序---加密---给到流通方(用户……)---使用---解密---还原成程序---写入程序运行的规定的位置。
要点是,代码源(.C、.ASM、.BIN)不展现于【流通方】(用户……)!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表