会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
热词
    • 32. 发明授权
    • Software or other information integrity verification using variable block length and selection
    • 使用可变块长度和选择的软件或其他信息完整性验证
    • US07841010B2
    • 2010-11-23
    • US11651359
    • 2007-01-08
    • Julien LerougePierre BetouinGianpaolo FasoliAugustin J. Farrugia
    • Julien LerougePierre BetouinGianpaolo FasoliAugustin J. Farrugia
    • G06F7/04G06F17/30H04N7/16
    • G06F21/64
    • An integrity verification process and associated apparatus to detect tampering or other alterations to computer code (software) or other computer files, and especially useful to detect tampering with code by hackers who might try to plant their own malicious code in the software. To make the verification process more robust versus hackers, each e.g., object code file to be protected is first selected using some sort of rule, then partitioned into variable length blocks or portions, the lengths varying in an unpredictable manner. Each portion has its checksum or hash value computed. An accompanying verification file is created which includes a vector for each portion including the portion's start address in memory, length, and the computed checksum or hash value. When the code is later to be run (executed) the verification file is conventionally read and each portion is verified by computing its checksum or hash value using the same algorithm as before, and comparing that to the value in the associated verification file vector. Lack of a match in the two values indicates tampering, so execution of the code can be halted.
    • 完整性验证过程和相关联的设备,用于检测对计算机代码(软件)或其他计算机文件的篡改或其他更改,并且特别有用于检测骇客可能尝试在软件中种植自己的恶意代码的篡改代码。 为了使验证过程比黑客更健壮,每个例如待保护的目标代码文件首先使用某种规则来选择,然后被分割成可变长度的块或部分,长度以不可预测的方式变化。 每个部分都有其计算的校验和或散列值。 创建伴随的验证文件,其中包括每个部分的向量,包括部分在内存中的起始地址,长度以及计算的校验和或哈希值。 当代码稍后运行(执行)时,常规地读取验证文件,并且通过使用与之前相同的算法计算其校验和或散列值来验证每个部分,并将其与相关联的验证文件向量中的值进行比较。 两个值中缺少匹配表示篡改,因此可以停止执行代码。
    • 34. 发明授权
    • Method and apparatus for computer code obfuscation and deobfuscation using boot installation
    • 使用引导安装的计算机代码混淆和去模糊的方法和装置
    • US08881290B2
    • 2014-11-04
    • US13434619
    • 2012-03-29
    • Mathieu CietJulien LerougeAugustin J. Farrugia
    • Mathieu CietJulien LerougeAugustin J. Farrugia
    • G06F11/00G06F12/14G06F12/16G06F21/14G06F21/57
    • G06F21/14G06F21/577
    • In the field of computer software, obfuscation techniques for enhancing software security are applied to compiled (object) software code. The obfuscation results here in different versions (instances) of the obfuscated code being provided to different installations (recipient computing devices). The complementary code execution uses a boot loader or boot installer-type program at each installation which contains the requisite logic. Typically, the obfuscation results in a different instance of the obfuscated code for each intended installation (recipient) but each instance being semantically equivalent to the others. This is accomplished in one version by generating a random value or other parameter during the obfuscation process, and using the value to select a particular version of the obfuscating process, and then communicating the value along with boot loader or installer program software.
    • 在计算机软件领域,用于增强软件安全性的混淆技术应用于编译(对象)软件代码。 这里的混淆结果在不同版本(实例)的混淆代码提供给不同的安装(收件人计算设备)。 互补代码执行在每个安装时使用引导加载程序或引导安装程序类型程序,其中包含必需的逻辑。 通常,混淆导致每个预期安装(接收者)的混淆代码的不同实例,但每个实例在语义上等同于其他安装。 这在一个版本中通过在混淆过程中产生随机值或其他参数来实现,并且使用该值来选择混淆过程的特定版本,然后与引导加载程序或安装程序软件一起传送该值。
    • 35. 发明授权
    • System and method for branch extraction obfuscation
    • 分支提取混淆的系统和方法
    • US08589897B2
    • 2013-11-19
    • US12198873
    • 2008-08-26
    • Gideon M. MylesJulien LerougeTanya Michelle LattnerAugustin J. Farrugia
    • Gideon M. MylesJulien LerougeTanya Michelle LattnerAugustin J. Farrugia
    • G06F9/45
    • G06F8/41G06F8/447G06F9/44521G06F21/14
    • Disclosed herein are systems, methods, and computer readable-media for obfuscating code. The method includes extracting a conditional statement from a computer program, creating a function equivalent to the conditional statement, creating a pointer that points to the function, storing the pointer in an array of pointers, replacing the conditional statement with a call to the function using the pointer at an index in the array, and during runtime of the computer program, dynamically calculating the index corresponding to the pointer in the array. In one aspect, a subset of instructions is extracted from a path associated with the conditional statement and the subset of instructions is placed in the function to evaluate the conditional statement. In another aspect, the conditional statement is replaced with a call to a select function that (1) calculates the index into the array, (2) retrieves the function pointer from the array using the index, and (3) calls the function using the function pointer. Calls can be routed through a select function before the function pointer is used to call the function evaluating the conditional statement. Each step in the method can be applied to source code of the computer program, an intermediate representation of the computer program, and assembly code of the computer program.
    • 这里公开了用于模糊代码的系统,方法和计算机可读介质。 该方法包括从计算机程序中提取条件语句,创建等价于条件语句的函数,创建指向函数的指针,将指针存储在指针数组中,使用对函数的调用替换条件语句 数组中的索引处的指针,以及在计算机程序的运行期间,动态地计算与数组中的指针相对应的索引。 在一个方面,从与条件语句相关联的路径中提取指令子集,并将指令子集置于函数中以评估条件语句。 在另一方面,条件语句被替换为select函数的调用,(1)计算数组中的索引,(2)使用索引从数组中检索函数指针,(3)使用 函数指针。 在使用函数指针调用评估条件语句的函数之前,可以通过select函数路由调用。 该方法中的每一步都可以应用于计算机程序的源代码,计算机程序的中间表示和计算机程序的汇编代码。
    • 36. 发明授权
    • Computer object code obfuscation using boot installation
    • 使用引导安装的计算机对象代码模糊
    • US08176337B2
    • 2012-05-08
    • US12047207
    • 2008-03-12
    • Mathieu CietJulien LerougeAugustin J. Farrugia
    • Mathieu CietJulien LerougeAugustin J. Farrugia
    • G06F12/14G06F9/45G06F11/00
    • G06F21/14G06F21/577
    • In the field of computer software, obfuscation techniques for enhancing software security are applied to compiled (object) software code. The obfuscation results here in different versions (instances) of the obfuscated code being provided to different installations (recipient computing devices). The complementary code execution uses a boot loader or boot installer-type program at each installation which contains the requisite logic. Typically, the obfuscation results in a different instance of the obfuscated code for each intended installation (recipient) but each instance being semantically equivalent to the others. This is accomplished in one version by generating a random value or other parameter during the obfuscation process, and using the value to select a particular version of the obfuscating process, and then communicating the value along with boot loader or installer program software. This boot loader then selects which particular process to use for the code execution at the time of installation in accordance with the value. This results in different versions of the obfuscated code being provided to each recipient installation, which further enhances security of the code against reverse engineering by hackers.
    • 在计算机软件领域,用于增强软件安全性的混淆技术应用于编译(对象)软件代码。 这里的混淆结果在不同版本(实例)的混淆代码提供给不同的安装(收件人计算设备)。 互补代码执行在每个安装时使用引导加载程序或引导安装程序类型程序,其中包含必需的逻辑。 通常,混淆导致每个预期安装(接收者)的混淆代码的不同实例,但每个实例在语义上等同于其他安装。 这在一个版本中通过在混淆过程中产生随机值或其他参数来实现,并且使用该值来选择混淆过程的特定版本,然后与引导加载程序或安装程序软件一起传送该值。 然后,该引导加载程序根据该值选择在安装时用于执行代码的特定进程。 这导致了向每个接收方安装提供了不同版本的混淆代码,这进一步增强了代码的安全性,防止了黑客的反向工程。
    • 37. 发明申请
    • Software or other information integrity verification using variable block length and selection
    • 使用可变块长度和选择的软件或其他信息完整性验证
    • US20080168564A1
    • 2008-07-10
    • US11651359
    • 2007-01-08
    • Julien LerougePierre BetouinGianpaolo FasoliAugustin J. Farrugia
    • Julien LerougePierre BetouinGianpaolo FasoliAugustin J. Farrugia
    • G06F12/14
    • G06F21/64
    • An integrity verification process and associated apparatus to detect tampering or other alterations to computer code (software) or other computer files, and especially useful to detect tampering with code by hackers who might try to plant their own malicious code in the software. To make the verification process more robust versus hackers, each e.g., object code file to be protected is first selected using some sort of rule, then partitioned into variable length blocks or portions, the lengths varying in an unpredictable manner. Each portion has its checksum or hash value computed. An accompanying verification file is created which includes a vector for each portion including the portion's start address in memory, length, and the computed checksum or hash value. When the code is later to be run (executed) the verification file is conventionally read and each portion is verified by computing its checksum or hash value using the same algorithm as before, and comparing that to the value in the associated verification file vector. Lack of a match in the two values indicates tampering, so execution of the code can be halted.
    • 完整性验证过程和相关联的设备,用于检测对计算机代码(软件)或其他计算机文件的篡改或其他更改,并且特别有用于检测骇客可能尝试在软件中种植自己的恶意代码的篡改代码。 为了使验证过程比黑客更健壮,每个例如待保护的目标代码文件首先使用某种规则来选择,然后被分割成可变长度的块或部分,长度以不可预测的方式变化。 每个部分都有其计算的校验和或散列值。 创建伴随的验证文件,其中包括每个部分的向量,包括部分在内存中的起始地址,长度以及计算的校验和或哈希值。 当代码稍后运行(执行)时,常规地读取验证文件,并且通过使用与之前相同的算法计算其校验和或散列值来验证每个部分,并将其与相关联的验证文件向量中的值进行比较。 两个值中缺少匹配表示篡改,因此可以停止执行代码。
    • 39. 发明申请
    • SYSTEM AND METHOD FOR OBFUSCATING DATA USING INSTRUCTIONS AS A SOURCE OF PSEUDORANDOM VALUES
    • 使用指令作为PSEUDORANDOM值的来源来对数据进行数据采集的系统和方法
    • US20130104239A1
    • 2013-04-25
    • US13308515
    • 2011-11-30
    • Jon McLachlanGideon M. MylesJulien Lerouge
    • Jon McLachlanGideon M. MylesJulien Lerouge
    • G06F21/24G06F17/30
    • G06F7/588G06F21/54G06F2221/2107
    • Disclosed herein are systems, methods, and non-transitory computer-readable storage media for obfuscating data using instructions as a source of pseudorandom values. Obfuscation is performed by receiving instructions and data and compiling the instructions and the data into an executable file having a text section and a data section. The text section can include instructions and the data section can include data segments. The system obfuscates the data section iteratively by generating a hash of an address for a respective data segment, and based on the hash, identifying a corresponding address in the text section that includes at least one instruction. The system retrieves a mask key from the corresponding address and applies the mask key to the respective data segment, yielding a masked data segment. In one embodiment, integrity verification of obfuscated data is performed without exposing the data in an unprotected state by utilizing multiple mask keys.
    • 本文公开了用于使用指令作为伪随机值的来源来模糊数据的系统,方法和非暂时的计算机可读存储介质。 通过接收指令和数据并将指令和数据编译成具有文本部分和数据部分的可执行文件来执行混淆。 文本部分可以包括指令,数据部分可以包括数据段。 该系统通过生成相应数据段的地址的散列来迭代地模糊数据段,并且基于散列,识别包括至少一个指令的文本段中的相应地址。 该系统从对应的地址中获取一个掩码密钥,并将该掩码密钥应用于相应的数据段,产生一个被掩蔽的数据段。 在一个实施例中,执行混淆数据的完整性验证,而不会通过利用多个掩码密钥将数据暴露在未受保护状态。
    • 40. 发明授权
    • System and method for obfuscating data using instructions as a source of pseudorandom values
    • 使用指令作为伪随机数值来源对数据进行模糊处理的系统和方法
    • US09116765B2
    • 2015-08-25
    • US13308515
    • 2011-11-30
    • Jon McLachlanGideon M. MylesJulien Lerouge
    • Jon McLachlanGideon M. MylesJulien Lerouge
    • H04L29/00G06F7/58G06F21/54
    • G06F7/588G06F21/54G06F2221/2107
    • Disclosed herein are systems, methods, and non-transitory computer-readable storage media for obfuscating data using instructions as a source of pseudorandom values. Obfuscation is performed by receiving instructions and data and compiling the instructions and the data into an executable file having a text section and a data section. The text section can include instructions and the data section can include data segments. The system obfuscates the data section iteratively by generating a hash of an address for a respective data segment, and based on the hash, identifying a corresponding address in the text section that includes at least one instruction. The system retrieves a mask key from the corresponding address and applies the mask key to the respective data segment, yielding a masked data segment. In one embodiment, integrity verification of obfuscated data is performed without exposing the data in an unprotected state by utilizing multiple mask keys.
    • 本文公开了用于使用指令作为伪随机值的来源来模糊数据的系统,方法和非暂时的计算机可读存储介质。 通过接收指令和数据并将指令和数据编译成具有文本部分和数据部分的可执行文件来执行混淆。 文本部分可以包括指令,数据部分可以包括数据段。 该系统通过生成相应数据段的地址的散列来迭代地模糊数据段,并且基于散列,识别包括至少一个指令的文本段中的相应地址。 该系统从对应的地址中获取一个掩码密钥,并将该掩码密钥应用于相应的数据段,产生一个被掩蔽的数据段。 在一个实施例中,执行混淆数据的完整性验证,而不会通过利用多个掩码密钥将数据暴露在未受保护状态。