CN103870723A - 一种增强软件保护易用性的方法及装置 - Google Patents

一种增强软件保护易用性的方法及装置 Download PDF

Info

Publication number
CN103870723A
CN103870723A CN201410104815.4A CN201410104815A CN103870723A CN 103870723 A CN103870723 A CN 103870723A CN 201410104815 A CN201410104815 A CN 201410104815A CN 103870723 A CN103870723 A CN 103870723A
Authority
CN
China
Prior art keywords
configuration
file
event
software
generation
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.)
Pending
Application number
CN201410104815.4A
Other languages
English (en)
Inventor
孙吉平
韩勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Senseshield Technology Co Ltd
Original Assignee
Beijing Senseshield Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Senseshield Technology Co Ltd filed Critical Beijing Senseshield Technology Co Ltd
Priority to CN201410104815.4A priority Critical patent/CN103870723A/zh
Publication of CN103870723A publication Critical patent/CN103870723A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种增强软件保护易用性的方法及装置。所述方法包括:插件获取软件源文件和工程配置信息,根据需要更改工程和文件设置,设置自定义生成工具、生成/链接事件从而调用保护工具并提供参数。通过本发明提供的方法,只需少量用户输入即可完成软件的生成和保护,简化操作,提高了使用便捷性。

Description

一种增强软件保护易用性的方法及装置
技术领域
本发明涉及软件保护领域,特别涉及一种增强软件保护易用性的方法及装置。 
背景技术
软件保护装置是一种通过计算机接口(包括但不限于并口或者USB接口)连接到计算机主机上的硬件设备。该设备内部具有非易失性存储空间可供读写,通常还具有单片机或者微处理控制芯片等计算处理单元。软件开发者可以通过接口函数和软件保护装置进行数据交换(即对软件保护装置进行读写),来检查软件保护装置是否插在接口上;或者直接用软件保护装置附带的工具进行加密。这样,软件开发者可以在软件中设置多处软件锁,利用软件保护装置作为钥匙来打开这些锁;如果没插软件保护装置或软件保护装置不对应,软件将不能正常执行。 
此外,软件保护装置内部包含特定的功能,例如一部分存储空间、一些密码算法或者一些用户自定义的算法或者功能。在软件发行之前,软件开发者修改自己的软件代码,使得软件在运行过程中需要使用到软件保护装置内部的一些功能,这样软件离开软件保护装置之后就会无法运行,而软件保护装置作为一种硬件设备复制的难度较大,从而起到防止盗版软件非法传播的作用。 
当前市场上主要的软件保护装置包括:美国SafeNet公司的Sentinel Superpro、以色列Aladdin公司的Hasp HL、中国北京深思洛克软件股份有限公司的精锐系列、德国Wi-Bu公司的WIBU-Key等。所有这些软件保护装置都提供了内置的存储空间、私有或公开的密码算法,当软件运行过程中可以调用这些功能来检验是否属于正版。这些软件保护装置采用了智能卡芯片作为硬件的基础,而且支持用户将自己定义的功能写入到软件保护装置内部,甚至可以直接将软件的部分功能移植到软件保护装置内部完成,从而大大提高了软件被盗版的难度,通常称这种将自己定义的功能或者软件的部分功能移植到软件保护装置内部的技术为代码移植。本发明人现在对应网站为http://www.sense.com.cn/,其中详细公开了本发明人开发的软件保护装置的具体参数性能和工作原理。 
现有保护方法中,一般为开发一种工具对文件进行处理。工具可使用若干参数或界面。现有软件保护工具或为控制台程序或为用户界面程序或兼而有之。控制台程序设定了各种可选的启动参数,用户界面程序设计各种界面要素供用户使用,有的工具可在界面上设定各种参数然后保存为配置文件可供下次直接获取各参数,都是为了从用户获取信息,实现用户对工具功能的定制。随着工具软件的开发,功能逐渐强大,往往参数或配置信息也变得复杂。实现一次软件保护传递十几个甚至几十个参数的情况很普遍,配置信息文件也常常长达数十甚至数百行,这对用户造成很大的不便。 
另一方面,由于软件开发与软件保护割裂开来,许多开发阶段的参数不能直接传递到保护工具(即前述软件保护装置),如工程配置、目标文件、源文件、各函数/变量/类的相关信息。用户不得不研究保护工具各参数的功能,手动更改;即便是有方便的界面,每当信息有所改变,仍需要手动配置。总之,保护工具随着强大功能而来的复杂性使得其易用性下降,难以实现自动保护。 
IDE(Integrated Development Environment,集成开发环境)集成开发环境(简称IDE)软件是用于程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。如微软的Visual Studio系列,Borland的C++Builder,Delphi系列等。该应用程序可以独立运行,也可以和其他程序并用。 
Virbox是北京深思数盾科技有限公司研发的一种软加密工具,可对C和C++语言代码进行保护,应用于Visual Studio和Delphi之中。Virbox对C和C++语言源文件经过一系列的编译和加密步骤,生成适用于Visual Studio或Delphi的.obj文件。例如在Visual Studio中使用时,先配置好Virbox的应用环境之后,只需要在Visual Studio中进行简单的设置,将默认的编译器改为Virbox即可。除了最基本的保护之外,Virbox还提供了增强保护,包括多态混淆、反调试和私有数据保护功能,这三种功能还可以随意组合使用。 
发明内容
有鉴于此,本发明提供了一种增强软件保护易用性的方法。 
本发明提供一种软件保护装置,所述软件保护装置为插件。所述插件包括配置读取模块、文件信息提取模块、参数生成模块和设置模块,其中, 
所述配置读取模块,用于读取Visual Studio的配置信息,包括:解决方案配置信息、工程配置、文件配置,进一步包括编译配置信息、链接配置信息;
文件信息提取模块,用于从源文件及目标文件等中间文件提取必要信息,包括:函数、变量、类等相关信息;
参数生成模块,用于根据配置读取模块读取的配置信息和软件保护工具本身的要求生成必要的参数,包括设置自定义生成步骤、生成/链接事件。进一步包括:自定义生成步骤(Custom build Step) 、预生成事件(Pre-Build Event)、生成后事件(Post-Build Event)、预链接事件(Pre-Link Event);
配置写入模块,用于根据参数生成模块生成的参数和软件保护工具本身的要求更改解决方案配置、工程配置、文件配置。
根据本发明的一个方面,还提供了一种增强软件保护易用性的方法,所述方法具体步骤包括: 
步骤1:读取IDE集成开发环境的配置信息;
步骤2:从源文件及目标文件等中间文件中提取必要信息;
步骤3:根据需要更改解决方案配置、工程配置、文件配置、源文件及目标文件等中间文件;
步骤4:计算软件保护工具参数,设置自定义生成步骤、生成/链接事件。
根据本发明的一个方面,所述步骤1中的IDE集成开发环境为微软的Visual Studio。 
根据本发明的一个方面,所述步骤1中IDE集成开发环境的配置信息具体包括:解决方案配置信息、工程配置、文件配置,进一步包括编译配置信息、链接配置信息。 
根据本发明的一个方面,所述步骤2中提取的必要信息包括:函数、变量、类等相关信息。 
根据本发明的一个方面,所述步骤4进一步包括:自定义生成步骤(Custom build Step) 、预生成事件(Pre-Build Event)、生成后事件(Post-Build Event)、预链接事件(Pre-Link Event)。 
根据本发明的一个方面,所述步骤4中计算软件保护工具参数即为计算插件的相关参数。 
本发明基于微软公司的Visual Studio的插件技术,通过插件获取软件源文件和工程配置信息,根据需要更改工程和文件设置,设置自定义生成工具、生成/链接事件从而调用保护工具并提供参数,只需少量用户输入即可完成软件的生成和保护,具有操作简便、使用便捷等特点。 
附图说明
图1为按照本发明的一种增强软件保护易用性的装置的一优选实施方式的结构关系图。 
图2为按照本发明的一种增强软件保护易用性的方法的一优选实施方式的流程示意图。 
图3为按照本发明的一种增强软件保护易用性的方法的实施例1的图形化用户交互界面示意图。 
图4为按照本发明的一种增强软件保护易用性的方法的实施例1的流程示意图。 
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。 
实施例1
本实施例以北京深思数盾科技有限公司的Virbox 1.6为例,阐述本方法的实施方法。开发工具以Visual Studio 2008为例。
Virbox可对源文件进行编译和转换,生成Visual Studio下可直接使用的.obj文件。可配置的参数包括: 
表 
Figure 629308DEST_PATH_IMAGE001
Virbox参数列表
Figure 2014101048154100002DEST_PATH_IMAGE001
Figure 2014101048154100002DEST_PATH_IMAGE002
 
假定用户需要开启私有数据保护、多态混淆、反调试,需要设定检查加密锁的时间间隔为1秒。链接时需加入Virbox提供的静态库,如elite5.lib、virbox.lib、chkE5.lib(这三个库是保护程序后链接时调用的运行时库,无论这三个库有何含义、功能,都不会影响本插件,因为本插件无需引用该库的内容)等。
1.    读取Visual Studio的配置信息。 
Virbox需要读取的配置信息包括:预定义宏、头文件搜索路径(即源文件中包含的头文件未显式指定其所在路径时,备选的搜索路径)、运行时库。 
以如下的C#类表示Virbox参数信息: 
public class VirboxConfig
{
    public bool encode;         //私有数据保护
    public bool mconfuse;       //多态混淆
    public bool antidebug;     //反调试
    public bool delphi;         //Delphi支持
    public bool elitedll;       //以动态库方式绑定加密锁
    public string preprocess;  //预定义宏
    public string include;       //头文件路径
    public string pin;          //控制锁的用户密码
    public string interval;     //检查加密锁的时间间隔
    public string title;        //未检查到加密锁时提示框标题
    public string msg;          //未检查到加密锁时提示信息
    public string version;      //VC版本
    public string libc;         //运行时库
    //获取预定义宏,参数VCCLCompilerTool:Microsoft.VisualStudio.VCProjectEngine.VCCLCompilerTool,VC的C/C++编译工具接口
    protected void GetPreprocess(VCCLCompilerTool clTool)
    {
        preprocess = clTool.PreprocessorDefinitions;
    }
    //获取头文件路径
    protected void GetIncludePath(VCCLCompilerTool clTool)
    {
        include = clTool.AdditionalIncludeDirectories;
    }
    //获取运行时库
    protected void GetIncludePath(VCCLCompilerTool clTool)
    {
        string[] RunTimeLibs = new string[] { "libcmt.lib", "libcmtd.lib", "msvcrt.lib", "msvcrtd.lib", "libc.lib", "libcd.lib" };
        libc = RunTimeLibs[(int)clTool.RuntimeLibrary];
}
2.    从工程、源文件及目标文件等中间文件提取必要信息。
对Virbox而言,需要提取文件名列表,供用户选择保护哪些文件。作为一般方法,可能需要进一步提取其它信息,如函数名、变量名。Virbox如果进一步开发,如提供对保护函数的选择(当前版本以文件为单位,要么不保护,要么被保护源文件的所有函数都被保护,用户不能选择),需要提取函数名供用户选择。文件列表提取方法:Visual Studio提供Microsoft.VisualStudio.VCProjectEngine.VCProject 类,该类的Files属性保存了文件的相关信息,从中可获取文件列表,如下所示: 
        List<string> GetFileList(VCProject prj)
        {
            List<string> files;
            foreach (VCFile file in (IVCCollection)prj.Files)
            {
                //添加文件
                files.add(file.Name);
            }
            return files;
}
从源文件提取函数、变量信息是编译原理相关的公知技术,从目标文件提取函数、变量信息是与目标文件格式相关的公知技术,本发明不赘述。
3.    根据需要更改解决方案配置、工程配置、文件配置、源文件及目标文件等中间文件。 
Virbox需要在工程配置中加入依赖库:elite5.lib、virbox.lib、chkE5.lib。在VirboxConfig类中添加方法SetLibrary,该方法利用VC提供的Microsoft.VisualStudio.VCProjectEngine.VCLinkerTool类,该类的AdditionalDependencies属性即为工程依赖库,将三个库的名字加入即可,代码如下: 
//添加依赖库,参数VCLinkerTool:Microsoft.VisualStudio.VCProjectEngine.VCLinkerTool,VC的链接工具接口
    protected void SetLibrary(ref VCLinkerTool lkTool)
    {
        lkTool.AdditionalDependencies += libc + ";elit5.lib;virbox.lib;chkE5.lib";
}
4.    用户设定开启私有数据保护、多态混淆、反调试,设定检查加密锁的时间间隔为1秒。需要用户定制的参数不能自动决定。可以通过图形化界面作为插件的一部分用于用户交互。根据本实施例,图形化界面可参见图3。
5.    计算软件保护工具参数,设置自定义生成步骤、生成/链接事件。进一步包括:自定义生成步骤(Custom build Step) 、预生成事件(Pre-Build Event)、生成后事件(Post-Build Event)、预链接事件(Pre-Link Event)。 
A.计算Virbox参数,在VirboxConfig中添加方法GetParam,该方法根据本类的数据成员构造字符串,数据成员包括三类:1) 开关量(bool型变量,如"encode"),如果该开关量为真,在返回值中添加对应的参数(如" -encode")即可;2) 字符串,如"title",需要在返回值中添加其对应的参数" -title",然后再添加该字符串的内容;3) 字符串系列,preprocess和include,其中以分号为分隔符,保存了若干各字符串,需要将其分割,对分割得到的每一个字符串执行2)步骤,即先添加对应的参数(如preprocess对应的" -define"和include对应的" -include"),再添加该字符串的内容。代码如下: 
public string GetParam()
    {
        string str = "virbox-cl.exe $(InputPath) $(OutDir)";
        if (encode)
        {
            str += " -encode";
        }
        if (mconfuse)
        {
            str += " --multi-confuse";
        }
        if (antidebug)
        {
            str += " --anti-debug";
        }
        if (delphi)
        {
            str += " -delphi";
        }
        if (elitedll)
        {
            str += " --elite-dll";
        }
        if (preprocess != null && preprocess.Length > 0)
        {
            foreach (string macro in preprocess.Split(';'))
            {
                str += " -define" + macro;
            }
        }
        if (include != null && include.Length > 0)
        {
            foreach (string dir in include.Split(';'))
            {
                str += " -include" + dir;
            }
        }
        if (pin != null && pin.Length > 0)
        {
            str += " --master-pin " + pin;
        }
        if (interval != null && interval.Length > 0)
        {
            str += " -interval " + interval;
        }
        if (title != null && title.Length > 0)
        {
            str += " -title " + title;
        }
        if (msg != null && msg.Length > 0)
        {
            str += " -msg" + msg;
        }
        str += " -vc2008";
        return str;
}
B. 设置自定义生成步骤,将A获取的字符串写入自定义生成步骤中的命令行(command line),并写入输出(Outputs)。Virbox 1.6无需写入预生成事件、生成后事件和预链接事件。在VirboxConfig类中添加WriteToCustomBuildTool方法,该方法以Microsoft.VisualStudio.VCProjectEngine.VCCustomBuildTool类对象为参数,该类对象的CommandLine属性为自定义生成步骤需要执行的命令行字符串,本方法将其设为步骤A构造的软件保护工具参数;Description属性为说明字符串,起到对客户的提示功能,其设置对功能无影响;Outputs指明自定义生成步骤被执行后的输出文件,设为Virbox的输出文件(无后缀文件名 + ".obj")。代码如下:
//更改自定义生成步骤,参数//VCCustomBuildTool:Microsoft.VisualStudio.VCProjectEngine. //VCCustomBuildTool,VC的自定义生成工具接口
 public void WriteToCustomBuildTool(ref VCCustomBuildTool cbTool)
    {
        cbTool.CommandLine = GetParam();
        cbTool.Description = "Virbox";
        cbTool.Outputs = "$OutDir\\$(InputName).obj";
}
完成上述过程后,凡自定义生成步骤被更改的源文件,执行编译时都会自动调用Virbox并生成.obj文件,执行链接时自动将所需的elite5.lib 、virbox.lib、chkE5.lib等库自动写入最终的生成目标文件(可执行文件或链接库文件)。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。 

Claims (15)

1.一种软件保护装置,所述软件保护装置包括配置读取模块、文件信息提取模块、参数生成模块和设置模块,其中:
所述配置读取模块,用于读取Visual Studio的配置信息,包括:解决方案配置信息、工程配置、文件配置;
文件信息提取模块,用于从中间文件提取必要信息,包括:函数、变量、类等相关信息;
参数生成模块,用于根据配置读取模块读取的配置信息和软件保护工具本身的要求生成必要的参数,包括设置自定义生成步骤、生成/链接事件;
配置写入模块,用于根据参数生成模块生成的参数和软件保护工具本身的要求更改解决方案配置、工程配置、文件配置。
2.如权利要求1所述的软件保护装置,所述软件保护装置为插件。
3.如权利要求1或2所述的软件保护装置,其中配置读取模块读取的配置信息进一步包括编译配置信息、链接配置信息。
4.如权利要求1或2所述的软件保护装置,其中中间文件包括源文件、目标文件。
5.如权利要求3所述的软件保护装置,其中中间文件包括源文件、目标文件。
6.如权利要求1或2所述的软件保护装置,其中自定义生成步骤、生成/链接事件进一步包括:自定义生成步骤、预生成事件、生成后事件、预链接事件。
7.如权利要求3所述的软件保护装置,其中自定义生成步骤、生成/链接事件进一步包括:自定义生成步骤、预生成事件、生成后事件、预链接事件。
8.如权利要求5所述的软件保护装置,其中自定义生成步骤、生成/链接事件进一步包括:自定义生成步骤、预生成事件、生成后事件、预链接事件。
9.一种增强软件保护易用性的方法,所述方法包括:
步骤1:读取IDE集成开发环境的配置信息;
步骤2:从源文件及目标文件等中间文件中提取必要信息;
步骤3:根据需要更改解决方案配置、工程配置、文件配置、源文件及目标文件等中间文件;
步骤4:计算软件保护工具参数,设置自定义生成步骤、生成/链接事件。
10.如权利要求9所述的方法,其中步骤1中的IDE集成开发环境为微软的Visual Studio。
11.如权利要求9或10所述的方法,其中步骤1中IDE集成开发环境的配置信息具体包括:解决方案配置信息、工程配置、文件配置。
12.如权利要求11所述的方法,其中IDE集成开发环境的配置信息进一步包括编译配置信息、链接配置信息。
13.如权利要求9所述的方法,其中步骤2中提取的必要信息包括:函数、变量、类等相关信息。
14.如权利要求9所述的方法,其中步骤4进一步包括:自定义生成步骤、预生成事件、生成后事件、预链接事件。
15.如权利要求9所述的方法,其中步骤4中计算软件保护工具参数即为计算插件的相关参数。
CN201410104815.4A 2014-03-20 2014-03-20 一种增强软件保护易用性的方法及装置 Pending CN103870723A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410104815.4A CN103870723A (zh) 2014-03-20 2014-03-20 一种增强软件保护易用性的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410104815.4A CN103870723A (zh) 2014-03-20 2014-03-20 一种增强软件保护易用性的方法及装置

Publications (1)

Publication Number Publication Date
CN103870723A true CN103870723A (zh) 2014-06-18

Family

ID=50909248

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410104815.4A Pending CN103870723A (zh) 2014-03-20 2014-03-20 一种增强软件保护易用性的方法及装置

Country Status (1)

Country Link
CN (1) CN103870723A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826014A (zh) * 2010-04-20 2010-09-08 北京邮电大学 一种软件工程源代码的分割方法
US20120254969A1 (en) * 2011-03-28 2012-10-04 Canon Kabushiki Kaisha Systems and methods for implementing security services
CN103425911A (zh) * 2013-08-07 2013-12-04 北京深思数盾科技有限公司 一种增强软件保护易用性的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826014A (zh) * 2010-04-20 2010-09-08 北京邮电大学 一种软件工程源代码的分割方法
US20120254969A1 (en) * 2011-03-28 2012-10-04 Canon Kabushiki Kaisha Systems and methods for implementing security services
CN103425911A (zh) * 2013-08-07 2013-12-04 北京深思数盾科技有限公司 一种增强软件保护易用性的方法

Similar Documents

Publication Publication Date Title
Buckley et al. The HepMC3 event record library for Monte Carlo event generators
Krüger et al. Cognicrypt: Supporting developers in using cryptography
US8589897B2 (en) System and method for branch extraction obfuscation
CN103544414B (zh) 一种Android系统应用的深度代码混淆方法
US9607160B2 (en) Method and apparatus for providing string encryption and decryption in program files
CN105354449A (zh) 一种面向Lua语言的加扰混淆方法和解密方法
CN103955635B (zh) 一种对.net可执行程序进行保护的方法和系统
CN110598379B (zh) 一种实现字符串混淆的方法、设备及存储介质
US20100058303A1 (en) System and method for conditional expansion obfuscation
CN112016128A (zh) 基于CRUD和权限管理的vue开发方法及装置
Probst et al. An extensible analysable system model
CN108469955A (zh) 一种基于注解的Android注入框架
CN113986248B (zh) 一种代码生成方法、装置、计算机设备及存储介质
CN103425911A (zh) 一种增强软件保护易用性的方法
Aronsson et al. Hardware software co-design in Haskell
CN103870723A (zh) 一种增强软件保护易用性的方法及装置
CN101887500B (zh) 基于标签的程序控制流深度混淆方法
Shonle et al. Aspectbrowser for eclipse: a case study in plug-in retargeting
US20070150853A1 (en) Method for processing assembly of data blocks using associated control application
Sun et al. Eclipse-based prometheus design tool
CN113282294A (zh) 基于安卓平台Java字符串混淆的方法和装置
Stepney et al. Formal methods for industrial products
Chang et al. Developing an efficient query system for encrypted XML documents
Bazhenov et al. Methodology of software code decomposition analysis
JP2008135893A (ja) 使い捨ての暗号鍵を添付する暗号化文書を作成する暗号化装置およびプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 100872 room 1706, building 59, Zhongguancun street, Haidian District, Beijing

Applicant after: BEIJING SHENSI SHUDUN SCIENCE & TECHNOLOGY CO., LTD.

Address before: 100872 room 1706, building 59, Zhongguancun street, Haidian District, Beijing

Applicant before: Beijing Shensi Shudun Technology Co., Ltd.

COR Change of bibliographic data
CB02 Change of applicant information

Address after: 100193 Beijing, Haidian District, East West Road, No. 10, East Hospital, building No. 5, floor 5, layer 510

Applicant after: BEIJING SHENSI SHUDUN SCIENCE & TECHNOLOGY CO., LTD.

Address before: 100872 room 1706, building 59, Zhongguancun street, Haidian District, Beijing

Applicant before: BEIJING SHENSI SHUDUN SCIENCE & TECHNOLOGY CO., LTD.

COR Change of bibliographic data
RJ01 Rejection of invention patent application after publication

Application publication date: 20140618

RJ01 Rejection of invention patent application after publication