防软件反编译的方法、防反编译软件启动的方法和装置制造方法及图纸

技术编号:11442514 阅读:114 留言:0更新日期:2015-05-13 12:59
本发明专利技术公开了一种防软件反编译的方法、防反编译软件启动的方法和装置,涉及计算机技术领域。所述防软件反编译的方法包括:针对安卓系统的应用的配置文件,将所述配置文件中的入口activity声明为nativeActivity;通过JAVA本地调用接口构建针对所述nativeActivity的执行文件;其中,针对所述nativeActivity的执行文件用于,在所述针对所述nativeActivity的执行文件加载后,在所述应用的主界面启动完成之前对所述应用进行签名校验,如果所述应用的签名校验不通过,则退出应用。本发明专利技术取得了可避免应用更改在应用中添加其他逻辑,避免了未经验证的信息对用户的干扰,保护的应用开发者的权益的有益效果。

【技术实现步骤摘要】
防软件反编译的方法、防反编译软件启动的方法和装置
本专利技术涉及计算机
,具体涉及一种防软件反编译的方法、一种防软件反编译的装置、一种防反编译软件启动的方法和一种防反编译软件启动的装置。
技术介绍
安卓平台发展迅速,已经逐渐成为了移动终端的最普及的操作系统,与其他终端操作系统相比,开放式的安卓系统为应用开发者提供了更多的功能接口,这些功能接口提高了系统的可扩展性。目前安卓系统的应用的构建都采用java,而java编译得到的文件很容易被反编译。因此存在应用更改者通过非法拷贝、逆向工程、反编译等手段来添加其自己的逻辑,比如在应用中加入自己广告等内容,对于用户来说多了很多无用的功能,存在不小危害,并且对于应用的开发者来说,该种方式损害了开发者的权益。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种防软件反编译的装置和相应的一种防软件反编译的方法。依据本专利技术的一个方面,提供了本专利技术公开了一种防软件反编译的方法,包括:针对安卓系统的应用的配置文件,将所述配置文件中的入口activity声明为nativeActivity;通过JAVA本地调用接口构建针对所述nativeActivity的执行文件;其中,针对所述nativeActivity的执行文件用于,在所述针对所述nativeActivity的执行文件加载后,在所述应用的主界面启动完成之前对所述应用进行签名校验,如果所述应用的签名校验不通过,则退出应用。优选地,所述执行文件用于,在所述针对所述nativeActivity的执行文件加载后,在所述应用的主界面启动完成之前对所述应用进行签名校验,包括:在所述针对所述nativeActivity的执行文件加载后,执行安卓主界面函数,通过所述主界面函数,在所述应用的主界面启动完成之前对所述应用进行签名校验。优选地,通过所述主界面函数,在所述应用的主界面启动完成之前对所述应用进行签名校验,包括:在主界面函数中,调用natve方法在系统内存中指定位置申请一块内存,存放预置的第一签名信息;获取当前应用的第二签名信息,判断所述第一签名信息与第二签名信息是否匹配;所述第一签名信息与第二签名信息不匹配,则确定所述应用的签名校验不通过。优选地,所述第一签名信息为应用初始状态下的第一MD5值,所述第二签名信息为应用启动时的第二MD5值。优选地,所述第一签名信息为所述应用初始状态下的第一证书文件,所述第二签名信息为所述应用启动时的第二证书文件。优选地,所述通过JAVA本地调用接口构建针对所述nativeActivity的执行文件包括:构建针对所述nativeActivity的SO文件;所述SO文件用于,在所述针对所述nativeActivity的执行文件加载后,在所述应用的主界面启动完成之前对所述应用进行签名校验,如果所述应用的签名校验不通过,则退出应用。依据本专利技术的另外一个专利技术,本专利技术还公开了一种防反编译软件启动的方法,包括:在安卓系统的应用启动时,读取所述应用的配置文件中声明的nativeActivity;通过所述配置文件中声明的nativeActivity,调用JAVA本地调用接口,加载针对所述nativeActivity的执行文件;在加载针对所述nativeActivity的执行文件后,在所述应用的主界面启动完成之前对所述应用进行签名校验,如果所述应用的签名校验不通过,则退出应用。优选地,加载针对所述nativeActivity的执行文件后,在所述应用的主界面启动完成之前对所述应用进行签名校验包括:在所述针对所述nativeActivity的执行文件加载后,执行安卓主界面函数,通过所述主界面函数,在所述应用的主界面启动完成之前对所述应用进行签名校验。优选地,执行安卓主界面函数,通过所述主界面函数,在所述应用的主界面启动完成之前对所述应用进行签名校验包括:在主界面函数中,调用natve方法在系统内存中指定位置申请一块内存,存放预置的第一签名信息;获取当前应用的第二签名信息,判断所述第一签名信息与第二签名信息是否匹配;所述第一签名信息与第二签名信息不匹配,则确定所述应用的签名校验不通过。优选地,所述第一签名信息为应用初始状态下的第一MD5值,所述第二签名信息为应用启动时的第二MD5值。优选地,所述第一签名信息为所述应用初始状态下的第一证书文件,所述第二签名信息为所述应用启动时的第二证书文件。优选地,所述调用JAVA本地调用接口,加载针对所述nativeActivity的执行文件包括:调用本地调用接口,加载针对所述nativeActivity的SO文件;所述SO文件用于,在所述针对所述nativeActivity的执行文件加载后,在所述应用的主界面启动完成之前对所述应用进行签名校验,如果所述应用的签名校验不通过,则退出应用。依据本专利技术的另外一个方面,本专利技术还公开了一种防软件反编译的装置,包括:入口声明模块,适于针对安卓系统的应用的配置文件,将所述配置文件中的入口activity声明为nativeActivity;主界面验证构建模块,适于通过JAVA本地调用接口构建针对所述nativeActivity的执行文件;其中,针对所述nativeActivity的执行文件用于,在所述针对所述nativeActivity的执行文件加载后,在所述应用的主界面启动完成之前对所述应用进行签名校验,如果所述应用的签名校验不通过,则退出应用。优选地,所述执行文件用于,在所述针对所述nativeActivity的执行文件加载后,在所述应用的主界面启动完成之前对所述应用进行签名校验,包括:在所述针对所述nativeActivity的执行文件加载后,执行安卓主界面函数,通过所述主界面函数,在所述应用的主界面启动完成之前对所述应用进行签名校验。优选地,通过所述主界面函数,在所述应用的主界面启动完成之前对所述应用进行签名校验,包括:在主界面函数中,调用natve方法在系统内存中指定位置申请一块内存,存放预置的第一签名信息;获取当前应用的第二签名信息,判断所述第一签名信息与第二签名信息是否匹配;所述第一签名信息与第二签名信息不匹配,则确定所述应用的签名校验不通过。优选地,所述第一签名信息为应用初始状态下的第一MD5值,所述第二签名信息为应用启动时的第二MD5值。优选地,所述第一签名信息为所述应用初始状态下的第一证书文件,所述第二签名信息为所述应用启动时的第二证书文件。优选地,所述通过JAVA本地调用接口构建针对所述nativeActivity的执行文件包括:构建针对所述nativeActivity的SO文件;所述SO文件用于,在所述针对所述nativeActivity的执行文件加载后,在所述应用的主界面启动完成之前对所述应用进行签名校验,如果所述应用的签名校验不通过,则退出应用。依据本专利技术的另外一个方面,本专利技术还公开了一种防反编译软件启动的装置,包括:配置文件读取模块,适于在安卓系统的应用启动时,读取所述应用的配置文件中声明的nativeActivity;主界面加载模块,适于通过所述配置文件中声明的nativeActivity,调用JAVA本地调用接口,加载针对所述nativeActivity的执行文件;主本文档来自技高网...

【技术保护点】
一种防软件反编译的方法,包括:针对安卓系统的应用的配置文件,将所述配置文件中的入口activity声明为nativeActivity;通过JAVA本地调用接口构建针对所述nativeActivity的执行文件;其中,针对所述nativeActivity的执行文件用于,在所述针对所述nativeActivity的执行文件加载后,在所述应用的主界面启动完成之前对所述应用进行签名校验,如果所述应用的签名校验不通过,则退出应用。

【技术特征摘要】
1.一种防软件反编译的方法,包括:针对安卓系统的应用的配置文件,将所述配置文件中的入口activity声明为nativeActivity;通过JAVA本地调用接口调用本地方法,使用C++构建针对所述nativeActivity的执行文件;其中,针对所述nativeActivity的执行文件用于,在所述针对所述nativeActivity的执行文件加载后,在所述应用的主界面启动完成之前对所述应用进行签名校验,包括:在所述针对所述nativeActivity的执行文件加载后,执行安卓主界面函数,通过所述主界面函数,在所述应用的主界面启动完成之前对所述应用进行签名校验,如果所述应用的签名校验不通过,则退出应用。2.如权利要求1所述的方法,其特征在于,通过所述主界面函数,在所述应用的主界面启动完成之前对所述应用进行签名校验,包括:在主界面函数中,调用native方法在系统内存中指定位置申请一块内存,存放预置的第一签名信息;获取当前应用的第二签名信息,判断所述第一签名信息与第二签名信息是否匹配;所述第一签名信息与第二签名信息不匹配,则确定所述应用的签名校验不通过。3.如权利要求2所述的方法,其特征在于,所述第一签名信息为应用初始状态下的第一MD5值,所述第二签名信息为应用启动时的第二MD5值。4.如权利要求2所述的方法,其特征在于,所述第一签名信息为所述应用初始状态下的第一证书文件,所述第二签名信息为所述应用启动时的第二证书文件。5.如权利要求1所述的方法,其特征在于,所述通过JAVA本地调用接口调用本地方法,使用C++构建针对所述nativeActivity的执行文件包括:构建针对所述nativeActivity的SO文件;所述SO文件用于,在所述针对所述nativeActivity的执行文件加载后,在所述应用的主界面启动完成之前对所述应用进行签名校验,如果所述应用的签名校验不通过,则退出应用。6.一种防反编译软件启动的方法,包括:在安卓系统的应用启动时,读取所述应用的配置文件中声明的nativeActivity;通过所述配置文件中声明的nativeActivity,调用JAVA本地调用接口,加载针对所述nativeActivity的执行文件,所述执行文件通过本地方法使用C++构建;在加载针对所述nativeActivity的执行文件后,在所述应用的主界面启动完成之前对所述应用进行签名校验,包括:在所述针对所述nativeActivity的执行文件加载后,执行安卓主界面函数,通过所述主界面函数,在所述应用的主界面启动完成之前对所述应用进行签名校验,如果所述应用的签名校验不通过,则退出应用。7.如权利要求6所述的方法,其特征在于,执行安卓主界面函数,通过所述主界面函数,在所述应用的主界面启动完成之前对所述应用进行签名校验包括:在主界面函数中,调用native方法在系统内存中指定位置申请一块内存,存放预置的第一签名信息;获取当前应用的第二签名信息,判断所述第一签名信息与第二签名信息是否匹配;所述第一签名信息与第二签名信息不匹配,则确定所述应用的签名校验不通过。8.如权利要求7所述的方法,其特征在于,所述第一签名信息为应用初始状态下的第一MD5值,所述第二签名信息为应用启动时的第二MD5值。9.如权利要求7所述的方法,其特征在于,所述第一签名信息为所述应用初始状态下的第一证书文件,所述第二签名信息为所述应用启动时的第二证书文件。10.如权利要求6所述的方法,其特征在于,所述调用JAVA本地调用接口,加载针对所述nativeActivity的执行文件包括:调用本地调用接口,加载针对所述nativeActivity的SO文件;所述SO文件用于,在所述针对所述nativeActivity的执行文件加载后,在所述应用的主界面启动完成之前对所述应用进行签名校验,如果所述应用的签名校验不通过,则退出应用。11.一种防软件反编译的装置,包括:入口声明模块,适于针对安卓系统的应用的配...

【专利技术属性】
技术研发人员:王国涛
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1