CN115795418B - 水印嵌入方法、装置、计算机、存储介质 - Google Patents
水印嵌入方法、装置、计算机、存储介质 Download PDFInfo
- Publication number
- CN115795418B CN115795418B CN202310063317.9A CN202310063317A CN115795418B CN 115795418 B CN115795418 B CN 115795418B CN 202310063317 A CN202310063317 A CN 202310063317A CN 115795418 B CN115795418 B CN 115795418B
- Authority
- CN
- China
- Prior art keywords
- source code
- watermark
- driver
- file
- central processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明涉及数据加密、识别技术领域,公开了一种水印嵌入方法、装置、计算机、存储介质,方法包括如下步骤:第一生成步骤生成第一源代码;第二生成步骤生成第二源代码,第二源代码携带有水印数据;嵌入步骤,用于将第二源代码嵌入第一源代码中形成第三源代码;编译步骤,用于将第三源代码编译成用于驱动电子设备的第一驱动子文件,及编译成与水印数据相关联的第二驱动子文件;水印数据执行步骤,电子设备的中央处理单元运行第一驱动子文件时,电子设备进入正常运行状态,电子设备的中央处理单元运行第二驱动子文件时,中央处理单元执行与水印数据相关的动作。本发明可用于对固件进行加密,方便未授权使用行为的快速取证。
Description
技术领域
本发明涉及数据加密、识别技术领域,尤其涉及一种可用于对固件进行加密、方便未授权使用行为的快速数据识别、取证的水印嵌入方法、装置、计算机、存储介质。
背景技术
固件(Firmware)就是写入EPROM(可擦写可编程只读存储器)或EEPROM(电可擦可编程只读存储器)中的程序。
固件是指设备内部保存的设备“驱动程序”,通过固件,操作系统(其中MCU可以没有操作系统)才能按照标准的设备驱动实现特定机器的运行动作,因此,固件担任着系统最基础最底层工作的软件。
而在硬件设备中,固件就是硬件设备的灵魂,因为一些硬件设备除了固件以外没有其它软件组成,因此固件也就决定着硬件设备的功能及性能。电子产品,例如各种智能小家电的内部都有内部固件,智能小家电是因为有了固件才能实现其特定的智能动作。
市场瞬息万变,需求也是快速变化。企业投放市场的产品需要不断地进行迭代,有的是发布新款的型号,有的是发布更高级版本的固件。这都是基于企业在这背后对研发付出巨大的投入。每当一个新款的产品进入市场、或者更高级版本的固件发布,研发企业承担着被不良商家直接抄袭硬件设计,并盗用已发布的固件的风险,不良商家在市场上迅速地推出盗版仿造产品,以使研发企业的市场份额和经济利益受到严重的损害,使得市场形成更好的良性竞争。目前的电子产品,其内部的电路板的设计已经高度集成化,获取主要芯片的信息后就很容易被仿制,所以硬件的仿冒难度不高,那么企业保护电路板的途径就需要从固件中着手。如果不希望固件被不良商家大量复制,研发企业虽然可以通过禁止固件的流传得以保护,但是消费者每次对固件下载或者升级,都需要通过研发企业开通的服务渠道进行,效率将受到比较大的影响,如此,一方面将影响消费者的体验,第二增加研发企业不必要的额外运营开支;此外,由于固件也是容易被盗版者复制的,所以在固件加密保护上需要进行管控,一方面把固件升级权限开放给用户,同时还需要保护固件不被盗版者复制,即使被不法分子获取并复制到产品上时,也容易被取证。
发明内容
本发明的目的是提供一种可用于对固件进行加密、方便未授权使用行为的快速取证的水印嵌入方法、装置、计算机、存储介质。
为了实现上述目的,第一方面,本发明提供的技术方案为:提供一种水印嵌入方法,用于对电子设备运行的驱动文件嵌入水印,包括如下步骤:
第一生成步骤,用于将第一描述文件生成第一源代码;
第二生成步骤,用于将第二描述文件生成第二源代码,其中,所述第二源代码携带有水印数据;
嵌入步骤,用于将所述第二源代码嵌入所述第一源代码中形成第三源代码;
编译步骤,用于将所述第三源代码编译成用于驱动电子设备的第一驱动子文件,及编译成与所述水印数据相关联的第二驱动子文件;
水印数据执行步骤,所述电子设备的中央处理单元运行所述第一驱动子文件时,所述电子设备进入正常运行状态,所述电子设备的中央处理单元运行所述第二驱动子文件时,中央处理单元执行与所述水印数据相关的动作。
所述编译步骤后,还包括烧录步骤,所述烧录步骤用于将所述驱动文件烧录至电子设备的存储器内。
所述水印数据执行步骤中,所述电子设备启动后,所述中央处理单元自动运行所述第一驱动子文件及第二驱动子文件。
所述第二生成步骤中,用于将第二描述文件生产第二源代码,所述第二描述文件具有一组第一十进制的数字,所述第二源代码中具有一组第二十进制的数字,其中所述第二十进制的数字与所述第一十进制的数字一一相对应,且所述水印数据以第二十进制的数字的形式存在于所述第二源代码中。
所述编译步骤中,将所述第二十进制的数字编译形成二进制的字符串,并以所述二进制的字符串的形式存在于所述第二驱动子文件中。
每个所述第二十进制的数字对应地编译成一条二进制的字符串,进而形成多条所述二进制的字符串,多条所述二进制的字符串组成指令集合,每条所述二进制的字符串为所述指令集合中的一条指令。
所述水印数据执行步骤中,所述中央处理单元具有若干I/O口,所述第二驱动子文件为通过所述第二源代码编译形成的,所述指令集合的每条指令均用于控制所述I/O口对应地输出一水印电信号。
所述水印电信号为,以预设的周期性的方式随时间切换的高电平与低电平,并通过所述I/O口进行输出。
所述电子设备具有RGB运行状态灯,所述I/O口包括第一I/O口、第二I/O口及第三I/O口,分别对应地连接红色LED、绿色LED及蓝色LED,并分别用于控制所述红色LED、绿色LED及蓝色LED工作。
第二方面,本发明提供的技术方案为:提供一种水印嵌入装置,用于对电子设备运行的驱动文件嵌入水印,包括:
第一生成单元,用于将第一描述文件生成第一源代码;
第二生成单元,用于将第二描述文件生成第二源代码,其中,所述第二源代码携带有水印数据;
嵌入单元,用于将所述第二源代码嵌入所述第一源代码中形成第三源代码;
编译单元,用于将所述第三源代码编译成用于驱动电子设备的第一驱动子文件,及编译成与所述水印数据相关联的第二驱动子文件;
水印数据执行单元,所述电子设备的中央处理单元运行所述第一驱动子文件时,所述电子设备进入正常运行状态,所述电子设备的中央处理单元运行所述第二驱动子文件时,中央处理单元执行与所述水印数据相关的动作。
还包括烧录单元,所述烧录单元用于将所述驱动文件烧录至电子设备的存储器内。
所述水印数据执行单元中,所述电子设备启动后,所述中央处理单元自动运行所述第一驱动子文件及第二驱动子文件。
所述第二生成单元中,用于将第二描述文件生产第二源代码,所述第二描述文件具有一组第一十进制的数字,所述第二源代码中具有一组第二十进制的数字,其中所述第二十进制的数字与所述第一十进制的数字一一相对应,且所述水印数据以第二十进制的数字的形式存在于所述第二源代码中。
所述编译单元中,将所述第二十进制的数字编译形成二进制的字符串,并以所述二进制的字符串的形式存在于所述第二驱动子文件中。
每个所述第二十进制的数字对应地编译成一条二进制的字符串,进而形成多条所述二进制的字符串,多条所述二进制的字符串组成指令集合,每条所述二进制的字符串为所述指令集合中的一条指令。
所述水印数据执行单元中,所述中央处理单元具有若干I/O口,所述第二驱动子文件为通过所述第二源代码编译形成的,所述指令集合的每条指令均用于控制所述I/O口对应地输出一水印电信号。
所述水印电信号为,以预设的周期性的方式随时间切换的高电平与低电平,并通过所述I/O口进行输出。
所述电子设备具有RGB运行状态灯,所述I/O口包括第一I/O口、第二I/O口及第三I/O口,分别对应地连接红色LED、绿色LED及蓝色LED,并分别用于控制所述红色LED、绿色LED及蓝色LED工作。
第三方面,本发明提供的技术方案为:提供一种计算机,所述计算机包括至少一个处理器、存储介质,所述计算机具有运行程序的环境,; 所述至少一个处理器与所述存储介质连接; 所述存储介质用于存储程序,所述处理器用于执行所述程序,所述程序在被所述至少一个处理器执行时,使所述至少一个处理器执行所述的水印嵌入方法。
第四方面,本发明提供的技术方案为:提供一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质存储有程序,所述程序使得所述计算机执行所述的水印嵌入方法。
与现有技术相比,本发明的有益效果为:
1、第二源代码携带有水印数据,水印数据具有较强的隐秘性,不容易被识别;
2、将第二源代码嵌入第一源代码中形成第三源代码,如此水印数据的隐秘性进一步的加强,识别难点加大;
3、电子设备的中央处理单元运行第二驱动子文件时,中央处理单元执行与所述水印数据相关的动作,因此水印数据将被自动执行,不容易被抄袭者识别,但是容易被研发企业取证,因此能够有效地保护研发企业所研发的产品、开发的程序不被抄袭。
通过以下的描述并结合附图,本发明将变得更加清晰,这些附图用于解释本发明的实施例。
附图说明
图1所示为本发明电子装置的电路原理模块图。
图2所示为本发明水印嵌入方法的一个实施例的流程图。
图3所示为本发明水印嵌入方法的另一个实施例的流程图。
图4所示为第二生成步骤或者第二生成单元的生成过程示意图。
图5所示为中央处理单元驱动RGB运行状态灯的示意图。
图6所示为本发明水印嵌入装置的一个实施例的示意图。
图7所示为本发明水印嵌入装置的一个实施例的示意图。
图8所示为一种计算机的原理模块图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在下文中,若在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
此外,若本发明涉及到术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
首先,本发明实施例所指的电子设备更多地指向“红海市场”,而何为“红海市场”,指的是门槛低、参与者众多、相似产品繁多、竞争激烈、利润透明,具有以上这些特点的市场。红海市场的某些产品,消费者在选择商品时,往往更加看重价格,因此容易形成“价格战”,如此注重研发、产品质量的企业,其产品往往没有优势,使市场得不到良性的竞争,注重研发的企业经常苦于无法给到消费者质量更好、档次更高的产品体验。
当然,本发明实施例所指的电子设备也可以指向“蓝海市场”,再此不作具体的限制。
本发明实施例所指的电子设备或者说电子产品,可以是包括但不限于:小家电、大家电、智能灯器、厨房电器、智能电器、美容仪器、医用仪器、电动玩具、游戏机等等,甚至还可以是上述电子设备中的一个或者几个电子模块。更具体地,这些电子设备可以是豆浆机、破壁机、电高压锅、消毒柜、微波炉、空气炸锅、智能加湿器、洗衣机、冰箱、空调、按摩仪、美容射频仪、美容导入仪、电动玩具车、电动玩具枪、掌上游戏机等等,在此不作具体的限制。
此外,电子设备还可以是交通工具中的电子模组,例如电动摩托车、电动滑板车中的行车控制电脑,或者其他电子模块,在此不作具体的限制。
上述电子产品(电子设备)大都具有这样的特征:产品开发周期短,快速投放市场,产品快速更新换代,市场竞争激烈、胡乱,利润低。此外还有一个不容忽视的特点就是,仿冒及劣质产品繁多,市场形成了非良性的竞争,甚至出现山寨劣质产品占据主流市场的劣币驱逐良币的现象,消费者经常被误导而购买了质量没有保障的电子产品,因此消费者经常吃亏上当。而另一方面,正规的生产厂家由于长期受制于市场非良性竞争,而不能将质量好、可靠性高的电子产品投递到消费者手中,使得正规的研发企业和消费者均不能从市场受益。因此,为了使得市场得到良性竞争,让真正投入研发、致力于开发质优产品的研发企业(商家),和广大消费者均能从市场受益,本发明的申请者在长期忍受于市场的痛点,付出创造性劳动,从而提出本发明的技术方案。下面详细地介绍本发明:
首先,图1示出了本发明实施例提供的电子设备100的结构示意图。参照图1,电子设备 100包括存储器101、存储器101内存储有运行程序的环境102和程序103(其中单片机没有操作系统,属于大循环往复执行),一个或多个中央处理单元104、多个I/O口105(图1只示意出1个)、显示单元106等等,其中,显示单元106,也可以称为显示器,或直接通俗的称为显示屏、荧幕、LED显示模块、单个LED灯等等,是一种可输出图像或感触信息的设备,常见的电子显示设备,例如:电视显示屏、电脑显示器、运行状态指示灯;I/O口105可以直接为中央处理单元104的I/O口,也可以为外接的I/O口,在此不作具体的限制。
存储器101可用于存储软件程序,如本发明实施例中的方法及装置对应的程序,中央处理单元104(处理器)通过运行存储在存储器内的软件程序,从而执行各种功能应用以及数据处理,如本发明实施例提供的方法及装置。
存储器101可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器 (Read Only Memory,ROM),可编程只读存储器 (Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。中央处理单元以及其他可能的组件对存储器的访问可在存储控制器的控制下进行。
中央处理单元104可以是一种集成电路芯片,具有信号的处理能力。具体可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、微控制器(MicroController Unit,MCU)、网络处理器(Network Processor,NP)或者其他常规处理器;还可以是专用处理 器,包括数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuits,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以 实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。在一些实施例中,中央处理单元、I/O口、存储器以及存储控制器可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
本发明与现有技术相比,具有以下有益效果:
1、第二源代码携带有水印数据,水印数据具有较强的隐秘性,不容易被识别;
2、将第二源代码嵌入第一源代码中形成第三源代码,如此水印数据的隐秘性进一步的加强,识别难度加大;
3、电子设备的中央处理单元运行第二驱动子文件时,中央处理单元执行与所述水印数据相关的动作,因此水印数据将被自动执行,不容易被抄袭者识别,但是容易被研发企业取证,因此能够有效地保护研发企业所研发的产品、开发的程序不被抄袭。
参考图2,图2所示为本发明水印嵌入方法的流程图。本发明提供的技术方案为:提供一种水印嵌入方法,用于对电子设备运行的驱动文件嵌入水印,其中,驱动文件即为电子设备中的固件,包括如下步骤:
S100,第一生成步骤,用于将第一描述文件生成第一源代码;
一个实施例中,步骤S100,目前市面上具有用于生成源代码的智能化代码生成软件,用于只需要将设计需求按照相应的要求描述清楚,例如给出详细的设计需求、实现步骤、所需要的参数,根据相应的AI模型,即可在智能化代码生成软件中生成所需要的代码,因此所述第一描述文件,可以理解为具体的设计需求,再通过智能化软件根据设计需求生成源代码,在一些相对简单的代码设计实施例中,可以通过智能化代码生成软件生成。
在更多的实施例中,为了更好地管控软件可能存在的BUG,以及更加方便后期升级,所述第一生成步骤中,将第一描述文件生成第一源代码,更多的是通过相应的工作人员开发形成的。
具体地,所述第一源代码在本发明的实施例中,更多地是指电子设备正常运行所需要的驱动程序,也即是电子设备中的固件,在上述电子产品(电子设备)中,大部分只有固件而没有其他的软件程序,例如上述的各类电子产品,均是出厂前烧录好固件,有的电子产品其固件终身不升级,有的电子产品其固件定期或不定期的需要进行升级和维护,以解决程序中的BUG,使得程序更加的优化,功能更加的丰富。
S200,第二生成步骤,用于将第二描述文件生成第二源代码,其中,所述第二源代码携带有水印数据;
步骤S200中,跟步骤S100相似地,所述第二描述文件同为相应的设计需求,所述第二源代码是根据所述第二描述文件描述的设计需求而生成的源代码,所述第二源代码携带水印数据,其中所述水印数据是用于对代码添加加密信息的标记。能够更好地保护研发企业所开发出来的电子产品,或者电子产品内部的电路模块,或者是电路模块内的固件不被不法商人抄袭和仿冒。背景技术中已经提到,硬件电路由于广泛使用集成度很高的芯片,而使得保密困难,很容易被抄袭和仿冒,于是研发企业则把硬件电路中的驱动程序(固件)进行加密。由于红海市场,上面提到是竞争大、利润透明,因此没办法用上高成本的加密方案,高成本的加密方案本身不利于产品投放市场。因此本发明实施例中的水印数据需是低成本的加密手段,但是又不影响加密效果,且容易取证的一种加密手段。
在一个实施例中,所述第二描述文件的具体需求为添加所述水印数据的需求,而所述第二源代码的主要内容甚至是全部内容,为所述水印数据的内容。
S300,嵌入步骤,用于将所述第二源代码嵌入所述第一源代码中形成第三源代码;
步骤S300中,所述第二源代码嵌入所述第一源代码中形成第三源代码,使得所述第三源代码中嵌入了水印数据。所述第二源代码中的水印数据,由于往往受制于自身的篇幅局限,是容易被识别的,将第二源代码嵌入所述第一源代码后,隐秘性增加,因此,从第三源代码看是不容易看出所述水印数据的,尤其是后面还通过编译步骤形成二进制的bin文件之后,所述水印数据的隐秘性将会更高。
S400,编译步骤,用于将所述第三源代码编译成用于驱动电子设备的第一驱动子文件,及编译成与所述水印数据相关联的第二驱动子文件;
步骤S400中,编译步骤是将源程序产生可执行文件的过程。所述第一驱动子文件为电子设备的固件,所述第二驱动子文件为电子设备在运行所述第一驱动子文件时,自动运行或者收到控制指令后,执行与所述水印数据相关联的程序。
其中所述第一驱动子文件记第二驱动子文件均是以二进制bin文件的形式存在,可存储于电子设备的内存储器中,可被中央处理单元访问和运行,中央处理单元运行所述第一驱动子文件从而实现电子设备的正常功能,所述中央处理单元运行所述第二驱动文件时,将会执行与所述水印数据相关联的程序。
S500,水印数据执行步骤,所述电子设备的中央处理单元运行所述第一驱动子文件时,所述电子设备进入正常运行状态,所述电子设备的中央处理单元运行所述第二驱动子文件时,中央处理单元执行与所述水印数据相关的动作。
步骤S500中,是通过步骤S100-S400之后,所述水印数据在本步骤中被执行的步骤。所述第一驱动子文件是电子设备的驱动文件也即固件,所述第一驱动子文件使得所述电子设备进入正常运行状态。此时,电子设备的中央处理单元可以自动运行所述第二驱动子文件,也可以是非自动运行所述第二驱动子文件,而在特定的情况下,例如是接收到外部对其发送的控制指令之后,电子设备才会运行所述第二驱动文件,而使得所述中央处理单元执行于所述水印数据相关的动作,而所述水印数据相关的动作可以是非显性状态下进行的,同时所占用的资源是非常小的,且不必一直执行该动作,可以以时间为周期间隔地进行,以进一步地缩小所述第二驱动文件占用系统的资源。如此,能够避免被抄袭商家发现,和影响用户的体验。
更具地,所述水印数据相关的动作可以是中央处理单元通过空闲的或者比较次要的I/O口(即非必要的I/O口,或者说不影响设备正常运行的I/O口),为了更小地占用系统资源,所述水印数据相关的动作是在待机状态下运行、或者在所述中央处理单元处于低负荷的状态下运行。
参考图3所示,所述编译步骤S400后,还包括S450,烧录步骤,所述烧录步骤用于将所述驱动文件烧录至电子设备的存储器内。
参考图3所示的实施例中,其中步骤S100-S400及步骤S500在此不在赘述。
步骤S450,烧录步骤可以为本地烧录,也可以为远程在线烧录。因此,参考图1,所述电子设备100还具有网络接口107,可以实现远程烧录。具体地,步骤S450可以为程序的初次烧录,也可以为程序的二次烧录或者多次烧录,其中二次烧录或者多次烧录可以是对程序的重新烧录,或者是对原有程序的升级,例如是对原有的程序存在的BUG进行升级,或者对原有程序的进一步的完善、优化。
进一步地,由于S100第一生成步骤与S200第二生成步骤分别生成的所述第一源代码及所述第二源代码,均可以是新成的代码或是在原有的代码上进行修改生成的,而由于所述第三源代码是由所述第一源代码及第二源代码组合形成的,如果需要对所述水印数据进行修改,那么则需要对所述第二源代码进行修改,之后再重新形成所述第三源代码的升级版本,再将所述第三源代码的升级版本,再通过S400编译步骤,编译成新版本的第一驱动子文件及第二驱动子文件,再通过S450烧录步骤烧录至电子设备的存储器内。
此外,S400编译步骤也可以单独对第二源代码进行编译以形成第二驱动子文件,再通过S450烧录步骤烧录至电子设备的存储器内。由此,可以对所述水印数据进行新添加、或者对原有的水印数据进行修改或者更新。
一个实施例中,S500,所述水印数据执行步骤中,所述电子设备启动后,所述中央处理单元104自动运行所述第一驱动子文件及第二驱动子文件。
一个实施例中,当电子设备启动后,所述第一驱动子文件及第二驱动子文件是自动地被所述中央处理单元所执行,如此所述中央处理单元能够通过所述第二驱动子文件执行与所述水印相关的动作,如此能够方便后期需要维权时的取证。
参考图4,S200,第二生成步骤中,用于将第二描述文件201生产第二源代码202,所述第二描述文件201具有一组第一十进制的数字,所述第二源代码202中具有一组第二十进制的数字,其中所述第二十进制的数字与所述第一十进制的数字一一相对应,且所述水印数据以第二十进制的数字的形式存在于所述第二源代码中。
参考图4所示,一个实施例中,所述第二描述文件201具有一组第一十进制的数字:0-7,所述第二源代码202中的第二十进制的数字是10-17,具体地:0对应10,1对应11,2对应12,……,7对应17。
需要说明的是,所述第一十进制的数字:0-7,以及所述第二十进制的数字是10-17只是一个代表符号,所述第一十进制的数字可以用任何十进制的数字表示,所述第二十进制的数字同样可以用任何十进制的数字表示,只需要建立起一一对应的关系即可。
一个实施例中,S400,所述编译步骤中,将所述第二十进制的数字编译形成二进制的字符串,并以所述二进制的字符串的形式存在于所述第二驱动子文件中。
具体地,参考下表1以对本实施例进行说明。
表1:
第二十进制的数字 | 二进制的字符串 |
10 | 1010 |
11 | 1011 |
12 | 1100 |
13 | 1101 |
14 | 1110 |
15 | 1111 |
16 | 10000 |
17 | 1001 |
…… | …… |
由上表1可知,所述第二驱动子文件有一组二进制的字符串,而这组二进制的字符串是通过所述第二十进制的数字编译形成。
需要说明的是,表1中的二进制的字符串可以是直接由所述第二十进制的数字按照十进制转二进制的规则转换而成,也可以按照研发企业内定的映射规则转换而成,如此可以更好地增强隐秘性,仿冒商家不容易从代码或者bin文件中挖掘水印数据,或者说要极大地增加挖掘水印数据和破解水印数据的成本,较好地构建了竞争的壁垒。
在上表1中,为了简便地展示,所述第二十进制的数字与所述二进制的字符串直接按照十进制转二进制的规则转换而成,并存储在所述第二驱动子文件中。
一个实施例中,每个所述第二十进制的数字对应地编译成一条二进制的字符串,进而形成多条所述二进制的字符串,多条所述二进制的字符串组成指令集合,每条所述二进制的字符串为所述指令集合中的一条指令。
具体到本实施例中,继续参考表1,所述第二十进制的数字与所述二进制的字符串一一对应,所述二进制的字符串是存在于所述第二驱动文件内,是能够给电子设备的中央处理单元所直接运行的文件。且多条所述二进制的字符串组成指令集合,每条所述二进制的字符串为所述指令集合中的一条指令,是指多条所述二进制的字符串内的任何一条字符串均为一条指令,所述中央处理单元可以通过取指令、指令译码及执行指令,将所述二进制的字符串组成的指令进行执行,其中所述中央处理单元的具体工作原理在此不再赘述。
一个实施例中,S500,所述水印数据执行步骤中,所述中央处理单元具有若干I/O口,所述第二驱动子文件为通过所述第二源代码编译形成的,所述指令集合的每条指令均用于控制所述I/O口对应地输出一水印电信号。
在本实施例中,参考图5,所述中央处理单元104具有若干个I/O口,其中有四个是应用到本实施例中,即是I/O1、I/O2 、I/O3、I/O4。所述指令集合中的每条指令可用于控制I/O1、I/O2 、I/O3、I/O4输出一水印电信号,所述水印电信号即为从I/O口输出的高电平或者低电平。具体地,例如二进制的字符串为1010时,对应地,I/O1输出高电平、I/O2输出低电平 、I/O3输出高电平、I/O4输出低电平,例如二进制的字符串为1111时,对应地,I/O1- I/O4均为输出高电平,又例如二进制的字符串为10000时,舍去最高位的1,让,I/O1- I/O4均为输出低电平。
为了更加简化地,同时不用占用更多的I/O口,还可以用选择I/O1、I/O2 、I/O3、I/O4中的其中1至3个,对应地,同样选择该4位数的二进制的字符串中的其中1至3位二进制数字作为输出信号。而实际应用中,更优地,选择3个I/O口,以及所述二进制的字符串中的3位二进制字数一一对应这3个I/O口作为输出端,每个I/O口对应所述二进制的字符串中的数字以输出高电平或者低电平信号。
一个实施例中,所述水印电信号为,以预设的周期性的方式随时间切换的高电平与低电平,并通过所述I/O口进行输出。
本实施例中,所述水印电信号即为高电平或低电平的信号,为了更好地进行加密,研发企业可以设定高电平/低电平的切换的时间,并依此作为取证的依据之一。
具体地,参照上述实施例进行说明:当二进制的字符串中的3位二进制字数一一对应这3个I/O口即I/O1、I/O2 、I/O3作为输出端时,该二进制的字符串中的每个二进制数字对应一个I/O口输出,且该二进制的字符串中的每个二进制数字所输出高电平/低电平的时间可以相同,或者各不相同,例如:二进制的字符串1010,取其中高三位即(101)作为控制指令对应地通过I/O1、I/O2 、I/O3进行输出,那么I/O1输出高电平、I/O2输出低电平、I/O3输出高电平。且I/O1输出高电平、I/O2输出低电平、I/O3输出高电平的时间可以相同,例如均为50ms(50毫秒),或者I/O1输出高电平50ms,I/O2输出低电平30ms,I/O3输出高电平60ms,即各个I/O口所输出的电平信号的时间长短可以不一致,使得仿冒商家破解的难度进一步加大。
本实施例中,以预设的周期性的方式随时间切换的高电平与低电平,具体是指与时间为周期进行切换,即一条指令执行完之后,间隔一个时间周期T,执行下一条指令,而对T的限制是宽松的,可以是几十毫秒几秒甚至是几分钟均可。
具体地,为了更好地对上述实施例进行说明,下面参考表2进行说明:
表2:
表2中,指令集合,包括:指令1、指令2、指令3、指令4、指令5,I/O口包括有I/O1、I/O2、I/O3、I/O4,因此,指令及二进制得字符串包括有:
指令1对应二进制的字符串1:1001;
指令2对应二进制的字符串2:0011;
指令3对应二进制的字符串3:0110;
指令4对应二进制的字符串4:1110;
指令5对应二进制的字符串5:0101;
需要说明的是,指令、二进制的字符串可以包括但不限于5条,每条二进制的字符串为所述指令集合中的一条指令,且所述指令集合中的每条指令均可以是重复执行的;
通过I/O1输出的二进制数字是:10010……;
通过I/O2输出的二进制数字是:00111……;
通过I/O3输出的二进制数字是:01110……;
通过I/O4输出的二进制数字是:11001……。
上述各个I/O口在执行完当前指令时,以预设的周期性的方式随时间切换至下一条指令,即是按照一个预设的时间周期T,执行完当前指令后,执行下一条指令。
此外,各个I/O口在执行指令时,即:I/O1、I/O2、I/O3、I/O4在执行二进制的字符串1时,每个I/O口执行指令信号的时间长短也是不同的。
一个实施例中,所述电子设备具有RGB运行状态灯,所述I/O口包括第一I/O口、第二I/O口及第三I/O口,分别对应地连接红色LED、绿色LED及蓝色LED,并分别用于控制所述红色LED、绿色LED及蓝色LED工作。
需要说明的是,所述RGB运行状态灯指示着电子设备的正常运行状态,例如电加热水壶具有RGB运行状态灯,其亮红灯时,表示电加热水壶正在加热,亮绿灯时表示加热完成;又如蓝牙小音箱具有RGB运行状态灯,其亮红灯时,表示蓝牙小音箱正在充电,亮绿灯时候表示充电完成,蓝牙小音箱正常工工作时,其设置为呼吸灯的状态等等。总之,几乎所有的电子设备均会设置有RGB运行状态灯,所述RGB运行状态灯在亮不同色光表示电子设备处于不同的状态,方便用户了解电子设备的工作状态。
需要说明的是,所述RGB运行状态灯为一体式的LED组合灯珠,可以单独发红光、绿光、蓝光,也可以是它们三个的组合,即是能够组成发出7种色光,例如红光和绿光亮,而蓝光不亮时,所述RGB运行状态灯显示黄光状态,又例如红光、绿光及蓝光均亮时,所述RGB运行状态灯显示白光状态等等。
参考图5对本实施例进行说明,所述第一I/O口、第二I/O口及第三I/O口对应为图5的I/O1、I/O2 、I/O3分别对应地连接所述RGB运行状态灯,因此所述RGB运行状态灯能够随着所述中央控制单元对每个I/O口发出的控制指令而进行各种颜色光的切换,且切换的时间周期也是可控的。
随着所述RGB运行状态灯内的红色LED、绿色LED及蓝色LED,随时间为周期进行切换,且时间周期设置为在50ms之内,人的肉眼是不能察觉所述RGB运行状态灯的灯光切换的。当所述RGB运行状态灯正在显示电子产品的运行状态时,例如电子设备正常运行,所述RGB运行状态灯持续地显示为绿色,所述中央处理单元发出所述水印电信号给所述RGB运行状态灯,所述水印电信号被所述RGB运行状态灯所执行出来,针对所述水印电信号发出不同颜色的光,且按照预定的顺序和时间周期进行切换色序,仿冒商家和用户不能觉察,因为执行所述水印电信号的时间足够短,人肉眼看所述RGB运行状态灯会一直显示绿色光。但是可以通过摄像机录像而对所述RGB运行状态灯的图像贞进行分析,若图像帧所对应的色序的变化规律符合一研发企业所预设定的所述水印电信号的变化规律,那么为该电子设备内部所运行的程序是该研发企业所开发的,提供佐证。
参考图6,图6所示为水印嵌入装置的模块示意图。本发明提供的技术方案为:提供一种水印嵌入装置,用于对电子设备运行的驱动文件嵌入水印,其中,驱动文件即为电子设备中的固件,包括:
第一生成单元10,用于将第一描述文件生成第一源代码;
一个实施例中,第一生成单元10,目前市面上具有用于生成源代码的智能化代码生成软件,用于只需要将设计需求按照相应的要求描述清楚,例如给出详细的设计需求、实现步骤、所需要的参数,根据相应的AI模型,即可在智能化代码生成软件中生成所需要的代码,因此所述第一描述文件,可以理解为具体的设计需求,再通过智能化软件根据设计需求生成源代码,在一些相对简单的代码设计实施例中,可以通过智能化代码生成软件生成。
在更多的实施例中,为了更好地管控软件可能存在的BUG,以及更加方便后期升级,所述第一生成单元10中,将第一描述文件生成第一源代码,更多的是通过相应的工作人员开发形成的。
具体地,所述第一源代码在本发明的实施例中,更多地是指电子设备正常运行所需要的驱动程序,也即是电子设备中的固件,在上述电子产品(电子设备)中,大部分只有固件而没有其他的软件程序,例如上述的各类电子产品,均是出厂前烧录好固件,有的电子产品其固件终身不升级,有的电子产品其固件定期或不定期的需要进行升级和维护,以解决程序中的BUG,使得程序更加的优化,功能更加的丰富。
第二生成单元20,用于将第二描述文件生成第二源代码,其中,所述第二源代码携带有水印数据;
第二生成单元20中,跟第一生成单元10相似地,所述第二描述文件同为相应的设计需求,所述第二源代码是根据所述第二描述文件描述的设计需求而生成的源代码,所述第二源代码携带水印数据,其中所述水印数据是用于对代码添加加密信息的标记。能够更好地保护研发企业所开发出来的电子产品,或者电子产品内部的电路模块,或者是电路模块内的固件不被不法商人抄袭和仿冒。背景技术中已经提到,硬件电路由于广泛使用集成度很高的芯片,而使得保密困难,很容易被抄袭和仿冒,于是研发企业则把硬件电路中的驱动程序(固件)进行加密。由于红海市场,上面提到是竞争大、利润透明,因此没办法用上高成本的加密方案,高成本的加密方案本身不利于产品投放市场。因此本发明实施例中的水印数据需是低成本的加密手段,但是又不影响加密效果,且容易取证的一种加密手段。
在一个实施例中,所述第二描述文件的具体需求为添加所述水印数据的需求,而所述第二源代码的主要内容甚至是全部内容,为所述水印数据的内容。
嵌入单元30,用于将所述第二源代码嵌入所述第一源代码中形成第三源代码;
一个实施例中,嵌入单元30,所述第二源代码嵌入所述第一源代码中形成第三源代码,使得所述第三源代码中嵌入了水印数据。所述第二源代码中的水印数据,由于往往受制于自身的篇幅局限,是容易被识别的,将第二源代码嵌入所述第一源代码后,隐秘性增加,因此,从第三源代码看是不容易看出所述水印数据的,尤其是后面还通过编译单元40编译形成二进制的bin文件之后,所述水印数据的隐秘性将会更高。
编译单元40,用于将所述第三源代码编译成用于驱动电子设备的第一驱动子文件,及编译成与所述水印数据相关联的第二驱动子文件;
一个实施例中,编译单元40,编译单元40是将源程序产生可执行文件的过程。所述第一驱动子文件为电子设备的固件,所述第二驱动子文件为电子设备在运行所述第一驱动子文件时,自动运行或者收到控制指令后,执行与所述水印数据相关联的程序。
其中所述第一驱动子文件记第二驱动子文件均是以二进制bin文件的形式存在,可存储于电子设备的内存储器中,可被中央处理单元访问和运行,中央处理单元运行所述第一驱动子文件从而实现电子设备的正常功能,所述中央处理单元运行所述第二驱动文件时,将会执行与所述水印数据相关联的程序。
水印数据执行单元50,所述电子设备的中央处理单元运行所述第一驱动子文件时,所述电子设备进入正常运行状态,所述电子设备的中央处理单元运行所述第二驱动子文件时,中央处理单元执行与所述水印数据相关的动作。
水印数据执行单元50中,是通过所述第一生成单元10、第二生成单元20、嵌入单元30、编译单元40的工作之后,所述水印数据在本单元中被执行。所述第一驱动子文件是电子设备的驱动文件也即固件,所述第一驱动子文件使得所述电子设备进入正常运行状态。此时,电子设备的中央处理单元可以自动运行所述第二驱动子文件,也可以是非自动运行所述第二驱动子文件,而在特定的情况下,例如是接收到外部对其发送的控制指令之后,电子设备才会运行所述第二驱动文件,而使得所述中央处理单元执行于所述水印数据相关的动作,而所述水印数据相关的动作可以是非显性状态下进行的,同时所占用的资源是非常小的,且不必一直执行该动作,可以以时间为周期间隔地进行,以进一步地缩小所述第二驱动文件占用系统的资源。如此,能够避免被抄袭商家发现,和影响用户的体验。
更具地,所述水印数据相关的动作可以是中央处理单元通过空闲的或者比较次要的I/O口(即非必要的I/O口,或者说不影响设备正常运行的I/O口),为了更小地占用系统资源,所述水印数据相关的动作是在待机状态下运行、或者在所述中央处理单元处于低负荷的状态下运行。
一个实施例中,参考图7,还包括烧录单元45,所述烧录单元45用于将所述驱动文件烧录至电子设备的存储器内。
参考图7所示的实施例中,其中第一生成单元10、第二生产单元20、嵌入单元30、编译单元40、及水印数据执行单元50在此不在赘述。
烧录单元45可以为本地烧录,也可以为远程在线烧录。因此,参考图1,所述电子设备100还具有网络接口107,可以实现远程烧录。具体地,烧录单元45可以为程序的初次烧录,也可以为程序的二次烧录或者多次烧录,其中二次烧录或者多次烧录可以是对程序的重新烧录,或者是对原有程序的升级,例如是对 原有的程序存在的BUG进行升级,或者对原有程序的进一步的完善、优化。
进一步地,由于所述第一生成单元10及第二生成单元20分别生成的所述第一源代码及所述第二源代码,均可以是新成的代码或是在原有的代码上进行修改生成的,而由于所述第三源代码是由所述第一源代码及第二源代码组合形成的,如果需要对所述水印数据进行修改,那么则需要对所述第二源代码进行修改,之后再重新形成所述第三源代码的升级版本,再将所述第三源代码的升级版本,再通过所述编译单元40,编译成新版本的第一驱动子文件及第二驱动子文件,再通过所述烧录单元45烧录至电子设备的存储器内。
此外,所述编译单元40也可以单独对第二源代码进行编译以形成第二驱动子文件,再通过所述烧录单元45烧录至电子设备的存储器内。由此,可以对所述水印数据进行新添加、或者对原有的水印数据进行修改或者更新。
所述水印数据执行单元50中,所述电子设备启动后,所述中央处理单元自动运行所述第一驱动子文件及第二驱动子文件。
一个实施例中,当电子设备启动后,所述第一驱动子文件及第二驱动子文件是自动地被所述中央处理单元所执行,如此所述中央处理单元能够通过所述第二驱动子文件执行与所述水印相关的动作,如此能够方便后期需要维权时的取证。
一个实施例中,参考图4,所述第二生成单元20中,用于将第二描述文件201生产第二源代码202,所述第二描述文件201具有一组第一十进制的数字,所述第二源代码202中具有一组第二十进制的数字,其中所述第二十进制的数字与所述第一十进制的数字一一相对应,且所述水印数据以第二十进制的数字的形式存在于所述第二源代码中。
参考图4所示,一个实施例中,所述第二描述文件201具有一组第一十进制的数字:0-7,所述第二源代码202中的第二十进制的数字是10-17,具体地:0对应10,1对应11,2对应12,……,7对应17。
需要说明的是,所述第一十进制的数字:0-7,以及所述第二十进制的数字是10-17只是一个代表符号,所述第一十进制的数字可以用任何十进制的数字表示,所述第二十进制的数字同样可以用任何十进制的数字表示,只需要建立起一一对应的关系即可。
一个实施例中,所述编译单元40中,将所述第二十进制的数字编译形成二进制的字符串,并以所述二进制的字符串的形式存在于所述第二驱动子文件中。
具体地,参考下表3以对本实施例进行说明。
表3:
二十进制的数字 | 二进制的字符串 |
0 | 0 |
1 | 1 |
2 | 10 |
3 | 11 |
4 | 100 |
5 | 101 |
6 | 110 |
7 | 111 |
…… | …… |
由上表3可知,所述第二驱动子文件有一组二进制的字符串,而这组二进制的字符串是通过所述第二十进制的数字编译形成。
需要说明的是,表3中的二进制的字符串可以是直接由所述第二十进制的数字按照十进制转二进制的规则转换而成,也可以按照研发企业内定的映射规则转换而成,如此可以更好地增强隐秘性,仿冒商家不容易从代码或者bin文件中挖掘水印数据,或者说要极大地增加挖掘水印数据和破解水印数据的成本,较好地构建了竞争的壁垒。
在上表3中,为了简便地展示,所述第二十进制的数字与所述二进制的字符串直接按照十进制转二进制的规则转换而成,并存储在所述第二驱动子文件中。
一个实施例中,每个所述第二十进制的数字对应地编译成一条二进制的字符串,进而形成多条所述二进制的字符串,多条所述二进制的字符串组成指令集合,每条所述二进制的字符串为所述指令集合中的一条指令。
具体到本实施例中,继续参考表3,所述第二十进制的数字与所述二进制的字符串一一对应,所述二进制的字符串是存在于所述第二驱动文件内,是能够给电子设备的中央处理单元所直接运行的文件。且多条所述二进制的字符串组成指令集合,每条所述二进制的字符串为所述指令集合中的一条指令,是指多条所述二进制的字符串内的任何一条字符串均为一条指令,所述中央处理单元可以通过取指令、指令译码及执行指令,将所述二进制的字符串组成的指令进行执行,其中所述中央处理单元的具体工作原理在此不再赘述。
一个实施例中,所述水印数据执行单元中,所述中央处理单元具有若干I/O口,所述第二驱动子文件为通过所述第二源代码编译形成的,所述指令集合的每条指令均用于控制所述I/O口对应地输出一水印电信号。
在本实施例中,参考图5,所述中央处理单元104具有若干个I/O口,其中有四个是应用到本实施例中,即是I/O1、I/O2 、I/O3、I/O4。所述指令集合中的每条指令可用于控制I/O1、I/O2 、I/O3、I/O4输出一水印电信号,所述水印电信号即为从I/O口输出的高电平或者低电平。具体地,例如二进制的字符串为1010时,对应地,I/O1输出高电平、I/O2输出低电平 、I/O3输出高电平、I/O4输出低电平,例如二进制的字符串为1111时,对应地,I/O1- I/O4均为输出高电平,又例如二进制的字符串为10000时,舍去最高位的1,让,I/O1- I/O4均为输出低电平。
为了更加简化地,同时不用占用更多的I/O口,还可以用选择I/O1、I/O2 、I/O3、I/O4中的其中1至3个,对应地,同样选择该4位数的二进制的字符串中的其中1至3位二进制数字作为输出信号。而实际应用中,更优地,选择3个I/O口,以及所述二进制的字符串中的3位二进制字数一一对应这3个I/O口作为输出端,每个I/O口对应所述二进制的字符串中的数字以输出高电平或者低电平信号。
一个实施例中,所述水印电信号为,以预设的周期性的方式随时间切换的高电平与低电平,并通过所述I/O口进行输出。
本实施例中,所述水印电信号即为高电平或低电平的信号,为了更好地进行加密,研发企业可以设定高电平/低电平的切换的时间,并依此作为取证的依据之一。
具体地,参照上述实施例进行说明:当二进制的字符串中的3位二进制字数一一对应这3个I/O口即I/O1、I/O2 、I/O3作为输出端时,该二进制的字符串中的每个二进制数字对应一个I/O口输出,且该二进制的字符串中的每个二进制数字所输出高电平/低电平的时间可以相同,或者各不相同,例如:二进制的字符串1010,取其中高三位即(101)作为控制指令对应地通过I/O1、I/O2 、I/O3进行输出,那么I/O1输出高电平、I/O2输出低电平、I/O3输出高电平。且I/O1输出高电平、I/O2输出低电平、I/O3输出高电平的时间可以相同,例如均为50ms(50毫秒),或者I/O1输出高电平50ms,I/O2输出低电平30ms,I/O3输出高电平60ms,即各个I/O口所输出的电平信号的时间长短可以不一致,使得仿冒商家破解的难度进一步加大。
本实施例中,以预设的周期性的方式随时间切换的高电平与低电平,具体是指与时间为周期进行切换,即一条指令执行完之后,间隔一个时间周期T,执行下一条指令,而对T的限制是宽松的,可以是几十毫秒到几秒甚至是几分钟均可。
具体地,为了更好地对上述实施例进行说明,下面参考表4进行说明:
表4:
表4中,指令集合,包括:指令1、指令2、指令3、指令4、指令5,I/O口包括有I/O1、I/O2、I/O3、I/O4,因此,指令及二进制得字符串包括有:
指令1对应二进制的字符串1:0101;
指令2对应二进制的字符串2:1011;
指令3对应二进制的字符串3:0000;
指令4对应二进制的字符串4:1110;
指令5对应二进制的字符串5:0100;
需要说明的是,指令、二进制的字符串可以包括但不限于5条,每条二进制的字符串为所述指令集合中的一条指令,且所述指令集合中的每条指令均可以是重复执行的;
通过I/O1输出的二进制数字是:01010……;
通过I/O2输出的二进制数字是:10011……;
通过I/O3输出的二进制数字是:01010……;
通过I/O4输出的二进制数字是:11000……。
上述各个I/O口在执行完当前指令时,以预设的周期性的方式随时间切换至下一条指令,即是按照一个预设的时间周期T,执行完当前指令后,执行下一条指令。
此外,各个I/O口在执行指令时,即:I/O1、I/O2、I/O3、I/O4在执行二进制的字符串1时,每个I/O口执行指令信号的时间长短也是不同的。
一个实施例中,所述电子设备具有RGB运行状态灯,所述I/O口包括第一I/O口、第二I/O口及第三I/O口,分别对应地连接红色LED、绿色LED及蓝色LED,并分别用于控制所述红色LED、绿色LED及蓝色LED工作。
需要说明的是,所述RGB运行状态灯指示着电子设备的正常运行状态,例如电加热水壶具有RGB运行状态灯,其亮红灯时,表示电加热水壶正在加热,亮绿灯时表示加热完成;又如蓝牙小音箱具有RGB运行状态灯,其亮红灯时,表示蓝牙小音箱正在充电,亮绿灯时候表示充电完成,蓝牙小音箱正常工工作时,其设置为呼吸灯的状态等等。总之,几乎所有的电子设备均会设置有RGB运行状态灯,所述RGB运行状态灯在亮不同色光表示电子设备处于不同的状态,方便用户了解电子设备的工作状态。
需要说明的是,所述RGB运行状态灯为一体式的LED组合灯珠,可以单独发红光、绿光、蓝光,也可以是它们三个的组合,即是能够组成发出7种色光,例如红光和绿光亮,而蓝光不亮时,所述RGB运行状态灯显示黄光状态,又例如红光、绿光及蓝光均亮时,所述RGB运行状态灯显示白光状态等等。
参考图5对本实施例进行说明,所述第一I/O口、第二I/O口及第三I/O口对应为图5的I/O1、I/O2 、I/O3分别对应地连接所述RGB运行状态灯,因此所述RGB运行状态灯能够随着所述中央控制单元对每个I/O口发出的控制指令而进行各种颜色光的切换,且切换的时间周期也是可控的。
随着所述RGB运行状态灯内的红色LED、绿色LED及蓝色LED,随时间为周期进行切换,且时间周期设置为在50ms之内,人的肉眼是不能察觉所述RGB运行状态灯的灯光切换的。当所述RGB运行状态灯正在显示电子产品的运行状态时,例如电子设备正常运行,所述RGB运行状态灯持续地显示为绿色,所述中央处理单元发出所述水印电信号给所述RGB运行状态灯,所述水印电信号被所述RGB运行状态灯所执行出来,针对所述水印电信号发出不同颜色的光,且按照预定的顺序和时间周期进行切换色序,仿冒商家和用户不能觉察,因为执行所述水印电信号的时间足够短,人肉眼看所述RGB运行状态灯会一直显示绿色光。但是可以通过摄像机录像而对所述RGB运行状态灯的图像贞进行分析,若图像帧所对应的色序的变化规律符合一研发企业所预设定的所述水印电信号的变化规律,那么为该电子设备内部所运行的程序是该研发企业所开发的,提供佐证。
一个实施例中,参考图8,本发明实施例还提供一种计算机200,所述计算机200包括至少一个处理器204、存储介质201,所述计算机具有运行程序的环境,所述运行程序的环境可以是操作系统,也可以是大循环,所述计算机200还包括有运行程序的环境202,所述运行程序的环境202存储于存储介质201; 所述至少一个处理器204与所述存储介质201连接;所述存储介质201用于存储程序203,所述处理器204用于执行所述程序203,所述程序203在被所述至少一个处理器204执行时,使所述至少一个处理器204执行如图2所示的水印嵌入方法。
参考图8,本发明提供的技术方案为:提供一种存储介质201,所述存储介质201为计算机可读存储介质,所述计算机200包括至少一个处理器204、存储介质201,所述计算机200还包括有运行程序的环境202,所述运行程序的环境202存储于存储介质201,所述存储介质201存储有程序203,所述程序203使得计算机执行如图2所示所述的水印嵌入方法。
以上所揭露的仅为本发明的优选实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明申请专利范围所作的等同变化,仍属本发明所涵盖的范围。
Claims (18)
1.一种水印嵌入方法,用于对电子设备运行的驱动文件嵌入水印,其特征在于,包括如下步骤:
第一生成步骤,用于将第一描述文件生成第一源代码;
第二生成步骤,用于将第二描述文件生成第二源代码,其中,所述第二源代码携带有水印数据;
嵌入步骤,用于将所述第二源代码嵌入所述第一源代码中形成第三源代码;
编译步骤,用于将所述第三源代码编译成用于驱动电子设备的第一驱动子文件,及编译成与所述水印数据相关联的第二驱动子文件;
水印数据执行步骤,所述电子设备的中央处理单元运行所述第一驱动子文件时,所述电子设备进入正常运行状态,所述电子设备的中央处理单元运行所述第二驱动子文件时,中央处理单元执行与所述水印数据相关的动作;
所述中央处理单元执行与所述水印数据相关的动作,具体地为,
所述中央处理单元输出与所述水印数据相关的水印电信号,且所述水印电信号为以预设的周期性的方式随时间切换的高电平与低电平,并通过I/O口进行输出。
2.如权利要求1所述的水印嵌入方法,其特征在于,所述编译步骤后,还包括烧录步骤,所述烧录步骤用于将所述驱动文件烧录至电子设备的存储器内。
3.如权利要求1所述的水印嵌入方法,其特征在于,所述水印数据执行步骤中,所述电子设备启动后,所述中央处理单元自动运行所述第一驱动子文件及第二驱动子文件。
4.如权利要求1所述的水印嵌入方法,其特征在于,
所述第二生成步骤中,用于将第二描述文件生成第二源代码,所述第二描述文件具有一组第一十进制的数字,所述第二源代码中具有一组第二十进制的数字,其中所述第二十进制的数字与所述第一十进制的数字一一相对应,且所述水印数据以第二十进制的数字的形式存在于所述第二源代码中。
5.如权利要求4所述的水印嵌入方法,其特征在于,
所述编译步骤中,将所述第二十进制的数字编译形成二进制的字符串,并以所述二进制的字符串的形式存在于所述第二驱动子文件中。
6.如权利要求4或5所述的水印嵌入方法,其特征在于,每个所述第二十进制的数字对应地编译成一条二进制的字符串,进而形成多条所述二进制的字符串,多条所述二进制的字符串组成指令集合,每条所述二进制的字符串为所述指令集合中的一条指令。
7.如权利要求6所述的水印嵌入方法,其特征在于,所述水印数据执行步骤中,所述中央处理单元具有若干I/O口,所述第二驱动子文件为通过所述第二源代码编译形成的,所述指令集合的每条指令均用于控制所述I/O口对应地输出所述水印电信号。
8.如权利要求7所述的水印嵌入方法,其特征在于,所述电子设备具有RGB运行状态灯,所述I/O口包括第一I/O口、第二I/O口及第三I/O口,分别对应地连接红色LED、绿色LED及蓝色LED,并分别用于控制所述红色LED、绿色LED及蓝色LED工作。
9.一种水印嵌入装置,用于对电子设备运行的驱动文件嵌入水印,其特征在于,包括:
第一生成单元,用于将第一描述文件生成第一源代码;
第二生成单元,用于将第二描述文件生成第二源代码,其中,所述第二源代码携带有水印数据;
嵌入单元,用于将所述第二源代码嵌入所述第一源代码中形成第三源代码;
编译单元,用于将所述第三源代码编译成用于驱动电子设备的第一驱动子文件,及编译成与所述水印数据相关联的第二驱动子文件;
水印数据执行单元,所述电子设备的中央处理单元运行所述第一驱动子文件时,所述电子设备进入正常运行状态,所述电子设备的中央处理单元运行所述第二驱动子文件时,中央处理单元执行与所述水印数据相关的动作;
所述中央处理单元执行与所述水印数据相关的动作,具体地为,
所述中央处理单元输出与所述水印数据相关的水印电信号,且所述水印电信号为以预设的周期性的方式随时间切换的高电平与低电平,并通过I/O口进行输出。
10.如权利要求9所述的水印嵌入装置,其特征在于,还包括烧录单元,所述烧录单元用于将所述驱动文件烧录至电子设备的存储器内。
11.如权利要求9所述的水印嵌入装置,其特征在于,所述水印数据执行单元中,所述电子设备启动后,所述中央处理单元自动运行所述第一驱动子文件及第二驱动子文件。
12.如权利要求9所述的水印嵌入装置,其特征在于,
所述第二生成单元中,用于将第二描述文件生成第二源代码,所述第二描述文件具有一组第一十进制的数字,所述第二源代码中具有一组第二十进制的数字,其中所述第二十进制的数字与所述第一十进制的数字一一相对应,且所述水印数据以第二十进制的数字的形式存在于所述第二源代码中。
13.如权利要求12所述的水印嵌入装置,其特征在于,
所述编译单元中,将所述第二十进制的数字编译形成二进制的字符串,并以所述二进制的字符串的形式存在于所述第二驱动子文件中。
14.如权利要求12或13所述的水印嵌入装置,其特征在于,每个所述第二十进制的数字对应地编译成一条二进制的字符串,进而形成多条所述二进制的字符串,多条所述二进制的字符串组成指令集合,每条所述二进制的字符串为所述指令集合中的一条指令。
15.如权利要求14所述的水印嵌入装置,其特征在于,所述水印数据执行单元中,所述中央处理单元具有若干I/O口,所述第二驱动子文件为通过所述第二源代码编译形成的,所述指令集合的每条指令均用于控制所述I/O口对应地输出所述水印电信号。
16.如权利要求15所述的水印嵌入装置,其特征在于,所述电子设备具有RGB运行状态灯,所述I/O口包括第一I/O口、第二I/O口及第三I/O口,分别对应地连接红色LED、绿色LED及蓝色LED,并分别用于控制所述红色LED、绿色LED及蓝色LED工作。
17.一种计算机,其特征在于,所述计算机包括至少一个处理器、存储介质,所述计算机具有运行程序的环境,所述至少一个处理器与所述存储介质连接; 所述存储介质用于存储程序,所述处理器用于执行所述程序,所述程序在被所述至少一个处理器执行时,使所述至少一个处理器执行如权利要求1-8任一项所述的水印嵌入方法。
18.一种存储介质,其特征在于,所述存储介质为计算机可读存储介质,所述存储介质存储有程序,所述程序使得计算机执行如权利要求1-8任一项所述的水印嵌入方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310063317.9A CN115795418B (zh) | 2023-01-17 | 2023-01-17 | 水印嵌入方法、装置、计算机、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310063317.9A CN115795418B (zh) | 2023-01-17 | 2023-01-17 | 水印嵌入方法、装置、计算机、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115795418A CN115795418A (zh) | 2023-03-14 |
CN115795418B true CN115795418B (zh) | 2023-04-14 |
Family
ID=85429820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310063317.9A Active CN115795418B (zh) | 2023-01-17 | 2023-01-17 | 水印嵌入方法、装置、计算机、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115795418B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009199114A (ja) * | 2008-02-19 | 2009-09-03 | Seiko Epson Corp | 情報処理装置および設計装置 |
CN114493971A (zh) * | 2022-01-28 | 2022-05-13 | 腾讯科技(深圳)有限公司 | 媒体数据转换模型训练、数字水印嵌入方法和装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006024027A (ja) * | 2004-07-08 | 2006-01-26 | Matsushita Electric Ind Co Ltd | 電子透かし挿入方法および装置 |
DE602007004587D1 (de) * | 2007-06-29 | 2010-03-18 | Ericsson Telefon Ab L M | Verschleierung von Ausführungsspuren eines Computerprogrammcodes |
CN101556578B (zh) * | 2009-05-12 | 2011-04-27 | 南京师范大学 | 一种gis矢量数据文件访问控制方法 |
US9767823B2 (en) * | 2011-02-07 | 2017-09-19 | Qualcomm Incorporated | Devices for encoding and detecting a watermarked signal |
CN110659459B (zh) * | 2019-09-27 | 2021-07-20 | 北京金山云网络技术有限公司 | 一种软件代码处理方法、装置、电子设备及存储介质 |
CN111400670B (zh) * | 2020-03-06 | 2023-12-15 | 全球能源互联网研究院有限公司 | 一种水印添加方法、装置、设备及存储介质 |
CN111427563A (zh) * | 2020-04-23 | 2020-07-17 | 遂宁摩天时代科技有限公司 | 功能机可视化编程控制系统及方法 |
CN112732321B (zh) * | 2021-01-21 | 2024-02-09 | 恒为科技(上海)股份有限公司 | 一种固件修改方法、装置、计算机可读存储介质和设备 |
CN115408013A (zh) * | 2022-08-11 | 2022-11-29 | 武汉象印科技有限责任公司 | Zynq UltraScale+MPSoC平台的固件和文件自动烧写方法 |
-
2023
- 2023-01-17 CN CN202310063317.9A patent/CN115795418B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009199114A (ja) * | 2008-02-19 | 2009-09-03 | Seiko Epson Corp | 情報処理装置および設計装置 |
CN114493971A (zh) * | 2022-01-28 | 2022-05-13 | 腾讯科技(深圳)有限公司 | 媒体数据转换模型训练、数字水印嵌入方法和装置 |
Non-Patent Citations (1)
Title |
---|
房好帅 ; 朱杰 ; 李楠 ; .嵌入式系统设备驱动程序教学探讨.北华航天工业学院学报.2016,(第04期),第1-3页. * |
Also Published As
Publication number | Publication date |
---|---|
CN115795418A (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101416563B (zh) | 基于事件的环境照明控制 | |
CN109784009A (zh) | 代码混淆方法、系统、计算机装置及计算机可读存储介质 | |
CN110941426A (zh) | 一种面向NB-IoT终端的图形化编程系统 | |
CN108064110A (zh) | 组合灯具的控制方法及照明系统 | |
JP2015011981A (ja) | 照明演出方法及び照明演出システム | |
WO2014162279A1 (en) | Apparatus and methods for activatable lighting devices | |
TW201902305A (zh) | 燈具控制系統及燈具控制方法 | |
CN102027806B (zh) | 随机性动态氛围 | |
CN110379357A (zh) | 一种并联led驱动电路的控制方法及装置 | |
CN103854350B (zh) | 基于无线通信的电视节目录制现场投票的控制方法及系统 | |
JP6824230B2 (ja) | 遊技機 | |
CN105242894B (zh) | 智能设备的显示方法及系统 | |
CN105517224A (zh) | 基于云服务的音乐led灯系统 | |
CN102693641B (zh) | 交通信号加载平台 | |
CN109151337A (zh) | 人脸识别补光方法、人脸识别补光装置及移动终端 | |
CN115795418B (zh) | 水印嵌入方法、装置、计算机、存储介质 | |
CN116133208A (zh) | 拼接灯具的控制方法、装置、拼接灯具以及存储介质 | |
CN106163001A (zh) | 一种基于Android、IOS与ZigBee的智能LED照明控制系统 | |
KR102291686B1 (ko) | 공연 연출 제어 시스템 | |
CN105045079B (zh) | 一种智能手表的控制方法及智能手表 | |
CN105025629B (zh) | 一种智能手表的控制方法及智能手表 | |
CN108184291B (zh) | 基于电力线载波通讯的组合灯具控制方法及照明系统 | |
CN109993951A (zh) | 一种门牌系统及其控制方法和装置 | |
CN109408943A (zh) | 一种喷泉控制方法、装置、系统以及存储介质 | |
CN112601328B (zh) | 灯具控制方法、装置、灯具和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |