源:利用STM32F唯一96bit序列号实现反拷贝加密的源代码公开

//---------------------------------------------------------------------------
#include
#pragma argsused
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved)
{return 1;
}
//---------------------------------------------------------------------------
//本示例代码用BCB5编写,很容易移植到VC++等编译环境
//导出函数mcuisp_AntiCopy,mcuisp.exe将调用mcuisp_AntiCopy函数来实现反拷贝功能
extern "C" __declspec(dllexport) int __stdcall mcuisp_AntiCopy(unsigned char *buf,         //FLASH内容存储缓冲DWORD buflen,               //FLASH代码长度(字节)DWORD startaddress,         //FLASH的地址偏移,STM32F一般为0x08000000unsigned char const *inbuf, //前12字节为96bit的芯片序列号DWORD inputbuflen           //序列号信息的长度
          );
//--
int __stdcall mcuisp_AntiCopy(unsigned char *buf,         //FLASH内容存储缓冲DWORD buflen,               //FLASH代码长度(字节)DWORD startaddress,         //FLASH的地址偏移,STM32F一般为0x08000000unsigned char const *inbuf, //前12字节为96bit的芯片序列号DWORD inputbuflen           //序列号信息的长度
          )
{//mcuisp_AntiCopy根据FLASH内容和芯片序列号,经过运算后,修改FLASH内容//本例中,简单的把序列号拷贝到0x08010000的位置//可以在STM32的代码中比对0x08010000和0x1ffff7e8的内容,相符才正常运行//实际应用中,可以采取比较复杂的算法memcpy(buf+0x10000,inbuf,12);return 0;
};

上述DLL与mcuisp配合,即可实现STM32F AntiCopy功能。
由于算法由用户自己把握,自由发挥,可最大限度保护用户的代码

转载于:https://www.cnblogs.com/LittleTiger/p/4597438.html

利用STM32F唯一96bit序列号实现反拷贝加密的源代码公开(转)相关推荐

  1. 获取STM32的唯一ID序列号(可用于加密)

    1.基本描述 在STM32的全系列MCU中均有一个96位的唯一设备标识符.在ST的相关资料中,对其功能的描述有3各方面: 用作序列号(例如 USB 字符串序列号或其它终端应用程序) 在对内部 Flas ...

  2. 数字IC手撕代码-流水握手(利用握手解决流水线断流、反压问题)

    前言: 本专栏旨在记录高频笔面试手撕代码题,以备数字前端秋招,本专栏所有文章提供原理分析.代码及波形,所有代码均经过本人验证. 目录如下: 1.数字IC手撕代码-分频器(任意偶数分频) 2.数字IC手 ...

  3. 通过生成序列号防止软件拷贝的基本思路

    软件产品卖出去以后,如何防止客户在多台电脑上重复安装呢?最偷懒的方法就是使用别人的硬件加密狗解决,但是这样的话一来随着销售量的积累会增加成本,二来很多客户不想在电脑上插如此多的加密狗(因为其他的软件可 ...

  4. python反编译加密文件_python打包的二进制文件反编译

    简介 Pyhton是一个脚本语言,在运行Python代码时,最终由Python解释器来执行.解释器就是Python的运行环境,但是除了开发人员,大部分人在使用时并不会安装Python.所以官方就提供了 ...

  5. 利用c++与opencv将文本、图像加密进另一张图片中

    利用c++与opencv将文本.图像加密进另一张图片中 因为水平有限基本只利用了c++与opencv非常浅显简单的东西,实现所谓加密的方式是将文本或者图像的相关数据变为01编码,根据所得01编码影响载 ...

  6. 将DEX反编译成Java源代码

    本文翻译自:decompiling DEX into Java sourcecode 如何将Android DEX(VM字节码)文件反编译成相应的Java源代码? #1楼 参考:https://sta ...

  7. 防拷贝加密U盘的功能有些

    如今,技术优良的防拷贝U盘是指数据资料只限于U盘之中运用,但是U盘中的所有数据在任何时刻都以加密形式存在.因此,技术严谨的防拷贝U盘能够以多种精细化的权限控制方式而确保信息外发之后安全的一种移动存储设 ...

  8. java生成唯一有序序列号_分布式唯一 ID 之 Snowflake 算法

    SegmentFault 社区专栏:全栈修仙之路作者:semlinker No.1 Snowflake 简介 1.1 什么是 Snowflake Snowflake is a service used ...

  9. 利用FileReader和FileWriter完成一个文件拷贝功能

    目标: 在cmd中可以执行java XXXX d:\1.txt d:\2.txt 完成文件的拷贝命令 package com.ryan.io; import java.io.File; import ...

最新文章

  1. 从工业云到工业互联网平台演进的五个阶段
  2. java 线程安全的原因_Java并发编程——线程安全性深层原因
  3. 201209阶段二FFmpeg转码
  4. ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署(三
  5. PyCharm点击设置没反应,无法进行设置
  6. HNUSTOJ-1675 Morse Code(DFS+字典序搜索)
  7. 常用类 (四) ----- Random随机数类
  8. jquery name选择器_jQuery学习(1)
  9. Power BI能否做帕累托分析
  10. iOS常用三方库、插件、知名技术博客、常用开发工具使用介绍等等(Objective-C版本)
  11. 样本大小的确定_显着功效样本大小效应大小之间的关系
  12. 吴军,数学通识50讲
  13. python 快乐的数字
  14. 计算机作业实验报告dw感想,Dreamweaver实验报告.doc
  15. 2017腾讯校招面试回忆 成功拿到offer
  16. 计算机安装双系统但无开机选择,苹果电脑,安装了双系统,一个win7一个apple,开机会直接进入苹果系统,没有选择 - Microsoft Community...
  17. 超酷炫技:10 个牛逼的单行代码编程技巧
  18. swfobject 的一些参数介绍
  19. 水星路由器wan服务器无响应,水星路由器常见故障
  20. 如何解决win11“无法枚举容器中的对象,访问被拒绝”、“右键新建只有文件夹,没有其他选项”的问题。

热门文章

  1. 74. Search a 2D Matrix (Graph; Divide-and-Conquer)
  2. javascrip 中的一些方法
  3. sysfs API总结
  4. Nginx 性能优化
  5. 2.4.5 MySQL InnoDB重做与回滚介绍
  6. s5-1 网络层引言
  7. php动态删除输入框,jQuery实现动态添加和删除input框实例代码
  8. python代码模块与模块之间空1行_Day006|Python语法基础
  9. #1098 : 最小生成树二·Kruscal算法
  10. 数字统计2(依然是数组下标法)