会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
热词
    • 71. 发明授权
    • 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函数路由调用。 该方法中的每一步都可以应用于计算机程序的源代码,计算机程序的中间表示和计算机程序的汇编代码。
    • 72. 发明申请
    • SYSTEM AND METHOD FOR BINARY LAYOUT RANDOMIZATION
    • 用于二进制布局约束的系统和方法
    • US20120260106A1
    • 2012-10-11
    • US13081994
    • 2011-04-07
    • Ganna ZaksJulien LerougeJon McLachlanGideon M. MylesAugustin J. Farrugia
    • Ganna ZaksJulien LerougeJon McLachlanGideon M. MylesAugustin J. Farrugia
    • G06F12/14
    • G06F21/14G06F12/1408
    • Disclosed herein are systems, methods, and non-transitory computer-readable storage media for binary layout randomization. A system performs binary layout randomization by loading computer code into memory and identifying a section of the computer code to randomize. A loader remaps the section of computer code to a different location in memory utilizing a remapping algorithm. The loader can shuffle sections of code in place or move sections of code elsewhere. The loader patches relative addresses to point to the updated locations in memory. After the system patches the addresses, the system executes the computer code from memory. In one embodiment, the system encrypts the computer code prior to loading the computer code into memory. The loader decrypts the encrypted computer code prior to remapping the section of computer code to a different location in memory. Optionally, the loader can decrypt the encrypted computer code after patching relative addresses.
    • 本文公开了用于二进制布局随机化的系统,方法和非暂时计算机可读存储介质。 系统通过将计算机代码加载到内存中并识别计算机代码的一部分来随机化来执行二进制布局随机化。 使用重新映射算法,加载器将计算机代码的部分重新映射到存储器中的不同位置。 加载器可以将代码段拖放到位或将代码段移到其他位置。 加载程序将相对地址补丁指向内存中更新的位置。 系统修补地址后,系统会从内存中执行计算机代码。 在一个实施例中,系统在将计算机代码加载到存储器之前加密计算机代码。 在重新映射计算机代码部分到存储器中的不同位置之前,加载器解密加密的计算机代码。 可选地,加载器可以在修补相对地址之后对加密的计算机代码进行解密。
    • 73. 发明授权
    • 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.
    • 在计算机软件领域,用于增强软件安全性的混淆技术应用于编译(对象)软件代码。 这里的混淆结果在不同版本(实例)的混淆代码提供给不同的安装(收件人计算设备)。 互补代码执行在每个安装时使用引导加载程序或引导安装程序类型程序,其中包含必需的逻辑。 通常,混淆导致每个预期安装(接收者)的混淆代码的不同实例,但每个实例在语义上等同于其他安装。 这在一个版本中通过在混淆过程中产生随机值或其他参数来实现,并且使用该值来选择混淆过程的特定版本,然后与引导加载程序或安装程序软件一起传送该值。 然后,该引导加载程序根据该值选择在安装时用于执行代码的特定进程。 这导致了向每个接收方安装提供了不同版本的混淆代码,这进一步增强了代码的安全性,防止了黑客的反向工程。
    • 74. 发明申请
    • SYSTEM AND METHOD FOR BRANCH EXTRACTION OBFUSCATION
    • 分支抽取障碍的系统与方法
    • US20100058301A1
    • 2010-03-04
    • US12198873
    • 2008-08-26
    • Ginger M. MYLESJulien LerougeTanya Michelle LattnerAugustin J. Farrugia
    • Ginger 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函数路由调用。 该方法中的每一步都可以应用于计算机程序的源代码,计算机程序的中间表示和计算机程序的汇编代码。
    • 75. 发明授权
    • Systems and methods for implementing block cipher algorithms on attacker-controlled systems
    • 用于在攻击者控制的系统上实现块密码算法的系统和方法
    • US09031228B2
    • 2015-05-12
    • US13448385
    • 2012-04-16
    • Mathieu CietAugustin J. FarrugiaFilip Toma Paun
    • Mathieu CietAugustin J. FarrugiaFilip Toma Paun
    • H04L9/28H04L9/00H04L9/06
    • H04L9/002H04L9/0618H04L9/0631H04L2209/043H04L2209/122H04L2209/125H04L2209/16
    • Systems and methods for an implementation of block cipher algorithms (e.g., AES) use lookup tables to obscure key information, increasing difficulty of reverse engineering efforts. The implementation encodes round key information into a first plurality of tables (T1), which when used for lookup operations also complete SubBytes operations, and output state in an encoded format. A Shiftrows operation is performed arithmetically on the output state. A second plurality of tables (T2) are used to perform a polynomial multiplication portion of MixColumns operation, and an XOR portion of MixColumns is performed arithmetically on the columns. Encoding from the T1 tables is made to match a decoding built into the T2 tables. Subsets of the T1 tables use the same T2 tables, reducing a memory footprint for the T2 tables. Multiple AES keys can be embedded in different sets of T1 tables that encode for the same set of T2 tables.
    • 用于实施块密码算法(例如,AES)的系统和方法使用查找表来掩盖关键信息,增加了逆向工程努力的难度。 该实施方式将循环密钥信息编码到第一多个表(T1)中,当用于查找操作时也完成子字节操作,并且以编码格式输出状态。 对输出状态进行算术运算。 使用第二多个表(T2)来执行MixColumns操作的多项式乘法部分,并且对列进行算术运算的MixColumn的XOR部分。 使T1表格的编码与T2表中内置的解码相匹配。 T1表的子集使用相同的T2表,减少了T2表的内存占用。 可以将多个AES密钥嵌入到为同一组T2表编码的不同的T1表中。
    • 77. 发明授权
    • Performing boolean logic operations using arithmetic operations by code obfuscation
    • 使用代码混淆的算术运算执行布尔逻辑运算
    • US08707053B2
    • 2014-04-22
    • US13024258
    • 2011-02-09
    • Augustin J. FarrugiaBenoit Chevallier-MamesMathieu CietThomas Icart
    • Augustin J. FarrugiaBenoit Chevallier-MamesMathieu CietThomas Icart
    • G06F12/14
    • G06F21/14
    • Method and apparatus for obfuscating computer software code, to protect against reverse-engineering of the code. The obfuscation here is of the part of the code that performs a Boolean logic operation such as an exclusive OR on two (or more) data variables. In the obfuscated code, each of the two variables is first modified by applying to it a function which deconstructs the value of each of the variables, and then the exclusive OR operation is replaced by an arithmetic operation such as addition, subtraction, or multiplication, which is performed on the two deconstructed variables. The non-obfuscated result is recovered by applying a third function to the value generated by the arithmetic operation. This obfuscation is typically carried out by suitably annotating (modifying) the original source code.
    • 用于模糊计算机软件代码的方法和装置,以防止代码的逆向工程化。 这里的混淆是执行布尔逻辑运算的代码的一部分,例如两个(或多个)数据变量上的异或运算。 在混淆代码中,首先通过对两个变量中的每一个进行修改来解构每个变量的值,然后通过诸如加法,减法或乘法的算术运算来代替异或运算, 这是对两个解构变量进行的。 通过对由算术运算产生的值应用第三函数来恢复未混淆的结果。 这种混淆通常通过适当地注释(修改)原始源代码来执行。