搜索
bottom↓
回复: 39

mdk 自动加密用于IAP升级的bin文件方法

  [复制链接]

出0入0汤圆

发表于 2018-1-13 13:54:51 | 显示全部楼层 |阅读模式
本帖最后由 gmajvfhpa 于 2018-1-13 14:04 编辑

修改原因:上传程序文件

写了一个控制台小程序,用于bin文件的AES加密。程序取名BinAddAes.exe,调用时,后面带三个字串,第一个是要加密文件的路径及文件名,第二个是加密后的保存路径及文件名,第三个是32个字符的密码。
mdk的设置方法:
run1 填:C:\Keil_v5\ARM\ARMCC\bin\fromelf.exe   --bin -o  ..\OBJ\yuanhuKZ.bin ..\OBJ\yuanhuKZ.axf ,这个fromelf.exe是MDK自带的,路经可能会有所不同,要根据实际位置更改。这个程序的作用是把MDK生成的*.axf生成 *.bin。
run2填:C:\Keil_v5\ARM\ARMCC\bin\BinAddAes.exe ..\OBJ\yuanhuKZ.bin ..\OBJ\yuanhuKZ.aes 12345678901234567890123456789012 。把BinAddAes.exe拷贝到相应目录,建议与fromelf.exe相同目录下。这个程序的作用是把*bin加密后生成 *.aes。
BinAddAes的工程源码:


单独的BinAddAes程序:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2018-1-13 13:58:42 | 显示全部楼层
补充说明,加密部份源码来于本坛。
bin文件大小如不是16的整数倍,加密后会增加数据到整数倍。

出0入0汤圆

发表于 2018-1-13 14:36:59 | 显示全部楼层
感谢分享!

出0入0汤圆

发表于 2018-1-13 14:38:33 | 显示全部楼层
楼主工具不错。我们平时也有用到同样功能。
不过我人笨,我只会用最简单的MFC写一个窗口程序,然后手工打开文件,加密后再生成一个加密文件存起来的。

出0入4汤圆

发表于 2018-1-13 15:25:25 | 显示全部楼层
IAP程序有没有

出0入76汤圆

发表于 2018-1-13 18:21:35 | 显示全部楼层
赞赞,做得不错, 先收藏

出0入8汤圆

发表于 2018-1-13 18:35:05 来自手机 | 显示全部楼层
iap解密烧录程序有吗?

出0入0汤圆

发表于 2018-1-13 23:03:22 | 显示全部楼层
感谢分享

出0入22汤圆

发表于 2018-1-14 03:10:08 来自手机 | 显示全部楼层
这个很有用啊。

出0入0汤圆

发表于 2018-1-14 08:52:47 | 显示全部楼层
感谢分享!

出0入0汤圆

发表于 2018-1-14 11:59:49 | 显示全部楼层
gmajvfhpa 发表于 2018-1-13 13:58
补充说明,加密部份源码来于本坛。
bin文件大小如不是16的整数倍,加密后会增加数据到整数倍。 ...

现在光有加密了,解密的C程序呢??能分亨一个吗?



出0入0汤圆

 楼主| 发表于 2018-1-14 12:31:42 | 显示全部楼层
kinsno 发表于 2018-1-14 11:59
现在光有加密了,解密的C程序呢??能分亨一个吗?

在加密的工程源码内有解密程序,先加密,再解密。解密后会生成aesbin.bin文件,并保存到调用程序时的当前目录

出0入0汤圆

 楼主| 发表于 2018-1-14 12:35:33 | 显示全部楼层
kinsno 发表于 2018-1-14 11:59
现在光有加密了,解密的C程序呢??能分亨一个吗?
  1.         char * aesbin = (char *)malloc(binsize);//申请内存
  2.         if(aesbin== NULL)
  3.         {
  4.                 printf("内存请求失败.\n");
  5.                 fclose(fpaes);
  6.                 fclose(fpbin);
  7.         return;//结束程序的执行
  8.         }
  9.         for (i = 0; i < 16; i++)
  10.         {
  11.                 bufferIn[i] = 0;
  12.                 bufferOut[i] = 0;
  13.         }

  14.     aesDecInit();
  15.         for (i=0;i<binsize;i+=16)
  16.         {
  17.                 memcpy(bufferIn ,&aes[i],16);
  18.        
  19.                 aesDecrypt(bufferIn,bufferOut);//解密
  20.                
  21.                 memcpy(&aesbin[i] ,bufferIn,16);
  22.         }

  23.         if((fpbin=fopen("aesbin.bin","wb"))==NULL)//"解密后保存成文件,以便对比
  24.         {
  25.         printf("这文件 <%s> 打开失败.\n",argv[1]);//打开操作不成功
  26.         return;//结束程序的执行
  27.     }
  28.         fwrite( aesbin, sizeof( char ), binsize, fpbin );
  29.         fclose(fpbin);       
  30.         free(aesbin);
  31.         free(aes);
复制代码


aes[]内是加密过的数据,aesbin[]保存解密的数据,之后保存到文件

出0入0汤圆

发表于 2018-1-14 12:41:06 | 显示全部楼层
gmajvfhpa 发表于 2018-1-14 12:31
在加密的工程源码内有解密程序,先加密,再解密。解密后会生成aesbin.bin文件,并保存到调用程序时的当前 ...

请问,如果单纯解密,这句设置密钥的语句需要吗?我现在只看到它是放在加密之前的,但不晓得在解密的时候,它是否要用。。。

SetKey((unsigned char *)argv[3]);


出0入0汤圆

 楼主| 发表于 2018-1-14 15:48:24 | 显示全部楼层
要,且是必须要。不然程序怎么能知道加密时候的密码呢

出0入0汤圆

发表于 2018-1-15 09:07:23 | 显示全部楼层
樓主強阿,感謝分享

出0入0汤圆

发表于 2018-1-15 09:30:11 | 显示全部楼层
感谢分享。

出0入0汤圆

发表于 2018-2-3 00:06:04 | 显示全部楼层
key传入有点问题?

出0入0汤圆

发表于 2018-2-28 15:35:49 | 显示全部楼层
key怎么设置?

出0入0汤圆

发表于 2018-3-6 09:30:24 | 显示全部楼层
chaled 发表于 2018-1-13 14:38
楼主工具不错。我们平时也有用到同样功能。
不过我人笨,我只会用最简单的MFC写一个窗口程序,然后手工打开 ...

用控制台比较好,传参数启动,执行完直接退出,控制台打印的信息会直接在MDK显示出来,比较方便

出0入0汤圆

发表于 2018-3-6 11:54:36 | 显示全部楼层
非常感谢
lz IAP 用的自定义协议还是  FTP方式?
一般都怎么定 IAP协议

出0入0汤圆

 楼主| 发表于 2018-3-6 12:55:17 | 显示全部楼层
3466756555 发表于 2018-3-6 11:54
非常感谢
lz IAP 用的自定义协议还是  FTP方式?
一般都怎么定 IAP协议

用modbus,接100个字节写100个字节。

出0入0汤圆

发表于 2019-6-17 21:59:17 | 显示全部楼层
感谢楼主无私分享。

出0入0汤圆

发表于 2019-6-18 09:34:51 | 显示全部楼层
谢谢分享,感觉牛哄哄

出0入0汤圆

发表于 2019-6-18 10:13:51 | 显示全部楼层
厉害了学习

出0入0汤圆

发表于 2019-6-18 17:49:18 | 显示全部楼层
学习了,厉害

出0入0汤圆

发表于 2019-6-18 18:51:14 | 显示全部楼层
我的IAP程序只是用了简单的异或加密。

出0入0汤圆

发表于 2019-6-18 19:06:24 | 显示全部楼层
不懂如何使用,谢谢分享

出0入0汤圆

发表于 2019-6-19 09:35:12 | 显示全部楼层
方便的工具

出0入0汤圆

发表于 2019-6-26 18:22:37 | 显示全部楼层
还是要加密稳妥一点的啊

出0入0汤圆

发表于 2019-6-26 22:28:58 | 显示全部楼层
需要全部加密吗?加密几十个字节不行?

出0入0汤圆

发表于 2019-7-25 11:47:04 | 显示全部楼层
点赞,MDK 还是有好多功能不知道啊

出0入0汤圆

发表于 2019-9-23 13:50:33 | 显示全部楼层
感謝分享!!

出0入0汤圆

发表于 2019-9-26 13:41:47 | 显示全部楼层
这文件:<..C51\Objects\MP-3.aes> 创建失败.  请问这个是怎么回事

出0入0汤圆

发表于 2019-9-26 15:32:04 | 显示全部楼层
搭车问下,对bin其中某位置16Byte加密和对整个bin加密,在破解难度上有区别吗?

出0入0汤圆

发表于 2019-9-26 16:12:18 | 显示全部楼层
请问楼主,加密后bin文件如何给到客户解密烧写?这个过程应用不是很理解

出0入0汤圆

发表于 2019-9-26 17:18:51 | 显示全部楼层
感谢分享!

出0入0汤圆

发表于 2020-8-31 14:57:49 | 显示全部楼层
算aes单片机有些压力,请问楼主这个程序有没有bin转tea的版本?

出0入0汤圆

发表于 2021-5-26 01:47:29 | 显示全部楼层
感谢楼主无私分享

出0入0汤圆

发表于 2021-5-26 07:28:16 来自手机 | 显示全部楼层
谢谢分享!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 03:45

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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