CN102708322A - 安卓系统中java应用程序的保护方法 - Google Patents

安卓系统中java应用程序的保护方法 Download PDF

Info

Publication number
CN102708322A
CN102708322A CN2012101458060A CN201210145806A CN102708322A CN 102708322 A CN102708322 A CN 102708322A CN 2012101458060 A CN2012101458060 A CN 2012101458060A CN 201210145806 A CN201210145806 A CN 201210145806A CN 102708322 A CN102708322 A CN 102708322A
Authority
CN
China
Prior art keywords
application program
java
java application
functional unit
instruction code
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.)
Granted
Application number
CN2012101458060A
Other languages
English (en)
Other versions
CN102708322B (zh
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 Senselock Software 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 Senselock Software Technology Co Ltd filed Critical Beijing Senselock Software Technology Co Ltd
Priority to CN201210145806.0A priority Critical patent/CN102708322B/zh
Publication of CN102708322A publication Critical patent/CN102708322A/zh
Priority to PCT/CN2013/075444 priority patent/WO2013170724A1/zh
Application granted granted Critical
Publication of CN102708322B publication Critical patent/CN102708322B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/128Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及计算机安全领域,特别是一种保护安卓系统中应用程序的方法。通过将待保护的JAVA类对象的若干方法指令代码进行加密变换,在程序运行时根据调用需求对加密的方法代码进行实时的解密运行,使得应用程序难以进行反编译和静态分析,实现了对安卓系统中JAVA程序的有效保护。

Description

安卓系统中JAVA应用程序的保护方法
技术领域
本发明涉及计算机安全领域,特别是一种保护安卓系统中JAVA应用程序的方法。通过将待保护的JAVA类对象的若干方法指令代码进行加密变换,在程序运行时根据调用需求对加密的方法代码进行实时的解密运行,使得应用程序难以进行反编译和静态分析,实现了对JAVA程序的有效保护。
背景技术
安卓系统(Android)是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。安卓系统是当前手机和平板电脑等移动设备中使用的主流操作系统之一。
安卓系统中的应用程序通常是用JAVA语言编写,编译生成JAVA程序文件安装后运行。由于JAVA属于中间语言,其编译后的可执行文件中包含大量源代码的结构和设计信息,加之安卓系统是基于Linux的操作系统,其开放性和丰富的各种程序分析工具,使得JAVA程序很容易被反编译和静态分析,因此安卓系统中对应用程序的版权保护非常薄弱。应用程序的安装文件很易于复制和传播,盗版者可以很方便的在网络上获得并在其它未授权的设备中安装使用。即使开发者在应用程序中实现了一些软件保护手段,诸如对硬件设备或用户身份的验证和功能绑定,但盗版者仍可以很容易分析应用程序的运行逻辑,绕开或去除程序中的相应保护功能,生成可以自由使用的破解版本。
目前常见的一种保护方法是采用“加壳”的方式,即将应用程序的全部或部分指令进行加密或其它方式的变换,运行时用一个脱壳程序对其进行反变换后加载到内存中执行。在脱壳程序中加入一些控制保护措施,例如对用户身份的认证,应用程序的完整性校验等。这种方法虽然可以防止对应用程序直接的反编译,但其“脱壳操作”是一次性操作,“脱壳”后程序的所有指令代码都在内存中,破解者可以很方便的在程序被脱壳加载后保存下内存数据,还原原始程序;另外,脱壳程序的功能逻辑是固定的,易于被解密者分析破解,因此这种加壳的方式对应用软件的保护能力不强。
由于以上原因,目前安卓系统的软件盗版现象十分严重,付费软件的权益无法得到保障,导致很多在iOS系统中很成功的软件放弃安卓系统或者将软件在安卓系统中以免费加广告的形式发布。可见,JAVA程序的保护机制缺失严重制约了安卓系统中的软件市场的发展。
 
发明内容
为了克服现有技术中JAVA应用程序缺乏安全保护机制的弊端,本发明提供了一种对安卓系统中JAVA应用程序进行保护的方法,通过将待保护的JAVA类对象的若干方法指令代码进行变换存储,在程序运行时根据调用需求对加密的方法代码进行实时的解密运行,使得应用程序难以被反编译和静态分析,实现了对JAVA应用程序的有效保护。
在JAVA语言中,类对象的方法函数有两种类型:普通方法和本地方法。普通方法是由JAVA语言编写编译成JAVA指令代码,运行时由JAVA虚拟机(JAVA Virtual Machine,JVM)执行;另一类本地方法(Native Method),它是通过JNI(JAVA Native Interface,JAVA本地调用)的接口访问外部的运行在本地操作系统的库。JNI实现了JAVA程序和外部库之间的相互调用,通常用来为JAVA程序提供非JAVA语言实现的功能。本发明将某个由JAVA语言实现的类对象的方法数据内容进行加密,并将其改为对特定的JNI保护函数接口的调用,在该JNI保护函数接口中将解密还原原始的指令代码,然后再对已还原的原始指令代码进行调用。
保护JAVA应用程序的步骤是:
1.       在JAVA程序文件中定位待保护的功能单元(比如,待保护的类对象的某个普通方法,用于实现特定功能),将其更改为本地方法;
2.       为该类对象创建一个新的普通方法(即对应于功能单元的副本单元),该新的普通方法是上述被保护的普通方法的副本方法,令新的普通方法的指令代码空间与被保护的普通方法的指令代码空间相等,并将新的普通方法的指令代码空间全部填充为空指令;
3.       生成一个JNI库(JAVA本地调用库),导出被保护的普通方法的接口。将被保护的普通方法的原始指令代码加密后存储在JNI库的资源中。
4.       擦除被保护的普通方法的原始指令代码。
对于其它需要保护的方法,执行上述相同的步骤。
执行被保护的JAVA应用程序,当调用被保护的普通方法时,由于被保护的普通方法已被更改为本地方法,因此JVM会调用JNI库中的被保护的普通方法的接口,此时,在JNI库中执行以下步骤:
1.       从JNI库的资源中找到被保护的普通方法的加密数据,将该数据解密后,填回到副本方法的指令代码空间中;
2.       调用、执行副本方法;
3.       擦除副本方法的指令代码空间中的指令代码,即将副本方法整个擦除;
4.       返回被保护的普通方法的调用。
上述加密过程中所使用的密钥,可以由被保护的JAVA应用程序的信息生成,使得每个JAVA应用程序所使用的密钥不同;比如,所述信息包括但不限于软件基本信息,APPID,版本号等。也可以将由被保护的JAVA应用程序的信息和被授权使用该JAVA应用程序的用户的信息组合后生成密钥,使得每个用户的安装程序不同,防止了安装程序的非授权复制使用。比如,用户信息包括但不限于用户ID、APPID、版本号、UID。
上述的加密方法,可以采用各种对称或非对称算法,比如,对称算法包括但不限于AES、DES、TDES等;非对称算法包括但不限于:RSA、ECC)。可以是公开的或私有的加密算法,也可以是其它的数据变换与反变换方法,比如,对代码数据字节进行特定的变换转换成其他字节码或加密数据,反变换采用相同规则获取原始数据。
上述加密和解密执行过程中可以进一步采用一些方法,增加反编译和静态分析,或动态调试的难度,方法包括:
1.       采用自定义的非标准JAVA程序文件格式。比如,可自行定义文件格式,比如.sense或其他格式,将内容存储至该文件内,然后使用时使用自己创建的加载器来加载此格式的文件。文件存储加载可采用加密或定义的格式方式,因为采用此种文件格式,一般人不知道文件格式,不知如何加载,从而增加反编译难度。
2.       去除某些不影响程序运行的源程序的信息(比如变量名)。例如,去除相关内部变量名,或者内部一些逻辑代码(例如switch等)进行混淆或者去除。当反编译时,运行到此逻辑部分就中断无法进行下去,增加复杂性。
3.       运行JAVA应用程序时使用反调试技术,当JAVA应用程序监测到调试器正在对本程序进行调试时,停止解密和加载运行过程。反调试技术是在JAVA应用程序代码里加入监测是否有调试器调试的相关代码,在运行JAVA应用程序时,代码中的反调试代码会监测是否存在调试器调试,如果有,则停止解密和加载运行过程。可在任何过程中进行反调试。当监测到调试器正在对本程序进行调试时,会停止解密和加载运行过程,停止后无法调试,增加了调试的难度, 当然也就进一步提高了反编译的难度。
本发明可以对任意的类对象的多个方法进行加密保护,在程序运行时只在被保护的普通方法被调用时才被动态地解密和加载执行,并调用完成后立即擦除其副本方法的指令代码空间中的指令代码(擦除整个副本方法内容,即擦除其副本方法的指令代码),内存中始终不存在完整的程序代码,因此破解者很难恢复出程序文件进行反编译和静态分析,防止了JAVA应用程序被盗版的问题。
附图说明
图1为本发明中加密受保护的方法的流程图。
图2为本发明中执行调用受保护方法的流程图。
具体实施方式
下面通过实例说明本发明的具体实施方式。
例如要保护类ClassA的普通方法M(即实现特定功能的功能单元),根据本发明的一个实施例,进行以下步骤:
1.       在JAVA程序文件(源文件)中定位ClassA.M。根据本发明的一个具体实施方式,定位就是先找到ClassA类,然后在ClassA中找到M方法。通过代码形式定位则为ClassA test=new  ClassA(); test.M方法即可获得。将方法ClassA.M(即要保护的类ClassA的普通方法M)更改为本地方法。通过关键字native将普通方法更改为本地方法,更改后即为本地方法。
2.       为类ClassA创建一个新的普通方法M1(M1即对应于上述功能单元M的副本单元)。根据本发明的一个实施例,在类ClassA的类代码内创建,通过代码生成一个普通方法M1。令新的普通方法M1的指令代码空间与ClassA.M的指令代码空间相等。根据本发明的一个实施例,根据M方法的代码内容来计算该方法占有多少空间,通过计算得出M方法的代码空间具体大小,在生成新的普通方法M1时,就设置M1的大小为上述M的大小。然后将M1的指令空间全部填充为空指令。根据本发明的一个实施例,该M1为空方法,只包含方法的声明,方法体内不包含代码,方法体的代码空间与M指令代码空间大小一致。
3.       生成一个JNI库,导出ClassA.M接口。具体而言,
根据本发明的一个具体实施例,生成JNI的步骤包括:(1)编写JAVA代码,注明要访问的本地动态连接库和本地接口方法;(2)使用javac命令编译所编写的java类,使用 (javah -jni java类名)生成扩展名为h的头文件;(3)使用c/c++实现(2)中生成的.h文件中声明的各函数;(4)编译c/c++实现代码生成动态连接库(dll/so文件);(5)生成jar包供调用;定义接口等都包含在上述步骤中。
根据本发明的一个具体实施例,导出ClassA.M接口即是上述生成JNI步骤中的用c/c++实现步骤2中生成的.h文件中声明的各函数,ClassA.M的接口名称格式为JAVA_再加上java程序的package路径再加函数名组成。
4.       将ClassA.M中的原始指令代码加密后存储在JNI库的资源中。加密方法可以是对称或非对称加密算法,可以是公开或私有的加密算法,也可以是其它的数据变换与反变换方法。此外,将ClassA.M的原始指令代码通过上述加密方式加密存储至JNI库的资源中,例如对代码的字节进行加密然后将加密后的字符串存放在资源中,当需解密时,根据相同规则解密出资源的加密内容。
5.       擦除ClassA.M的指令代码,即删除ClassA.M方法的指令代码。
对于其它需要保护的方法,执行上述相同的步骤。
执行被保护的JAVA应用程序,当调用其中的普通方法ClassA.M时,由于ClassA.M以及被修改为本地方法,因此JVM会调用JNI库中的ClassA.M接口,在JNI库中执行以下步骤:
1.从JNI库的资源中找到ClassA.M的加密数据(加密时,存储的资源位置会变成已知位置,根据此位置即可找到加密数据),对加密数据进行解密。然后将解密后的数据填回。具体而言,数据填回的方式为:找到ClassA.M1的方法位置,然后将解密数据写入ClassA.M1的指令代码空间中;
2.JAVA应用程序调用ClassA.M1;
3.擦除ClassA.M1指令代码;
4.返回ClassA.M调用。

Claims (8)

1. 一种保护安卓系统中JAVA应用程序的方法,其特征在于,
在JAVA应用程序源文件中定位待保护的功能单元,将所述功能单元更改为本地方法;
创建所述功能单元的副本单元,使得所述副本单元的指令代码空间与所述功能单元的指令代码空间相等;
将所述副本单元的指令代码空间全部填充为空指令;
生成JAVA本地调用库,导出所述功能单元的接口;
将所述功能单元的原始指令代码加密后存储在所述JNI库的资源中;
擦除所述功能单元中的原始指令代码。
2. 根据权利要求1所述的保护安卓系统中JAVA应用程序的方法,其特征在于,
当调用所述功能单元时,通过Java虚拟机调用JAVA本地调用库中的所述功能单元的接口,在所述JAVA本地调用库中执行以下步骤:
从所述JAVA本地调用库的资源中找到所述功能单元的加密数据,将所述数据解密;
将解密后的数据填回到所述副本单元的指令代码空间中;
调用、执行所述副本单元;
擦除所述副本单元的指令代码空间中的指令代码;
返回所述功能单元的调用。
3. 根据权利要求1、2所述的保护安卓系统中JAVA应用程序的方法,其特征在于,所述加密过程中所使用的密钥,由所述JAVA应用程序的信息生成。
4. 根据权利要求1、2所述的保护安卓系统中JAVA应用程序的方法,其特征在于,所述加密过程中所使用的密钥,由所述JAVA应用程序的信息和被授权使用所述JAVA应用程序的用户的信息组合后生成密钥。
5. 根据权利要求1-4所述的保护安卓系统中JAVA应用程序的方法,其特征在于,加密方法是对称或非对称算法,或者是公开的或私有的加密算法,或者是其它的数据变换与反变换方法。
6. 根据权利要求1-5所述的保护安卓系统中JAVA应用程序的方法,其特征在于,在上述加密或解密过程中,采用自定义的非标准JAVA程序文件格式。
7. 根据权利要求1-5所述的保护安卓系统中JAVA应用程序的方法,其特征在于,在上述加密或解密过程中,去除不影响所述JAVA应用程序运行的源程序的信息。
8. 根据权利要求1-5所述的保护安卓系统中JAVA应用程序的方法,其特征在于,在上述解密过程中,在运行所述JAVA应用程序时,当监测到正在对所述JAVA应用程序进行调试时,停止解密和加载运行过程。
CN201210145806.0A 2012-05-12 2012-05-12 安卓系统中java应用程序的保护方法 Active CN102708322B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201210145806.0A CN102708322B (zh) 2012-05-12 2012-05-12 安卓系统中java应用程序的保护方法
PCT/CN2013/075444 WO2013170724A1 (zh) 2012-05-12 2013-05-10 安卓系统中java应用程序的保护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210145806.0A CN102708322B (zh) 2012-05-12 2012-05-12 安卓系统中java应用程序的保护方法

Publications (2)

Publication Number Publication Date
CN102708322A true CN102708322A (zh) 2012-10-03
CN102708322B CN102708322B (zh) 2016-02-24

Family

ID=46901073

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210145806.0A Active CN102708322B (zh) 2012-05-12 2012-05-12 安卓系统中java应用程序的保护方法

Country Status (2)

Country Link
CN (1) CN102708322B (zh)
WO (1) WO2013170724A1 (zh)

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103093136A (zh) * 2012-12-27 2013-05-08 飞天诚信科技股份有限公司 一种java应用访问智能密钥装置的方法
WO2013170724A1 (zh) * 2012-05-12 2013-11-21 北京深思洛克软件技术股份有限公司 安卓系统中java应用程序的保护方法
CN103413073A (zh) * 2013-07-09 2013-11-27 北京深思数盾科技有限公司 一种保护java可执行程序的方法及设备
CN103413076A (zh) * 2013-08-27 2013-11-27 北京理工大学 一种Android应用程序分块保护的方法
CN103413075A (zh) * 2013-07-10 2013-11-27 北京深思数盾科技有限公司 一种通过虚拟机保护java可执行程序的方法及设备
CN103902859A (zh) * 2013-12-25 2014-07-02 武汉安天信息技术有限责任公司 基于JAVA下hook技术的代码保护方法及系统
CN103970514A (zh) * 2013-01-28 2014-08-06 腾讯科技(深圳)有限公司 安卓应用程序安装包的信息获取方法和装置
CN104077504A (zh) * 2013-03-25 2014-10-01 联想(北京)有限公司 一种应用程序加密的方法及装置
WO2014176950A1 (zh) * 2013-05-03 2014-11-06 飞天诚信科技股份有限公司 一种保护java程序的方法
CN104866740A (zh) * 2014-02-25 2015-08-26 北京娜迦信息科技发展有限公司 一种防静态分析文件的方法及装置
CN104951674A (zh) * 2014-03-28 2015-09-30 中国银联股份有限公司 用于应用程序的信息隐藏方法
CN105227565A (zh) * 2015-10-13 2016-01-06 北京娜迦信息科技发展有限公司 用于安卓系统的防逆向破解共享对象文件的方法和装置
CN106096404A (zh) * 2016-08-18 2016-11-09 北京深思数盾科技股份有限公司 一种数据保护方法及系统
CN106599629A (zh) * 2016-12-16 2017-04-26 Tcl集团股份有限公司 一种安卓应用程序加固方法及装置
CN106886717A (zh) * 2015-12-15 2017-06-23 中国移动通信集团公司 一种带壳软件脱壳的方法及装置
CN107122631A (zh) * 2017-04-26 2017-09-01 北京洋浦伟业科技发展有限公司 一种脚本文件的透明加密方法和装置
CN107220528A (zh) * 2017-07-21 2017-09-29 北京深思数盾科技股份有限公司 Java程序的保护与运行方法、装置和终端
CN107391973A (zh) * 2017-07-17 2017-11-24 北京深思数盾科技股份有限公司 一种函数保护方法及装置
CN107480478A (zh) * 2017-08-14 2017-12-15 钟尚亮 一种java应用程序的加密方法及运行方法
CN107908933A (zh) * 2017-11-08 2018-04-13 北京顶象技术有限公司 一种基于中间语言的字符串加密方法
CN108197440A (zh) * 2017-11-28 2018-06-22 五八有限公司 一种代码混淆方法、设备及计算机可读存储介质
CN108399319A (zh) * 2017-09-30 2018-08-14 平安科技(深圳)有限公司 源代码保护方法、应用服务器及计算机可读存储介质
CN109211239A (zh) * 2018-08-30 2019-01-15 中体彩科技发展有限公司 一种关联产品定位系统及其使用方法
CN109325343A (zh) * 2018-09-17 2019-02-12 北京深思数盾科技股份有限公司 Java程序执行方法及装置
CN110008693A (zh) * 2019-04-12 2019-07-12 深圳市趣创科技有限公司 安全应用程序加密保证方法及装置与系统和存储介质
CN110309630A (zh) * 2019-06-28 2019-10-08 南京冰鉴信息科技有限公司 一种Java代码加密方法及装置
CN110502874A (zh) * 2019-07-19 2019-11-26 西安理工大学 一种基于文件自修改的Android App加固方法
CN110598402A (zh) * 2019-09-09 2019-12-20 杭州天宽科技有限公司 一种基于安卓应用的运行保密系统
CN113434882A (zh) * 2021-06-30 2021-09-24 平安普惠企业管理有限公司 应用程序的通讯保护方法、装置、计算机设备及存储介质
CN115114595A (zh) * 2022-08-29 2022-09-27 北京中安星云软件技术有限公司 一种基于JNI运行Java加密jar包的方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1064164A (zh) * 1992-03-17 1992-09-02 湖南省科技情报所 防高级拷贝软件复制程序的软盘加密方法
US7634521B1 (en) * 2006-04-27 2009-12-15 Symantec Corporation Technique for scanning stealthed, locked, and encrypted files
CN102043920A (zh) * 2010-12-29 2011-05-04 北京深思洛克软件技术股份有限公司 数据泄密防护系统中的公共文件的访问隔离方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102708322B (zh) * 2012-05-12 2016-02-24 北京深思数盾科技有限公司 安卓系统中java应用程序的保护方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1064164A (zh) * 1992-03-17 1992-09-02 湖南省科技情报所 防高级拷贝软件复制程序的软盘加密方法
US7634521B1 (en) * 2006-04-27 2009-12-15 Symantec Corporation Technique for scanning stealthed, locked, and encrypted files
CN102043920A (zh) * 2010-12-29 2011-05-04 北京深思洛克软件技术股份有限公司 数据泄密防护系统中的公共文件的访问隔离方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨勇义 等: "基于Android平台的软件保护技术研究", 《中国科技论文在线》, 24 October 2011 (2011-10-24) *

Cited By (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013170724A1 (zh) * 2012-05-12 2013-11-21 北京深思洛克软件技术股份有限公司 安卓系统中java应用程序的保护方法
CN103093136B (zh) * 2012-12-27 2015-05-27 飞天诚信科技股份有限公司 一种java应用访问智能密钥装置的方法
CN103093136A (zh) * 2012-12-27 2013-05-08 飞天诚信科技股份有限公司 一种java应用访问智能密钥装置的方法
CN103970514A (zh) * 2013-01-28 2014-08-06 腾讯科技(深圳)有限公司 安卓应用程序安装包的信息获取方法和装置
CN103970514B (zh) * 2013-01-28 2018-04-06 腾讯科技(深圳)有限公司 安卓应用程序安装包的信息获取方法和装置
CN104077504A (zh) * 2013-03-25 2014-10-01 联想(北京)有限公司 一种应用程序加密的方法及装置
CN104077504B (zh) * 2013-03-25 2017-04-19 联想(北京)有限公司 一种应用程序加密的方法及装置
WO2014176950A1 (zh) * 2013-05-03 2014-11-06 飞天诚信科技股份有限公司 一种保护java程序的方法
US9665730B2 (en) 2013-05-03 2017-05-30 Feitian Technologies Co., Ltd. Method for protecting java program
CN103413073A (zh) * 2013-07-09 2013-11-27 北京深思数盾科技有限公司 一种保护java可执行程序的方法及设备
CN103413073B (zh) * 2013-07-09 2016-01-20 北京深思数盾科技有限公司 一种保护java可执行程序的方法及设备
CN103413075A (zh) * 2013-07-10 2013-11-27 北京深思数盾科技有限公司 一种通过虚拟机保护java可执行程序的方法及设备
CN103413075B (zh) * 2013-07-10 2016-05-04 北京深思数盾科技股份有限公司 一种通过虚拟机保护java可执行程序的方法及设备
CN103413076A (zh) * 2013-08-27 2013-11-27 北京理工大学 一种Android应用程序分块保护的方法
CN103413076B (zh) * 2013-08-27 2016-03-02 北京理工大学 一种Android应用程序分块保护的方法
CN103902859A (zh) * 2013-12-25 2014-07-02 武汉安天信息技术有限责任公司 基于JAVA下hook技术的代码保护方法及系统
CN104866740A (zh) * 2014-02-25 2015-08-26 北京娜迦信息科技发展有限公司 一种防静态分析文件的方法及装置
CN104951674A (zh) * 2014-03-28 2015-09-30 中国银联股份有限公司 用于应用程序的信息隐藏方法
CN104951674B (zh) * 2014-03-28 2018-01-23 中国银联股份有限公司 用于应用程序的信息隐藏方法
CN105227565A (zh) * 2015-10-13 2016-01-06 北京娜迦信息科技发展有限公司 用于安卓系统的防逆向破解共享对象文件的方法和装置
CN105227565B (zh) * 2015-10-13 2019-02-22 北京娜迦信息科技发展有限公司 用于安卓系统的防逆向破解共享对象文件的方法和装置
CN106886717A (zh) * 2015-12-15 2017-06-23 中国移动通信集团公司 一种带壳软件脱壳的方法及装置
CN106096404B (zh) * 2016-08-18 2019-05-21 北京深思数盾科技股份有限公司 一种数据保护方法及系统
CN106096404A (zh) * 2016-08-18 2016-11-09 北京深思数盾科技股份有限公司 一种数据保护方法及系统
CN106599629B (zh) * 2016-12-16 2021-08-06 Tcl科技集团股份有限公司 一种安卓应用程序加固方法及装置
CN106599629A (zh) * 2016-12-16 2017-04-26 Tcl集团股份有限公司 一种安卓应用程序加固方法及装置
CN107122631A (zh) * 2017-04-26 2017-09-01 北京洋浦伟业科技发展有限公司 一种脚本文件的透明加密方法和装置
CN107391973A (zh) * 2017-07-17 2017-11-24 北京深思数盾科技股份有限公司 一种函数保护方法及装置
CN107220528A (zh) * 2017-07-21 2017-09-29 北京深思数盾科技股份有限公司 Java程序的保护与运行方法、装置和终端
CN107480478B (zh) * 2017-08-14 2019-08-13 钟尚亮 一种java应用程序的加密方法及运行方法
CN107480478A (zh) * 2017-08-14 2017-12-15 钟尚亮 一种java应用程序的加密方法及运行方法
CN108399319A (zh) * 2017-09-30 2018-08-14 平安科技(深圳)有限公司 源代码保护方法、应用服务器及计算机可读存储介质
CN108399319B (zh) * 2017-09-30 2021-07-16 平安科技(深圳)有限公司 源代码保护方法、应用服务器及计算机可读存储介质
CN107908933A (zh) * 2017-11-08 2018-04-13 北京顶象技术有限公司 一种基于中间语言的字符串加密方法
CN107908933B (zh) * 2017-11-08 2020-08-28 北京顶象技术有限公司 一种基于中间语言的字符串加密方法
CN108197440A (zh) * 2017-11-28 2018-06-22 五八有限公司 一种代码混淆方法、设备及计算机可读存储介质
CN109211239A (zh) * 2018-08-30 2019-01-15 中体彩科技发展有限公司 一种关联产品定位系统及其使用方法
CN109325343A (zh) * 2018-09-17 2019-02-12 北京深思数盾科技股份有限公司 Java程序执行方法及装置
CN109325343B (zh) * 2018-09-17 2021-08-10 北京深思数盾科技股份有限公司 Java程序执行方法及装置
CN110008693A (zh) * 2019-04-12 2019-07-12 深圳市趣创科技有限公司 安全应用程序加密保证方法及装置与系统和存储介质
CN110309630A (zh) * 2019-06-28 2019-10-08 南京冰鉴信息科技有限公司 一种Java代码加密方法及装置
CN110502874A (zh) * 2019-07-19 2019-11-26 西安理工大学 一种基于文件自修改的Android App加固方法
CN110502874B (zh) * 2019-07-19 2021-05-25 西安理工大学 一种基于文件自修改的Android App加固方法
CN110598402A (zh) * 2019-09-09 2019-12-20 杭州天宽科技有限公司 一种基于安卓应用的运行保密系统
CN113434882A (zh) * 2021-06-30 2021-09-24 平安普惠企业管理有限公司 应用程序的通讯保护方法、装置、计算机设备及存储介质
CN115114595A (zh) * 2022-08-29 2022-09-27 北京中安星云软件技术有限公司 一种基于JNI运行Java加密jar包的方法及系统

Also Published As

Publication number Publication date
WO2013170724A1 (zh) 2013-11-21
CN102708322B (zh) 2016-02-24

Similar Documents

Publication Publication Date Title
CN102708322B (zh) 安卓系统中java应用程序的保护方法
Mofrad et al. A comparison study of Intel SGX and AMD memory encryption technology
CN103069428B (zh) 不可信云基础设施中的安全虚拟机引导
CN108595989B (zh) 一种iOS下移动APP安全防护系统及方法
US20080229117A1 (en) Apparatus for preventing digital piracy
CN104268444A (zh) 一种云OS Java源代码保护方法
US20160094555A1 (en) System and methods for executing encrypted managed programs
Bauman et al. Sgxelide: enabling enclave code secrecy via self-modification
CN105825087B (zh) Elf共享库保护方法及其系统
Protsenko et al. Dynamic self-protection and tamperproofing for android apps using native code
CN101957903A (zh) 一种保护类文件的方法和装置
Williams et al. CPU support for secure executables
Richter et al. Isolating operating system components with Intel SGX
Götzfried et al. Soteria: Offline software protection within low-cost embedded devices
Kiperberg et al. Hypervisor-based protection of code
Zhao et al. vsgx: Virtualizing sgx enclaves on amd sev
CN111159658B (zh) 字节码处理方法、系统、装置、计算机设备和存储介质
Guan et al. Building a trustworthy execution environment to defeat exploits from both cyber space and physical space for ARM
Shu et al. Android app protection via interpretation obfuscation
CN107871066B (zh) 基于安卓系统的代码编译方法及装置
CN109325322B (zh) 用于嵌入式平台的软件知识产权保护系统和方法
CN104504310A (zh) 基于壳技术的软件保护方法和装置
Park et al. CAFE: A virtualization-based approach to protecting sensitive cloud application logic confidentiality
Xia et al. Secure outsourcing of virtual appliance
Kim et al. CAFE: A virtualization-based approach to protecting sensitive cloud application logic confidentiality

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: BEIJING SHENSI SHUDUN SCIENCE + TECHNOLOGY CO., LT

Free format text: FORMER OWNER: BEIJING SENSELOCK SOFTWARE TECHNOLOGY CO., LTD.

Effective date: 20150722

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150722

Address after: 100872 Zhongguancun street, Haidian District, a cultural building, No. 1706, No. 59, No.

Applicant after: BEIJING SHENSI SHUDUN TECHNOLOGY Co.,Ltd.

Address before: 100084 Beijing City, Haidian District Zhongguancun South Street No. 6 Building 1201 Zhucheng

Applicant before: Beijing Senselock Software Technology Co.,Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: 100872 Zhongguancun street, Haidian District, a cultural building, No. 1706, No. 59, No.

Patentee after: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.

Address before: 100872 Zhongguancun street, Haidian District, a cultural building, No. 1706, No. 59, No.

Patentee before: BEIJING SHENSI SHUDUN TECHNOLOGY Co.,Ltd.

C56 Change in the name or address of the patentee
CP02 Change in the address of a patent holder

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

Patentee after: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.

Address before: 100872 Zhongguancun street, Haidian District, a cultural building, No. 1706, No. 59, No.

Patentee before: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing

Patentee after: Beijing Shendun Technology Co.,Ltd.

Address before: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing

Patentee before: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.