CN105653432A - 一种崩溃数据的处理方法和装置 - Google Patents

一种崩溃数据的处理方法和装置 Download PDF

Info

Publication number
CN105653432A
CN105653432A CN201510971331.4A CN201510971331A CN105653432A CN 105653432 A CN105653432 A CN 105653432A CN 201510971331 A CN201510971331 A CN 201510971331A CN 105653432 A CN105653432 A CN 105653432A
Authority
CN
China
Prior art keywords
collapse
file
application program
data
information
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
CN201510971331.4A
Other languages
English (en)
Other versions
CN105653432B (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 Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201510971331.4A priority Critical patent/CN105653432B/zh
Publication of CN105653432A publication Critical patent/CN105653432A/zh
Application granted granted Critical
Publication of CN105653432B publication Critical patent/CN105653432B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例提供了一种崩溃数据的处理方法和装置,其中的方法具体包括:通过应用程序的壳程序创建对应的守护进程;其中,所述壳程序用于保护所述应用程序;通过所述守护进程收集所述应用程序的崩溃数据。本发明实施例可以收集到所述壳程序对应应用程序的所有崩溃数据,从而能够提高单个应用程序的崩溃数据的覆盖率;并且,可以实现多个应用的崩溃数据的收集。

Description

一种崩溃数据的处理方法和装置
技术领域
本发明涉及计算机技术领域,特别是涉及一种崩溃数据的处理方法和装置。
背景技术
近年来,安装有操作系统的智能终端越来越多。安装了操作系统的智能终端可以像个人电脑一样,由用户自行安装软件、游戏、导航等第三方服务商提供的程序,通过此类程序来不断对智能终端的功能进行扩充,并可以通过移动通讯网络来实现无线网络接入。
安卓(Android)系统是现在主流的终端操作系统之一,大多数智能终端厂商都使用安卓操作系统。随着智能终端的普及,运行在安卓系统上的APP(应用程序,Application)的数量也有了呈几何级数的爆炸式增长。大多数应用程序都是第三方提供的,当智能终端运行应用程序时,可能无法正常运行该应用程序,导致应用程序崩溃。
现有崩溃数据的处理方案,会在应用发生崩溃事件后进行崩溃数据的收集。然而,在实际应用中,有时会遇到漏掉崩溃事件的问题,因此容易影响崩溃数据的覆盖率。并且,现有方案仅仅能够适用于单个应用的崩溃数据的收集,而对于多个应用的崩溃数据的收集则无能为力。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种崩溃数据的处理方法和装置。
依据本发明的一个方面,提供了一种崩溃数据的处理方法,包括:
通过应用程序的壳程序创建对应的守护进程;其中,所述壳程序用于保护所述应用程序;
通过所述守护进程收集所述应用程序的崩溃数据。
可选地,所述通过守护进程收集应用程序的崩溃数据的步骤,包括:
通过所述守护进程在所述壳程序的主进程上注册崩溃信号;
在出现所述崩溃信号时,通过所述守护进程接收来自崩溃进程的崩溃数据;其中,所述崩溃进程为所述应用程序中出现崩溃信号的进程。
可选地,所述方法还包括:对所述崩溃数据进行分析,以得到对应的崩溃信息。
可选地,所述对所述崩溃数据进行分析的步骤,包括:
利用预置跟踪接口得到所述崩溃数据对应的调用栈信息;以及
依据所述调用栈信息进行回溯分析,以得到对应的崩溃函数和崩溃位置。
可选地,所述方法还包括:
监测所述壳程序的主进程是否存在;
当监测到所述主进程不存在时,关闭所述守护进程。
可选地,所述方法还包括:
通过所述守护进程将所述崩溃数据或所述崩溃信息上传至服务器
可选地,所述崩溃信息包括如下信息中的至少一种:崩溃函数、崩溃位置、崩溃进程信息、崩溃线程信息、崩溃堆栈信息、崩溃寄存器信息、应用程序安装包信息和智能终端信息。
可选地,通过如下步骤得到所述壳程序的文件:
将待保护应用程序的SO文件作为代码数据写入壳程序文件中;
对所述壳程序文件中的所述SO文件进行加保护处理。
可选地,所述对所述壳程序文件中的所述SO文件进行加保护处理,包括如下处理中的至少一种:
去掉所述SO文件中的部分信息;
对所述SO文件进行分段加密处理;
对所述SO文件进行代码混淆处理;
对所述SO文件进行反调试处理。
可选地,通过如下步骤得到所述应用程序的加固安装包:
将对安卓安装包实现加密保护的代码保存到所述安卓安装包的lib目录下的SO文件中;
将待保护应用程序的SO文件作为代码数据写入壳程序文件中;
对所述壳程序文件中的所述SO文件进行加保护处理;
将加保护处理后的SO文件和所述安卓安装包的其他部分重新打包生成加固安装包。
依据本发明的另一方面,提供了一种崩溃数据的处理装置,包括:
创建模块,用于通过应用程序的壳程序创建对应的守护进程;其中,所述壳程序用于保护所述应用程序;以及
收集模块,用于通过所述守护进程收集所述应用程序的崩溃数据。
根据本发明实施例的一种崩溃数据的处理方法和装置,可以通过守护进程收集应用程序的崩溃数据;由于所述守护进程可以为所述应用程序对应壳程序创建的进程,而所述守护进程具有脱离于智能终端、且不会被智能终端的任意事件打断的特性,因此,上述守护进程可以收集到所述壳程序对应应用程序的所有崩溃数据,从而能够提高单个应用程序的崩溃数据的覆盖率。
并且,利用本发明实施例,可以针对多个应用程序建立对应多个守护进程,以进行多个应用程序的并行收集,因此可以实现多个应用的崩溃数据的收集。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文可选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出可选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种崩溃数据的处理方法的应用环境的结构示意图;
图2示出了根据本发明一个实施例的一种崩溃数据的处理方法的步骤流程示意图;
图3示出了根据本发明一个实施例的一种崩溃数据的处理系统的结构示意图;
图4示出了根据本发明一个实施例的一种崩溃数据的处理方法的步骤流程示意图;
图5示出了根据本发明一个实施例的一种崩溃数据的处理方法的步骤流程示意图;以及
图6示出了根据本发明一个实施例的一种崩溃数据的处理装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例的核心构思之一在于,通过守护进程收集应用程序的崩溃数据;由于所述守护进程可以为所述应用程序对应壳程序创建的进程,而所述守护进程具有脱离于智能终端、且不会被智能终端的任意事件打断的特性,因此,上述守护进程可以收集到所述壳程序对应应用程序的所有崩溃数据,从而能够提高单个应用程序的崩溃数据的覆盖率。
并且,利用本发明实施例,可以针对多个应用程序建立对应多个守护进程,以进行多个应用程序的并行收集,因此可以实现多个应用的崩溃数据的收集。
本发明实施例提供的崩溃数据的处理方法可应用于图1所示的应用环境中,如图1所示,客户端100与服务器200位于有线或无线网络中,通过该有线或无线网络,客户端100与服务器200进行数据交互。
具体地,客户端100可以运行在智能终端上,上述智能终端可以是具有安卓系统、IOS等操作系统的智能终端,上述智能终端具体包括但不限:智能手机、平板电脑、电子书阅读器、MP3(动态影像专家压缩标准音频层面3,MovingPictureExpertsGroupAudioLayerIII)播放器、MP4(动态影像专家压缩标准音频层面4,MovingPictureExpertsGroupAudioLayerIV)播放器、膝上型便携计算机、车载电脑、台式计算机、机顶盒、智能电视机、可穿戴设备等等;
客户端100可用于通过应用程序的壳程序创建对应的守护进程,通过所述守护进程收集所述应用程序的崩溃数据,并将上述崩溃数据上传至服务器200。
服务器200可以分析上述崩溃数据,以得到对应壳程序与应用程序之间的兼容性信息,从而可以对壳程序的改进提供对应的便利;或者,服务器200可以分析上述崩溃数据,以得到应用程序的调试信息,以使开发者对应用程序进行相应的改进。
在本发明的一种可选实施例中,客户端100还可以对所述崩溃数据进行分析,以得到对应的崩溃信息,上述崩溃信息可以包括:崩溃函数和崩溃位置(如代码所在的行数),上述分析将崩溃信息定位到具体的崩溃函数和具体的崩溃位置,因此能够提高崩溃分析的便利性。
可以理解,上述图1所示应用环境只是作为应用示例,本发明实施例中崩溃数据的处理流程的目的之一在于,通过守护进程收集应用程序的崩溃数据,收集到所述壳程序对应应用程序的所有崩溃数据,从而能够提高单个应用程序的崩溃数据的覆盖率,而对崩溃数据的处理流程的具体执行主体和具体应用环境不加以限制。
参照图2,示出了根据本发明一个实施例的一种崩溃数据的处理方法的步骤流程示意图,具体可以包括如下步骤:
步骤201、通过应用程序的壳程序创建对应的守护进程;其中,所述壳程序可用于保护所述应用程序;
本发明实施例中,壳程序可用于保护对应的应用程序,其对应的壳程序文件可以先于应用程序的APK(安卓安装包,Androidapplicationpackagefile)文件和SO文件运行,取得优先权。而在壳程序运行后,即可创建对应的守护进程,以使守护进程先于APK文件和SO文件运行,因此,可以保证收集到所述壳程序对应应用程序的所有崩溃数据。其中,上述SO文件是指linux环境下的库文件,后缀为.so,SO文件是ELF(执行链接格式,ExecutableLinkingFormat)的动态链接库文件,该类文件在程序运行需要的时候才动态加载到程序中,支持程序的运行。
本发明实施例可以提供如下保护应用程序的技术方案:
技术方案1
技术方案1中,可以通过如下步骤得到所述壳程序的文件:
步骤A1、将待保护应用程序的SO文件作为代码数据写入壳程序文件中;本步骤是对SO文件进行加壳的过程,即将SO文件写入壳程序文件中的指定位置,在加载运行SO文件时,壳程序文件会先于SO文件运行,取得优先权,保护SO文件不被非法修改或反编译。
步骤A2、对所述壳程序文件中的所述SO文件进行加保护处理。
可见,步骤A1-步骤A2所示的壳程序的文件的获取流程,通过对SO文件的加壳处理和加保护处理,实现了对SO文件的多重保护,可以有效阻止恶意程序对SO文件的反汇编分析,提高SO文件的内容的安全等级。
在本发明一种可选实实施例中,对壳程序文件中的SO文件进行加保护处理可以是如下的一种或多种处理方式:
去掉SO文件中的部分信息;
对SO文件进行分段加密处理;
对SO文件进行代码混淆处理;
对SO文件进行反调试处理。
在上述实施例中,去掉SO文件中的部分信息会导致SO文件信息缺失,即使有人对SO文件进行恶意解密或反编译,也无法得到完整的SO文件,很难做到静态工具分析;在本发明的一些实施例中会去掉SO文件中的部分或全部头部信息。
在上述实施例中,对SO文件进行分段加密处理可以是:对SO文件的数据节和代码节分别进行加密,增加解密难度。
在上述实施例中,对SO文件进行代码混淆处理是不改变代码逻辑的情况下,在SO文件的代码中增加无用代码,或者对SO文件的代码进行重命名,使反编译后的源代码难以看懂,增加反编译后代码分析的难度;在本发明的一些实施例中,对SO文件进行代码混淆处理可以包括:
步骤B1、在SO文件的代码中填充控制量代码得到扩充后的第一代码。本步骤对SO文件的代码空间进行了扩充。
步骤B2、采用指定代码混淆工具从第一代码中提取出控制量以外的代码,对提取出的代码的顺序进行随机化处理,并在其中插入跳转指令代码,以保证程序能够正常执行。
本步骤中,从第一代码中提取出的控制量以外的代码是SO文件的有效代码,随机化处理后,有效代码的顺序被打乱,其中插入的跳转指令代码是无效代码,不会影响程序的正常执行,无效代码将打乱的有效代码扩充为另一段代码,并将该段代码会填到源代码的代码空间内,由于代码空间在步骤S121中被扩充,因此扩充后的代码与代码空间是相匹配的。
在上述实施例中,对SO文件进行反调试是一个重要的保护功能,其反调试处理可以是:将可用于反调试的点插入到SO文件进行代码混淆后的代码中;代码混淆后,反调试的点就不容易找到,这样能给破解者进行调试的时候造成很多困扰,增加破解难度。
综上,获取方案1的壳程序文件中包含能够对加保护处理后的SO文件进行解密处理的代码。在加载运行SO文件时,壳程序文件会先于SO文件运行,取得优先权,对加保护处理后的SO文件进行解密处理,使得SO文件的源代码恢复为完整的、代码排序正常的、无加密的、可完全还原的代码,进而在解壳后可以正常的加载运行。
技术方案2
技术方案2中,可以通过如下步骤得到所述应用程序的加固安装包:
步骤C1、将对安卓安装包实现加密保护的代码保存到所述安卓安装包的lib目录下的SO文件中;
在安卓系统上,一个可以安装、运行的应用,需要打包成安卓安装包,即APK文件格式。安卓安装包其实是ZIP文件格式,但后缀名被修改成.apk,可以通过Unzip等工具解压看到其内部文件结构,如表1所示:
表1
文件名 说明
META-INF\ 证书文件
res\ 资源文件
assets\ 额外资源文件
resources.arsc 二进制资源文件
classes.dex .源码资源文件
AndroidManifest.xml 全局配置文件
lib\ 附加组件
其中,META-INF目录下一般有MANIFEST.MF和以.RSA、.SF结尾的文件,这些文件记录了其它目录文件的证书签名,Android系统在安装APK安装包的时候会逐个检查APK内部各文件是否与本目录记录的证书签名一致,如果不一致,则认为文件已被篡改,拒绝该APK的安装和运行。
res目录存放的是安卓应用所使用的图片资源和界面的布局等文件。
assets目录下存放的是安卓应用所使用的额外资源和配置文件,如TXT或HTML说明文档、字体文件和图片资源。
resources.arsc文件是经过编译后的资源文件。
class.dex文件是Java源码编译后生成的Java字节码文件,.dex是DalvikExecutable(Dalvik虚拟机可执行文件)的缩写。
AndroidManifest.xml文件是安卓安装包的全局描述文件,该文件记录了应用的包名、版本号、权限、引用的库文件、模块入口、类等信息。lib目录是JNI(JavaNativeInterface)库文件,一般在armeabi子文件夹中存放一些SO文件。而图3所示方法的本步骤S310就是将实现加密保护的代码保存到该lib目录的SO文件中。
步骤C2、将待保护应用程序的SO文件作为代码数据写入壳程序文件中;
步骤C3、对所述壳程序文件中的所述SO文件进行加保护处理;
步骤C4、将加保护处理后的SO文件和所述安卓安装包的其他部分重新打包生成加固安装包。
可见,步骤C1-步骤C4对应加固安装包的生成流程,通过将对安卓安装包实现加密保护的代码存入SO文件中,并对该SO文件进行多重保护,实现了对安卓安装包的加固保护,提高安卓安装包的安全系数,增加逆向难度,防止安卓应用所使用的密钥体系等关键信息的泄露。
传统技术中,dex文件为安卓安装包的可执行文件,为了防止安卓安装包被篡写,目前市面上针对安卓安装包的保护主要是基于对dex的保护,但是由于dex很容易被反编译,而相对于dex文件,SO文件的反编译难度较高,因此,在本发明的一种可选实施例中,在将关于dex文件的重要代码写入SO文件中时,该重要代码可以是对dex文件进行加密保护的代码,也可以是dex文件自身的一段核心代码。
步骤202、通过所述守护进程收集所述应用程序的崩溃数据。
在本发明的一种可选实施例中,所述通过守护进程收集应用程序的崩溃数据的步骤,具体可以包括:
步骤D1、通过所述守护进程在所述壳程序的主进程上注册崩溃信号;
步骤D2、在出现所述崩溃信号时,通过所述守护进程接收来自崩溃进程的崩溃数据;其中,所述崩溃进程可以为所述应用程序中出现崩溃信号的进程。
通过步骤D1-步骤D2可以注册各种所需的崩溃信号,也即,可以通过注册尽可能多的崩溃信号,以提高崩溃信号的覆盖率。
在本发明的一种可选实施例中,可以通过sigaction函数进行崩溃信号的注册,该sigaction函数可用于检查或修改与指定信号相关联的处理动作;并且,还可以通过sigaction函数预置出现崩溃信号后的处理,例如,上述出现崩溃信号后的处理可以为:崩溃进程将当前的崩溃进程发送给守护进程。其中,所述崩溃进程可以为所述应用程序中出现崩溃信号的任意进程,上述崩溃信号可由用户、外部设备、外部应用或者应用内进程触发,本发明实施例对于具体的崩溃进程及对应的触发方式不加以限制。
需要说明的是,上述注册崩溃信号的过程、及预置出现崩溃信号后的处理过程只是作为示例,实际上,本领域技术人员可以根据实际应用需求,采用其他方式注册崩溃信号的过程,或者,预置出现崩溃信号后的其他处理过程,例如,使当前崩溃进程继续运行,又如,关闭当前崩溃进程等,本发明实施例对于注册崩溃信号的过程、及预置出现崩溃信号后的处理过程不加以限制。
可以理解,上述收集应用程序的崩溃数据的方式只是作为可选实施例。在本发明的其他实施例中,守护进程还可以调用监听器判断应用程序的线程中是否有未处理的异常线程,如果是,则从该异常线程获取对应的崩溃数据。可以理解,本发明实施例对于收集应用程序的崩溃数据的具体方式不加以限制。或者,在本发明的其他实施例中,守护进程还可以在出现崩溃信号时,还可以从Native层获取Crashdump(故障转储)文件,该Crashdump文件中可以记录有Java堆栈信息、本地调用堆栈、虚拟机/进程堆、内存信息等崩溃数据。
需要说明的是,本发明实施例的崩溃数据可以包括:崩溃函数、崩溃位置、崩溃进程信息、崩溃线程信息、崩溃堆栈信息、崩溃寄存器信息、应用程序安装包信息和智能终端信息等崩溃信息,也可以包括:应用程序从启动到崩溃时的函数调用数据,以依据这些函数调用数据得到对应的崩溃信息,本发明实施例对于具体的崩溃数据不加以限制。
综上,本发明实施例通过守护进程收集应用程序的崩溃数据;由于所述守护进程可以为所述应用程序对应壳程序创建的进程,而所述守护进程具有脱离于智能终端、且不会被智能终端的任意事件打断的特性,因此,上述守护进程可以收集到所述壳程序对应应用程序的所有崩溃数据,从而能够提高单个应用程序的崩溃数据的覆盖率。
并且,利用本发明实施例,可以针对多个应用程序建立对应多个守护进程,以进行多个应用程序的并行收集,因此可以实现多个应用的崩溃数据的收集。
参照图3,示出了根据本发明一个实施例的一种崩溃数据的处理方法的步骤流程示意图,具体可以包括如下步骤:
步骤301、通过应用程序的壳程序创建对应的守护进程;其中,所述壳程序可用于保护所述应用程序;
步骤302、通过所述守护进程收集所述应用程序的崩溃数据;
步骤303、对所述崩溃数据进行分析,以得到对应的崩溃信息。
相对于图2所示实施例,本实施例可以对崩溃数据进行分析,以得到对应的崩溃信息。上述分析可以将崩溃信息定位到具体的崩溃函数和具体的崩溃位置等级别,因此能够提高崩溃分析的便利性。其中,本实施例可以应用于崩溃数据为应用程序从启动到崩溃时的函数调用数据等情形,以对这些函数调用数据进行分析,以得到对应的崩溃信息。
在本发明的一种可选实施例中,所述崩溃信息具体可以包括如下信息中的至少一种:崩溃函数、崩溃位置、崩溃进程信息、崩溃线程信息、崩溃堆栈信息、崩溃寄存器信息、应用程序安装包信息和智能终端信息。其中,上述应用程序安装包信息和智能终端信息,可以使得在与当前崩溃信息相同的APK和相同的智能终端上进行调试,从而可以实现应用调试的重现。
在本发明的另一种可选实施例中,所述对所述崩溃数据进行分析的步骤,具体可以包括:
步骤E1、利用预置跟踪接口得到所述崩溃数据对应的调用栈信息;以及
步骤E2、依据所述调用栈信息进行回溯分析,以得到对应的崩溃函数和崩溃位置。
上述调用栈信息可以记录进程或者线程在运行过程中的函数调用(函数执行顺序),本发明实施例中,可以将出现崩溃信号时的函数执行点作为断点,并从断点起进行函数的回溯分析,以得到对应的崩溃函数和崩溃位置。其中,在回溯分析过程中,可以依据调用栈信息中记录的当前调用对应的指令地址获得对应的代码位置,并执行对应的代码,在代码执行错误时,可以确定当前调用对应崩溃函数及错误代码对应的崩溃位置。
在本发明的一种可选实施例中,上述预置跟踪接口可以为ptrace接口,并且,可以利用backtrace函数执行上述回溯分析,可以理解,本发明实施例对于具体的预置跟踪接口和具体的回溯分析过程不加以限制。
参照图4,示出了根据本发明一个实施例的一种崩溃数据的处理方法的步骤流程示意图,具体可以包括如下步骤:
步骤401、通过应用程序的壳程序创建对应的守护进程;其中,所述壳程序可用于保护所述应用程序;
步骤402、通过所述守护进程收集所述应用程序的崩溃数据;
相对于图2所示实施例,本实施例的方法还可以包括:
步骤403、监测所述壳程序的主进程是否存在;
步骤404、当监测到所述主进程不存在时,关闭所述守护进程。
由于壳程序用于保护所述应用程序,其生命周期可以与应用程序相同,故在壳程序的主进程不存在的情况下,可以认为对应应用程序也不存在,此种情况下,守护进程也不具备存在的价值,因此,可以关闭上述守护进程,以节省智能终端的资源。
参照图5,示出了根据本发明一个实施例的一种崩溃数据的处理方法的步骤流程示意图,具体可以包括如下步骤:
步骤501、通过应用程序的壳程序创建对应的守护进程;其中,所述壳程序可用于保护所述应用程序;
步骤502、通过所述守护进程收集所述应用程序的崩溃数据;
相对于图2所示实施例,本实施例的方法还可以包括:
步骤503、通过所述守护进程将所述崩溃数据或所述崩溃信息上传至服务器。
服务器在接收到上述崩溃数据后,可以分析上述崩溃数据,以得到对应壳程序与应用程序之间的兼容性信息,从而可以对壳程序的改进提供对应的便利;或者,服务器可以分析上述崩溃数据,以得到应用程序的调试信息,以使开发者对应用程序进行相应的改进。
在本发明的一种可选实施例中,服务器接收到的可以是包含崩溃数据和/或崩溃信息的崩溃信息包,其中,崩溃信息包具体可以包括:崩溃函数、崩溃位置、崩溃进程信息、崩溃线程信息、崩溃堆栈信息、崩溃寄存器信息、应用程序安装包信息和智能终端信息。其中,上述应用程序安装包信息和智能终端信息。服务器接收到的崩溃数据是智能终端进行打包之后的数据。这样,可以减少智能终端到服务器之间的传送数据量,降低网络传输量。
在本发明的另一种可选实施例中,服务器在预定时刻接收智能终端发送的崩溃数据,其中,智能终端发送的崩溃数据是智能终端将一段时间内获取的崩溃数据进行打包获得的数据。通过这样的方式,服务器仅需要在预定时刻接收崩溃数据,而不需要随时扫描崩溃数据,从而提高了工作效率。另外,由于通信系统在某些时刻负载会较重,某些时刻负载会较轻,因此,可以将预定时刻设置在负载较轻的时刻,从而避免通信网络负载过重。
在本发明实施例的再一种可选实施例中,服务器在接收智能终端发送的应用程序的崩溃数据之后,可以将一段时间(例如1天)内服务器接收到的崩溃数据进行打包,并保存打包之后的崩溃数据。通过该实施例,可以减少服务器保存的文件的数量。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图6,示出了根据本发明一个实施例的一种崩溃数据的处理装置的结构示意图,具体可以包括如下模块:
创建模块601,用于通过应用程序的壳程序创建对应的守护进程;其中,所述壳程序可用于保护所述应用程序;以及
收集模块602,用于通过所述守护进程收集所述应用程序的崩溃数据。
在本发明的一种可选实施例中,所述收集模块602,具体可以包括:
注册子模块,用于通过所述守护进程在所述壳程序的主进程上注册崩溃信号;
接收子模块,用于在出现所述崩溃信号时,通过所述守护进程接收来自崩溃进程的崩溃数据;其中,所述崩溃进程可以为所述应用程序中出现崩溃信号的进程。
在本发明的另一种可选实施例中,所述装置还可以包括:
分析模块,用于对所述崩溃数据进行分析,以得到对应的崩溃信息。
在本发明的再一种可选实施例中,所述分析模块,具体可以包括:
第一分析子模块,用于利用预置跟踪接口得到所述崩溃数据对应的调用栈信息;以及
第二分析子模块,用于依据所述调用栈信息进行回溯分析,以得到对应的崩溃函数和崩溃位置。
在本发明的又一种可选实施例中,所述装置还可以包括:
监测模块,用于监测所述壳程序的主进程是否存在;
关闭模块,用于当监测到所述主进程不存在时,关闭所述守护进程。
在本发明的一种可选实施例中,所述装置还可以包括:
上传模块,用于通过所述守护进程将所述崩溃数据或所述崩溃信息上传至服务器。
在本发明的另一种可选实施例中,所述崩溃信息具体可以包括如下信息中的至少一种:崩溃函数、崩溃位置、崩溃进程信息、崩溃线程信息、崩溃堆栈信息、崩溃寄存器信息、应用程序安装包信息和智能终端信息。
在本发明的再一种可选实施例中,所述装置还可以包括:第一获取模块,用于获取所述壳程序的文件:
所述第一获取模块,具体可以包括:
第一写入子模块,用于将待保护应用程序的SO文件作为代码数据写入壳程序文件中;
第一加保护处理子模块,用于对所述壳程序文件中的所述SO文件进行加保护处理。
在本发明的又一种可选实施例中,所述对所述壳程序文件中的所述SO文件进行加保护处理,具体可以包括如下处理中的至少一种:
去掉所述SO文件中的部分信息;
对所述SO文件进行分段加密处理;
对所述SO文件进行代码混淆处理;
对所述SO文件进行反调试处理。
在本发明的一种可选实施例中,所述装置还可以包括:第二获取模块,用于获取所述应用程序的加固安装包:
所述第二获取模块,具体可以包括:
保存子模块,用于将对安卓安装包实现加密保护的代码保存到所述安卓安装包的lib目录下的SO文件中;
第二写入子模块,用于将待保护应用程序的SO文件作为代码数据写入壳程序文件中;
第二加保护处理子模块,用于对所述壳程序文件中的所述SO文件进行加保护处理;以及
打包子模块,用于将加保护处理后的SO文件和所述安卓安装包的其他部分重新打包生成加固安装包。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的崩溃数据的处理方法和装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网平台上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包括”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种崩溃数据的处理方法,包括:
通过应用程序的壳程序创建对应的守护进程;其中,所述壳程序用于保护所述应用程序;
通过所述守护进程收集所述应用程序的崩溃数据。
A2、如A1所述的方法,所述通过守护进程收集应用程序的崩溃数据的步骤,包括:
通过所述守护进程在所述壳程序的主进程上注册崩溃信号;
在出现所述崩溃信号时,通过所述守护进程接收来自崩溃进程的崩溃数据;其中,所述崩溃进程为所述应用程序中出现崩溃信号的进程。
A3、如A1所述的方法,所述方法还包括:对所述崩溃数据进行分析,以得到对应的崩溃信息。
A4、如A3所述的方法,所述对所述崩溃数据进行分析的步骤,包括:
利用预置跟踪接口得到所述崩溃数据对应的调用栈信息;以及
依据所述调用栈信息进行回溯分析,以得到对应的崩溃函数和崩溃位置。
A5、如A1所述的方法,所述方法还包括:
监测所述壳程序的主进程是否存在;
当监测到所述主进程不存在时,关闭所述守护进程。
A6、如A1或A3所述的方法,所述方法还包括:
通过所述守护进程将所述崩溃数据或所述崩溃信息上传至服务器
A7、如A3或A4所述的方法,所述崩溃信息包括如下信息中的至少一种:崩溃函数、崩溃位置、崩溃进程信息、崩溃线程信息、崩溃堆栈信息、崩溃寄存器信息、应用程序安装包信息和智能终端信息。
A8、如A1至A5中任一所述的方法,通过如下步骤得到所述壳程序的文件:
将待保护应用程序的SO文件作为代码数据写入壳程序文件中;
对所述壳程序文件中的所述SO文件进行加保护处理。
A9、如A8所述的方法,所述对所述壳程序文件中的所述SO文件进行加保护处理,包括如下处理中的至少一种:
去掉所述SO文件中的部分信息;
对所述SO文件进行分段加密处理;
对所述SO文件进行代码混淆处理;
对所述SO文件进行反调试处理。
A10、如A1至A5中任一所述的方法,通过如下步骤得到所述应用程序的加固安装包:
将对安卓安装包实现加密保护的代码保存到所述安卓安装包的lib目录下的SO文件中;
将待保护应用程序的SO文件作为代码数据写入壳程序文件中;
对所述壳程序文件中的所述SO文件进行加保护处理;
将加保护处理后的SO文件和所述安卓安装包的其他部分重新打包生成加固安装包。
本发明公开了B11、一种崩溃数据的处理装置,包括:
创建模块,用于通过应用程序的壳程序创建对应的守护进程;其中,所述壳程序用于保护所述应用程序;以及
收集模块,用于通过所述守护进程收集所述应用程序的崩溃数据。
B12、如B11所述的装置,所述收集模块,包括:
注册子模块,用于通过所述守护进程在所述壳程序的主进程上注册崩溃信号;
接收子模块,用于在出现所述崩溃信号时,通过所述守护进程接收来自崩溃进程的崩溃数据;其中,所述崩溃进程为所述应用程序中出现崩溃信号的进程。
B13、如B11所述的装置,所述装置还包括:
分析模块,用于对所述崩溃数据进行分析,以得到对应的崩溃信息。
B14、如B13所述的装置,所述分析模块,包括:
第一分析子模块,用于利用预置跟踪接口得到所述崩溃数据对应的调用栈信息;以及
第二分析子模块,用于依据所述调用栈信息进行回溯分析,以得到对应的崩溃函数和崩溃位置。
B15、如B11所述的装置,所述装置还包括:
监测模块,用于监测所述壳程序的主进程是否存在;
关闭模块,用于当监测到所述主进程不存在时,关闭所述守护进程。
B16、如B11或B13所述的装置,所述装置还包括:
上传模块,用于通过所述守护进程将所述崩溃数据或所述崩溃信息上传至服务器。
B17、如B13或B14所述的装置,所述崩溃信息包括如下信息中的至少一种:崩溃函数、崩溃位置、崩溃进程信息、崩溃线程信息、崩溃堆栈信息、崩溃寄存器信息、应用程序安装包信息和智能终端信息。
B18、如B11至B15中任一所述的装置,所述装置还包括:第一获取模块,用于获取所述壳程序的文件:
所述第一获取模块,包括:
第一写入子模块,用于将待保护应用程序的SO文件作为代码数据写入壳程序文件中;
第一加保护处理子模块,用于对所述壳程序文件中的所述SO文件进行加保护处理。
B19、如B18所述的装置,所述对所述壳程序文件中的所述SO文件进行加保护处理,包括如下处理中的至少一种:
去掉所述SO文件中的部分信息;
对所述SO文件进行分段加密处理;
对所述SO文件进行代码混淆处理;
对所述SO文件进行反调试处理。
B20、如B11至B15中任一所述的装置,所述装置还包括:第二获取模块,用于获取所述应用程序的加固安装包:
所述第二获取模块,包括:
保存子模块,用于将对安卓安装包实现加密保护的代码保存到所述安卓安装包的lib目录下的SO文件中;
第二写入子模块,用于将待保护应用程序的SO文件作为代码数据写入壳程序文件中;
第二加保护处理子模块,用于对所述壳程序文件中的所述SO文件进行加保护处理;以及
打包子模块,用于将加保护处理后的SO文件和所述安卓安装包的其他部分重新打包生成加固安装包。

Claims (10)

1.一种崩溃数据的处理方法,包括:
通过应用程序的壳程序创建对应的守护进程;其中,所述壳程序用于保护所述应用程序;
通过所述守护进程收集所述应用程序的崩溃数据。
2.如权利要求1所述的方法,其特征在于,所述通过守护进程收集应用程序的崩溃数据的步骤,包括:
通过所述守护进程在所述壳程序的主进程上注册崩溃信号;
在出现所述崩溃信号时,通过所述守护进程接收来自崩溃进程的崩溃数据;其中,所述崩溃进程为所述应用程序中出现崩溃信号的进程。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:对所述崩溃数据进行分析,以得到对应的崩溃信息。
4.如权利要求3所述的方法,其特征在于,所述对所述崩溃数据进行分析的步骤,包括:
利用预置跟踪接口得到所述崩溃数据对应的调用栈信息;以及
依据所述调用栈信息进行回溯分析,以得到对应的崩溃函数和崩溃位置。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
监测所述壳程序的主进程是否存在;
当监测到所述主进程不存在时,关闭所述守护进程。
6.如权利要求1或3所述的方法,其特征在于,所述方法还包括:
通过所述守护进程将所述崩溃数据或所述崩溃信息上传至服务器。
7.如权利要求3或4所述的方法,其特征在于,所述崩溃信息包括如下信息中的至少一种:崩溃函数、崩溃位置、崩溃进程信息、崩溃线程信息、崩溃堆栈信息、崩溃寄存器信息、应用程序安装包信息和智能终端信息。
8.如权利要求1至5中任一所述的方法,其特征在于,通过如下步骤得到所述壳程序的文件:
将待保护应用程序的SO文件作为代码数据写入壳程序文件中;
对所述壳程序文件中的所述SO文件进行加保护处理。
9.如权利要求8所述的方法,其特征在于,所述对所述壳程序文件中的所述SO文件进行加保护处理,包括如下处理中的至少一种:
去掉所述SO文件中的部分信息;
对所述SO文件进行分段加密处理;
对所述SO文件进行代码混淆处理;
对所述SO文件进行反调试处理。
10.一种崩溃数据的处理装置,包括:
创建模块,用于通过应用程序的壳程序创建对应的守护进程;其中,所述壳程序用于保护所述应用程序;以及
收集模块,用于通过所述守护进程收集所述应用程序的崩溃数据。
CN201510971331.4A 2015-12-22 2015-12-22 一种崩溃数据的处理方法和装置 Active CN105653432B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510971331.4A CN105653432B (zh) 2015-12-22 2015-12-22 一种崩溃数据的处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510971331.4A CN105653432B (zh) 2015-12-22 2015-12-22 一种崩溃数据的处理方法和装置

Publications (2)

Publication Number Publication Date
CN105653432A true CN105653432A (zh) 2016-06-08
CN105653432B CN105653432B (zh) 2019-02-15

Family

ID=56477714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510971331.4A Active CN105653432B (zh) 2015-12-22 2015-12-22 一种崩溃数据的处理方法和装置

Country Status (1)

Country Link
CN (1) CN105653432B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106407103A (zh) * 2016-07-20 2017-02-15 平安科技(深圳)有限公司 异常信号处理方法及装置
CN106708643A (zh) * 2016-11-14 2017-05-24 武汉斗鱼网络科技有限公司 异常信息处理方法及装置
CN106708734A (zh) * 2016-12-13 2017-05-24 腾讯科技(深圳)有限公司 软件异常检测方法及装置
CN107085550A (zh) * 2017-03-31 2017-08-22 武汉斗鱼网络科技有限公司 一种用于收集iOS系统中应用崩溃信息的方法及系统
CN107506256A (zh) * 2017-09-07 2017-12-22 北京京东尚科信息技术有限公司 一种崩溃数据监控的方法和装置
CN107704356A (zh) * 2017-06-12 2018-02-16 平安科技(深圳)有限公司 异常堆栈信息获取方法、装置及计算机可读存储介质
CN108073495A (zh) * 2016-11-18 2018-05-25 腾讯科技(深圳)有限公司 应用程序崩溃原因的定位方法及装置
CN109388546A (zh) * 2017-08-07 2019-02-26 北京京东尚科信息技术有限公司 处理应用程序的故障的方法、装置和系统
CN109408265A (zh) * 2018-09-28 2019-03-01 广州虎牙信息科技有限公司 一种ios运行异常的保护方法、装置、终端设备及存储介质
CN110502357A (zh) * 2019-07-09 2019-11-26 北京字节跳动网络技术有限公司 一种栈回溯方法、装置、介质和设备
CN111352842A (zh) * 2020-02-28 2020-06-30 成都金诺信高科技有限公司 基于嵌入式的软件调试方法
CN112099982A (zh) * 2020-09-08 2020-12-18 北京字节跳动网络技术有限公司 一种崩溃信息定位方法、装置、介质和电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719090A (zh) * 2009-12-25 2010-06-02 珠海市君天电子科技有限公司 对计算机软件系统崩溃原因进行自动分析的方法
CN102779177A (zh) * 2012-06-27 2012-11-14 优视科技有限公司 浏览器浏览历史备份方法、恢复方法及装置
CN102929761A (zh) * 2012-11-16 2013-02-13 赛尔网络有限公司 一种应对崩溃性错误的系统及方法
CN104021321A (zh) * 2014-06-17 2014-09-03 北京奇虎科技有限公司 软件安装包的加固保护方法和装置
CN104199749A (zh) * 2014-09-17 2014-12-10 百度在线网络技术(北京)有限公司 一种崩溃信息的处理方法及装置
CN104392181A (zh) * 2014-11-18 2015-03-04 北京奇虎科技有限公司 So文件的保护方法、装置及安卓安装包的加固方法和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719090A (zh) * 2009-12-25 2010-06-02 珠海市君天电子科技有限公司 对计算机软件系统崩溃原因进行自动分析的方法
CN102779177A (zh) * 2012-06-27 2012-11-14 优视科技有限公司 浏览器浏览历史备份方法、恢复方法及装置
CN102929761A (zh) * 2012-11-16 2013-02-13 赛尔网络有限公司 一种应对崩溃性错误的系统及方法
CN104021321A (zh) * 2014-06-17 2014-09-03 北京奇虎科技有限公司 软件安装包的加固保护方法和装置
CN104199749A (zh) * 2014-09-17 2014-12-10 百度在线网络技术(北京)有限公司 一种崩溃信息的处理方法及装置
CN104392181A (zh) * 2014-11-18 2015-03-04 北京奇虎科技有限公司 So文件的保护方法、装置及安卓安装包的加固方法和系统

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106407103A (zh) * 2016-07-20 2017-02-15 平安科技(深圳)有限公司 异常信号处理方法及装置
CN106708643A (zh) * 2016-11-14 2017-05-24 武汉斗鱼网络科技有限公司 异常信息处理方法及装置
CN106708643B (zh) * 2016-11-14 2020-05-12 武汉斗鱼网络科技有限公司 异常信息处理方法及装置
CN108073495A (zh) * 2016-11-18 2018-05-25 腾讯科技(深圳)有限公司 应用程序崩溃原因的定位方法及装置
CN106708734B (zh) * 2016-12-13 2020-01-10 腾讯科技(深圳)有限公司 软件异常检测方法及装置
CN106708734A (zh) * 2016-12-13 2017-05-24 腾讯科技(深圳)有限公司 软件异常检测方法及装置
CN107085550A (zh) * 2017-03-31 2017-08-22 武汉斗鱼网络科技有限公司 一种用于收集iOS系统中应用崩溃信息的方法及系统
US11010227B2 (en) 2017-06-12 2021-05-18 Ping An Technology (Shenzhen) Co., Ltd. Exception stack information acquisition method and device and computer-readable storage medium
CN107704356B (zh) * 2017-06-12 2019-06-28 平安科技(深圳)有限公司 异常堆栈信息获取方法、装置及计算机可读存储介质
CN107704356A (zh) * 2017-06-12 2018-02-16 平安科技(深圳)有限公司 异常堆栈信息获取方法、装置及计算机可读存储介质
CN109388546A (zh) * 2017-08-07 2019-02-26 北京京东尚科信息技术有限公司 处理应用程序的故障的方法、装置和系统
CN109388546B (zh) * 2017-08-07 2022-06-07 北京京东尚科信息技术有限公司 处理应用程序的故障的方法、装置和系统
CN107506256A (zh) * 2017-09-07 2017-12-22 北京京东尚科信息技术有限公司 一种崩溃数据监控的方法和装置
CN109408265A (zh) * 2018-09-28 2019-03-01 广州虎牙信息科技有限公司 一种ios运行异常的保护方法、装置、终端设备及存储介质
CN109408265B (zh) * 2018-09-28 2022-05-10 广州虎牙信息科技有限公司 一种ios运行异常的保护方法、装置、终端设备及存储介质
CN110502357A (zh) * 2019-07-09 2019-11-26 北京字节跳动网络技术有限公司 一种栈回溯方法、装置、介质和设备
CN110502357B (zh) * 2019-07-09 2023-01-17 北京字节跳动网络技术有限公司 一种栈回溯方法、装置、介质和设备
CN111352842A (zh) * 2020-02-28 2020-06-30 成都金诺信高科技有限公司 基于嵌入式的软件调试方法
CN112099982A (zh) * 2020-09-08 2020-12-18 北京字节跳动网络技术有限公司 一种崩溃信息定位方法、装置、介质和电子设备
CN112099982B (zh) * 2020-09-08 2024-07-05 北京字节跳动网络技术有限公司 一种崩溃信息定位方法、装置、介质和电子设备

Also Published As

Publication number Publication date
CN105653432B (zh) 2019-02-15

Similar Documents

Publication Publication Date Title
CN105653432A (zh) 一种崩溃数据的处理方法和装置
CN104462959B (zh) 一种安卓应用的加固保护方法、服务器和系统
CN101278260B (zh) 使软件程序免于弱点和攻击的约束注入方法
CN104392181A (zh) So文件的保护方法、装置及安卓安装包的加固方法和系统
Feist et al. Statically detecting use after free on binary code
CN102598017B (zh) 提高Java字节码的防窜改能力的系统和方法
US20160364707A1 (en) Potentate: A Cryptography-Obfuscating, Self-Policing, Pervasive Distribution System For Digital Content
CN105574411A (zh) 一种动态脱壳方法、装置和设备
CN103914637B (zh) 一种安卓平台的可执行程序加密方法
CN104484585A (zh) 一种应用程序安装包的处理方法、装置及移动设备
CN103959247A (zh) 虚拟化计算机程序中的安全
Göbel et al. Anti-forensics in ext4: On secrecy and usability of timestamp-based data hiding
CN106663025A (zh) 用于混淆虚拟机上的应用程序的执行的方法、装置以及计算机可读介质
CN104239757A (zh) 应用程序防止逆向的方法及装置、运行方法及终端
CN103679039A (zh) 数据安全存储方法及装置
CN106897607A (zh) 一种应用程序监控方法及装置
CN106326691B (zh) 加解密功能的实现方法、装置及服务器
CN103246848A (zh) 保护软件安全的方法和设备
CN105740703A (zh) 一种应用程序的加固方法及装置
CN104537310A (zh) 移动存储设备的管理方法及客户端
CN105760721B (zh) 一种软件加固方法和系统
Suk et al. UnThemida: Commercial obfuscation technique analysis with a fully obfuscated program
CN103186730A (zh) 保护.net软件安全的方法和设备
US9047161B1 (en) Discovery, consolidation, and archival of multiple operating system software licenses
CN103677746B (zh) 指令重组方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220725

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

TR01 Transfer of patent right