找回密码
 立即注册
查看: 387|回复: 4

ID软件算法加密必备——keil c51如何加入汇编语言

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:527
  • 最近打卡:2025-05-08 08:03:39

109

主题

1918

回帖

5324

积分

论坛元老

积分
5324
发表于 2024-7-17 14:56:25 | 显示全部楼层 |阅读模式
本帖最后由 xxkj2010 于 2024-7-17 14:59 编辑

使用STC芯片需要加密的时候,最实用、最方便的方法就是将ID通过软件计算存放到某个固定的地址,加密的方法大致如下:
截图202407171452204957.jpg
  加密的时候还需要将ID通过运算的结果写入到程序空间某个固定地址(如1000H开始的地址),那么我们就必须在源代码中将这些地址(如1000H~1006H)予以保留,并定义为FFH,而不能其他数据。这也是很重要的一步。
  现在问题就来了,c语言大师们说可以用 _at_来定义一个七字节的数组:
  1. u8 code __at(0x1000) xxx[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}
复制代码

但编译会提示错误:
app\main.c(5): error C141: syntax error near '_at_'
app\main.c(5): error C141: syntax error near '0x1000'
而通过百度,网上有说到,可以使用:
  1. #pragma  asm
  2. ORG 1000H
  3. DB 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH
  4. #pragma endasm
复制代码
开始的时候测试,总是提示错误,但也不知道什么原因,后来可以使用了。
除此之外,还可以这样:
  1. __asm ORG 1000H
  2. __asm DB 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH
复制代码

不过编译前需要设置一下:
截图202407171454218343.jpg
截图202407171454329832.jpg

汇编语言可以加到main的下面即可:
截图202407171454479001.jpg
  最后说明一下,本人比菜鸟还菜,上述有不正确的地方,敬请各位大佬赐教!

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:430
  • 最近打卡:2025-05-08 09:00:25
已绑定手机

77

主题

4874

回帖

8496

积分

超级版主

DebugLab

积分
8496
发表于 2024-7-17 15:27:31 | 显示全部楼层
我这样写是可以的
截图202407171527154310.jpg
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:430
  • 最近打卡:2025-05-08 09:00:25
已绑定手机

77

主题

4874

回帖

8496

积分

超级版主

DebugLab

积分
8496
发表于 2024-7-17 15:29:34 | 显示全部楼层
注意不能和中断向量冲突

如果开了某个中断,中断向量位置有自定义内容,程序可能执行某些意外的操作,如有中断函数,编译器也会报错
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:527
  • 最近打卡:2025-05-08 08:03:39

109

主题

1918

回帖

5324

积分

论坛元老

积分
5324
发表于 2024-7-18 15:58:33 | 显示全部楼层
Debu*** 发表于 2024-7-17 15:29
注意不能和中断向量冲突

如果开了某个中断,中断向量位置有自定义内容,程序可能执行某些意外的操作,如有 ...

没错,一般应该选择在偏后的地址或空间的末端。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:527
  • 最近打卡:2025-05-08 08:03:39

109

主题

1918

回帖

5324

积分

论坛元老

积分
5324
发表于 2024-7-31 07:26:54 | 显示全部楼层
本帖最后由 xxkj2010 于 2024-7-31 09:45 编辑
Debu*** 发表于 2024-7-17 15:27
我这样写是可以的

还是用你这方法好,用汇编的话,有的程序运行正常,有的程序下载后不能运行,真的“智能”,哈哈!
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-9 02:18 , Processed in 0.119776 second(s), 74 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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