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

2020-01-01 17:57发布

本帖最后由 gmajvfhpa 于 2018-1-13 14:04 编辑

修改原因:上传程序文件

写了一个控制台小程序,用于bin文件的AES加密。程序取名BinAddAes.exe,调用时,后面带三个字串,第一个是要加密文件的路径及文件名,第二个是加密后的保存路径及文件名,第三个是32个字符的密码。
mdk的设置方法: 节能.jpg (152.53 KB, 下载次数: 0) 下载附件 2018-1-13 13:47 上传
run1 填:C:Keil_v5ARMARMCCinfromelf.exe   --bin -o  ..OBJyuanhuKZ.bin ..OBJyuanhuKZ.axf ,这个fromelf.exe是MDK自带的,路经可能会有所不同,要根据实际位置更改。这个程序的作用是把MDK生成的*.axf生成 *.bin。
run2填:C:Keil_v5ARMARMCCinBinAddAes.exe ..OBJyuanhuKZ.bin ..OBJyuanhuKZ.aes 12345678901234567890123456789012 。把BinAddAes.exe拷贝到相应目录,建议与fromelf.exe相同目录下。这个程序的作用是把*bin加密后生成 *.aes。
BinAddAes的工程源码:
BinAddAes-VS2008.rar (1.52 MB, 下载次数: 164) 2018-1-13 13:54 上传 点击文件名下载附件

单独的BinAddAes程序: BinAddAes.rar (5.1 KB, 下载次数: 135) 2018-1-13 14:03 上传 点击文件名下载附件
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
36条回答
823032003
1楼-- · 2020-01-02 17:56
感谢分享
zxq6
2楼-- · 2020-01-02 18:49
这个很有用啊。
shangdawei
3楼-- · 2020-01-02 21:10
感谢分享!
kinsno
4楼-- · 2020-01-03 02:51
 精彩回答 2  元偷偷看……
gmajvfhpa
5楼-- · 2020-01-03 04:30
kinsno 发表于 2018-1-14 11:59
现在光有加密了,解密的C程序呢??能分亨一个吗?

在加密的工程源码内有解密程序,先加密,再解密。解密后会生成aesbin.bin文件,并保存到调用程序时的当前目录
gmajvfhpa
6楼-- · 2020-01-03 06:14
kinsno 发表于 2018-1-14 11:59
现在光有加密了,解密的C程序呢??能分亨一个吗?
  1.         char * aesbin = (char *)malloc(binsize);//申请内存
  2.         if(aesbin== NULL)
  3.         {
  4.                 printf("内存请求失败. ");
  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> 打开失败. ",argv[1]);//打开操作不成功
  26.         return;//结束程序的执行
  27.     }
  28.         fwrite( aesbin, sizeof( char ), binsize, fpbin );
  29.         fclose(fpbin);       
  30.         free(aesbin);
  31.         free(aes);
复制代码

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

一周热门 更多>