WO2013139216A1 - 一种apk病毒特征码的提取方法及装置 - Google Patents

一种apk病毒特征码的提取方法及装置 Download PDF

Info

Publication number
WO2013139216A1
WO2013139216A1 PCT/CN2013/072480 CN2013072480W WO2013139216A1 WO 2013139216 A1 WO2013139216 A1 WO 2013139216A1 CN 2013072480 W CN2013072480 W CN 2013072480W WO 2013139216 A1 WO2013139216 A1 WO 2013139216A1
Authority
WO
WIPO (PCT)
Prior art keywords
signature
virus
information
constant
file
Prior art date
Application number
PCT/CN2013/072480
Other languages
English (en)
French (fr)
Inventor
王栒
张旭
Original Assignee
北京奇虎科技有限公司
奇智软件(北京)有限公司
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 北京奇虎科技有限公司, 奇智软件(北京)有限公司 filed Critical 北京奇虎科技有限公司
Priority to US14/386,567 priority Critical patent/US9600668B2/en
Publication of WO2013139216A1 publication Critical patent/WO2013139216A1/zh

Links

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/561Virus type analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/564Static detection by virus signature recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection

Definitions

  • the present invention relates to the technical field of computer security, and in particular to a method for extracting an APK virus signature, and an apparatus for extracting an APK virus signature. Background technique
  • the Android is a Linux-based open source operating system, mainly used in mobile terminals such as mobile phones. Currently, there is no unified Chinese name.
  • the Android platform consists of an operating system, middleware, user interface, and application software.
  • APK is the abbreviation of Android application package file, which is the Android installation package, which can also be understood as the application software installed on the Android terminal.
  • APKs are file formats like Symbian Sis or Sisx. Install by exporting the APK file directly to the Android emulator or Android terminal. Apk file and sis-like, the android sdk compiled project is packaged into an installer file, the format is apk. The APK file is actually in zip format, but the suffix name is modified to apk. After UnZip decompression, you can see the Dex file. Dex is the full name of Dalvik VM executes, ie Android Dalvik executable, not standard Java bytecode but Dalvik Bytecode. Android needs UnZip first when running a program, and then runs directly like Symbian, which is different from PE files in Windows Mobile.
  • APKs can be imported into mobile terminals via data lines, or directly Download and install via market (tool software, such as Android market), webpage, etc.
  • tools such as Android market
  • Android terminals With the popularity and development of Android terminals, a variety of APKs have emerged. These include virus APKs.
  • some APKs customize payment services such as SMS, make pay phones, and back up sensitive data in users' mobile phones. Malicious behavior such as a specific server to damage the user's rights.
  • the first one is to identify the virus APK by the HASH, signature, and package name of the APK file.
  • the principle is to extract the KEY by using the HASH algorithm for the APK, and then the virus can be identified according to the KEY, or by the virus APK.
  • the person's APK digital signature, package name, etc. identify it.
  • the above-mentioned existing method of identifying the HASH based on the APK file can easily change the KEY by the HASH algorithm by re-ambiguating, or adding a new resource file or even modifying the code in the APK file, thereby causing the KEY to be changed by the HASH algorithm.
  • the existing signature-based identification method can be bypassed by replacing the signature;
  • the above existing identification based on the package name can also be bypassed by modifying the package name.
  • changing the obfuscation method, modifying the APK file (adding delete resources, code, etc.) or replacing the signature is easy for the virus maker, so the virus maker can easily create new virus variants to bypass the security software. Identification.
  • the second is to identify the class name in the APK file by using the class name in the APK file.
  • the principle is to analyze the classes in the classes and extract the names of several classes as virus signatures, and then parse them.
  • the virus APK's classes.dex file to see if it contains a specific class name to identify it.
  • a technical problem that needs to be solved by those skilled in the art is to provide a virus APK feature code extraction mechanism for accurately and effectively extracting virus APK signatures to help improve the efficiency of virus APK and its variant recognition. And accuracy to improve the security of APK apps.
  • the present invention has been made in order to provide an extraction and corresponding apparatus for overcoming the above problems or at least partially solving or slowing down the above problems.
  • a method for extracting an APK virus signature including: scanning a specified file in an Android installation package APK; extracting an operation instruction in the specified file, and determining whether the operation instruction includes a virus Information; if yes, generate a virus signature according to the operation instruction.
  • an apparatus for extracting an APK virus signature comprising: a scanning module, configured to scan a specified file in an Android installation package APK; an instruction extraction module, configured to extract the specified file
  • the operation instruction instruction is configured to determine whether the operation instruction includes virus information.
  • the first feature code generation module is configured to generate a virus signature according to the operation instruction when the operation instruction includes virus information.
  • a computer program comprising computer readable code causing the server to perform any of claims 1-11 when run on a server The method for extracting the APK virus signature.
  • a computer readable medium storing the computer program according to claim 22 is provided.
  • the present application scans and analyzes the specified files in the APK file, such as executable files, text files, etc., generates corresponding virus signatures according to preset rules for instructions, constants or header information containing virus information, and compiles into virus signatures. Library for use by subsequent APK virus recognition. Therefore, the virus APK signature can be extracted accurately and effectively to help improve the efficiency and accuracy of virus APK and its variant recognition, and improve the security of the APK application.
  • FIG. 1 is a flowchart of Embodiment 1 of an HTTP virus signature extraction method according to the present application
  • FIG. 2 is a flowchart of Embodiment 2 of an APK virus signature extraction method according to the present application
  • FIG. 4 is a flowchart of Embodiment 4 of an APK virus signature extraction method according to the present application
  • FIG. 5 is a flowchart of an APK virus signature of the present application.
  • Figure 6 is a schematic block diagram showing a server for performing the method according to the present invention.
  • Figure 7 schematically illustrates a memory unit for holding or carrying program code that implements the method in accordance with the present invention.
  • One of the core concepts of the embodiment of the present application is to analyze and analyze a specified file in an APK file, such as an executable file, a text file, etc., to generate a corresponding virus according to preset rules for instructions, constants, or header information containing virus information.
  • the signature code is compiled into a virus signature database for subsequent APK virus recognition. Referring to FIG. 1 , an embodiment of an method for extracting an APK virus signature of the present application is shown.
  • the flow chart of the steps of 1 may specifically include the following steps:
  • Step 101 Scan an executable file in the APK
  • the executable file includes a Dex file
  • the Dex file is mainly a classes.dex file in the APK, that is, Dalvik Executable (Dalvik Executable File).
  • Dalvik is a Java virtual machine for the Android platform.
  • the Dalvik VM (Dalvik VM) is one of the core components of the Android mobile device platform. It can support the running of Java applications that have been converted to .dex (Dalvik Executable) format.
  • the .dex format is a compression format designed for Dalvik, suitable for systems with limited memory and processor speed. Dalvik is optimized to allow multiple instances of virtual machines to run simultaneously in limited memory, and each Dalvik application is executed as a separate Linux process.
  • Step 102 Extract an operation instruction in the executable file, and determine whether the operation instruction includes virus information.
  • the operation instruction includes an opcode and an operand.
  • whether the operation instruction includes the virus information may be determined by the following sub-steps: sub-step S1 l, determining the operand Whether it contains a predefined illegal operand; and / or,
  • Sub-step S12 Determine whether the combination of the operation code and the operand meets a predefined illegal combination rule.
  • Step 103 If yes, generate a virus signature according to the operation instruction.
  • the step 103 may include the following sub-steps: sub-step S21, using the operation instruction itself as a virus signature;
  • Sub-step S22 the operation code of the operation instruction, and the character string or the wildcard of the operand are used as the virus signature.
  • the virus signature may include an operand signature, an instruction signature, and an instruction signature sequence.
  • Instructions (operation instructions) in the classes.dex file of an APK are as follows:
  • Step 203 If yes, generate a virus signature according to the constant.
  • the virus information in the constant can be directly used as a virus signature.
  • the virus signature further includes a constant signature, a class name function name signature.
  • the constant pool in the classes.dex file of an APK contains the following string: com.noshufou.android.su
  • the constant pool in the classes.dex file of an APK contains the following method:
  • the constant pool in the classes.dex file of an APK contains the following type:
  • the constant pool in an APK's classes.dex file contains the following fields: Lcom/androidkernel/flash/b/br$l; ihis$0:Lcom/androidkernel/flash/b/br; After that, it can be directly used as a virus signature.
  • Step 204 Extract an operation instruction in the executable file, and determine whether the operation instruction includes virus information.
  • Step 205 If yes, generate a virus signature according to the operation instruction.
  • Dalvik VM is based on register design.
  • the data used in the program such as strings, types, fields and methods, is stored in a special data storage area (constant pool), which is referenced by the corresponding index in the program, while the character literal constant is directly Saved in instructions, the opcodes are divided into two categories:
  • the user class name, function name, and string in the classes.dex in the APK will be confused or modified, but the Dalvik VM command and the class provided to the Android system SDK will not be affected by the user class name, function name. , variable names, etc. are affected by confusion or modification, so the APK can be identified by a set of ordered specific instructions. Because the Dalvik VM is register-based, its instructions can only manipulate registers, character literal constants, data memory areas, and register addresses are variable, so fuzzy matching is required when identifying, ie by identifying the fixed part of the instruction - Opcode and its associated character literal constant parameters or strings, types, fields and methods in the data storage area, of course, you can also directly use the instruction and its operand itself as a virus signature.
  • the virus signature of the above example 1 may be 1303 6100
  • the virus signature of the example 2 may be 1700 0000 0040
  • the virus signature of the example 3 may be la00 7d00
  • the virus signature of the example 4 may be 1 C 03 6e04.
  • the virus signature of the example 5 may be 3100 0305
  • the virus signature of the example 6 may be 3221 0400
  • the virus signature of the example 7 may be 3800 1500
  • the virus signature of the example 8 may be 6el0 0e29 0500
  • the code can be 7010 042a 0800
  • the virus signature of example 10 can be b021.
  • the virus signature of the above example 1 may be 13$* (where * represents a fuzzy match, the same below, it should be noted that "*," is used as an example only, and any character may be used in practice), for example
  • the virus signature of 2 may be 17$*
  • the virus signature of example 3 may be la$
  • the virus signature of case 5 of example 4 may be 31 $*
  • the virus signature of example 6 may be 32$*
  • the virus signature of 7 may be 38$*
  • the virus signature of example 8 may be
  • virus signature of example 9 can be
  • virus signature of example 10 can be b0$*.
  • virus signatures extracted from the constants in the constant pools are as follows: For example, a virus includes the following feature strings in its string constant pool:
  • Zjphonecall.txt and zjsms.txt which include the malicious phone number and the special SMS number in these two files, can be extracted as a virus signature.
  • virus signatures extracted for the disassembly classes.dex are as follows:
  • virus X undercover. Apk contains the following instructions to back up user privacy data to http://www.mybackup.me, listed in the order in which they appear:
  • the resulting virus signature is:
  • the step of the step of extracting the feature code of the embodiment 3 may specifically include the following steps:
  • Step 301 Scan an executable file in the APK
  • Step 302 Extract a constant in the executable file constant pool, and determine whether the constant contains virus information.
  • Step 303 If yes, generate a virus signature according to the constant.
  • Step 304 Extract an operation instruction in the executable file, and determine whether the operation instruction includes virus information.
  • Step 305 If yes, generate a virus signature according to the operation instruction
  • the user class name, function name, and string in the classes.dex and JAR files in the APK will be confused or modified, but the Dalvik VM instructions and the classes provided to the Android system SDK will not be affected by the user class. Names, function names, variable names, etc. are affected by confusion or modification, so the APK can be identified by a set of ordered specific instructions. Because the Dalvik VM is register-based, its instructions can only manipulate registers, character literal constants, data memory areas, and register addresses are variable, so fuzzy matching is required when identifying, ie by identifying the fixed part of the instruction - Opcode and its associated character literal constant parameters or strings, types, fields and methods in the data storage area, of course, you can also directly use the instruction and its operand itself as a virus signature.
  • Step 306 Extract header information of the executable file, and determine whether the header information includes virus information.
  • the header information of the executable file includes summary information.
  • the checksum and the signature information Signature may be: determining whether the summary information checksum and the signature information Signature contain a predefined illegal string.
  • Step 307 If yes, generate a virus signature according to the header information.
  • the summary information checksum and/or the signature information Signature may be used as a virus signature.
  • the virus signature includes: a header information signature.
  • the checksum of the headers of the classes.dex file in the APK is: l lf26cac; Signature is:
  • 2911621AD071F675ADF0F590C3F1AFB5443BEBBE is extracted as a virus signature.
  • Step 308 Save the virus signature to a database.
  • the virus signature may include: a header information signature, a constant signature, an operand signature, an instruction signature, an instruction signature sequence, and a class name function name signature;
  • the head information feature code, the constant feature code, the operand feature code, the instruction feature code, the instruction feature code sequence, and the class name function name feature code may be respectively stored in different storage areas in the database; or,
  • the header information feature code, the constant feature code, the operand signature, the instruction signature, the instruction signature sequence, and the class name function name signature are stored in a database, and the classification labels are respectively marked.
  • the manner of saving the virus signature is only used as an example. It is feasible for a person skilled in the art to use any storage method according to the actual situation, and the present application does not need to be limited thereto.
  • the foregoing application embodiment scans and analyzes the executable file in the APK file, generates corresponding virus signatures according to preset rules for instructions, constants or header information containing virus information, and compiles into a virus signature database for subsequent APKs.
  • Virus recognition is used. Therefore, the virus APK signature can be extracted accurately and effectively to help improve the efficiency and accuracy of the virus APK and its variants, and improve the security of the APK application.
  • FIG. 4 a flow chart of the steps of Embodiment 4 of the method for extracting the APK virus signature code of the present application is shown, which may specifically include the following steps:
  • Step 401 Scan a text file in the APK
  • Step 402 Extract a linux command in the text file, and determine whether the linux command includes virus information.
  • whether the linux command includes virus information may be determined by determining whether the linux command meets a preset malicious linux command.
  • Step 403 If yes, generate a virus signature according to the linux command.
  • the linux command containing the virus information may be directly used as a virus signature.
  • the above command is written into the virus signature database as a virus signature.
  • the above application embodiment generates a corresponding virus signature for the linux command containing the virus information by scanning and analyzing the text file in the APK file, and compiling the virus signature database for subsequent identification of the APK virus. Therefore, the virus APK feature code can be extracted accurately and effectively to help improve the efficiency and accuracy of virus APK and its variant recognition, and improve the security of the APK application.
  • the embodiment of the present application is also applicable to the case of nesting an APK in an APK, that is, when other APKs are included in the APK, the embodiment of the present application can also be applied to perform executable files, text files, and the like in the APK and its nested APK. Parsing and virus extraction, for example, embedding a root.apk in a 1.APK to obtain root privileges, applying the embodiment of the present application, in addition to extracting the virus signature from 1.APK, it will also extract from root.apk Virus signature. It is easily understood by those skilled in the art that the embodiments of the present application are also applicable to the case of multiple nested APKs, which is not limited herein.
  • the embodiment of the present application can scan both the text file and the executable file and perform processing for extracting the virus signature, that is, the method embodiment 4 and the method embodiment 1, the method embodiment 2, or the method embodiment 3 Any combination is feasible, and the embodiments of the present application aim to explain the different applications in different embodiments, and the combined application of the foregoing method embodiments No restrictions.
  • embodiments of the present application are applicable not only to various Android terminals, that is, terminals using an Android platform (operating system), including computers, PCs, notebook computers, mobile phones, tablets, and the like; and also applicable to other computer systems.
  • a virus signature extraction scheme used on top of for example, Windows, Linux).
  • FIG. 5 it is a structural block diagram of an apparatus for extracting an APK virus signature of the present application, which may specifically include the following modules:
  • the scanning module 501 is configured to scan a specified file in the Android installation package APK, and the instruction extraction module 502 is configured to extract an operation instruction in the specified file.
  • the command determining module 503 is configured to determine whether the operation instruction includes virus information.
  • the first feature code generating module 504 is configured to generate a virus signature according to the operation instruction when the operation instruction includes virus information.
  • the executable file may include a Dex file
  • the specified file includes an executable file
  • the Dex file may include a classes.dex file, a file with a .jar extension, and, with other extensions. Or a file with no extension but a file format of the Dex format.
  • a constant extraction module 505 configured to extract a constant in the executable file constant pool; a constant determination module 506, configured to determine whether the constant contains virus information; a second signature generation module 507, configured to use the constant When virus information is included, a virus signature is generated based on the constant.
  • the header information extraction module 508 is configured to extract header information of the executable file, and the header information determining module 509 is configured to determine whether the header information includes virus information.
  • the third signature generation module 510 is configured to: when the header information includes virus information, Generating a virus signature based on the header information.
  • the operation instruction includes two parts: an operation code and an operand.
  • the instruction determination module 403 may specifically include the following sub-modules:
  • a first determining submodule configured to determine whether the operand includes a predefined illegal operation number
  • the second determining submodule is configured to determine whether the combination of the opcode and the operand meets a predefined illegal combination rule.
  • the first feature code generating module 404 may include the following sub-module: directly generating a sub-module, configured to use the operation instruction itself as a virus signature; and/or,
  • the conversion generation submodule is configured to use the operation code of the operation instruction, and the string or wildcard of the operand as a virus signature.
  • the constants in the constant pool in the executable file include constants in the string strings, type types, domain fields, and method methods.
  • the constant judging module 406 may include the following submodules. :
  • a third determining submodule configured to determine whether the constant in the string strings includes malicious information such as a predefined malicious web address information, a malicious file name, or a malicious number information;
  • the fourth determining sub-module is configured to determine whether the constants in the type, domain, and method methods of the type have a custom class name, a custom function name, or an Android system SDK class name, and an Android system function name.
  • the virus information in the constant, and the virus information in the summary information checksum and/or the signature information Signature may be directly extracted as a virus signature.
  • the specified file may further include a text file
  • the operation instruction may be a linux command.
  • the instruction determining module 403 may include the following sub-modules:
  • the fifth determining submodule is configured to determine whether the linux command meets the preset malicious linux command.
  • the storage module 511 is configured to save the virus signature into a database.
  • the virus signature may include: a header information signature, a constant signature, an operand signature, an instruction signature, an instruction signature sequence, and a class name function name signature.
  • the storage module 511 may include the following sub-modules:
  • a partition storage submodule configured to save the header information feature code, the constant feature code, the operand signature, the instruction signature, the instruction signature sequence, and the class name function name signature in different storage areas in the database;
  • a label storage submodule configured to save the header information feature code, the constant feature code, the operand feature code, the instruction feature code, the instruction feature code sequence, and the class name function name signature in a database, and respectively mark the classification label .
  • the device embodiment basically corresponds to the foregoing method embodiments shown in FIG. 1 , FIG. 2 and FIG. 3 , the description of the embodiment is not exhaustive, and reference may be made to the related description in the foregoing embodiment. I won't go into details.
  • the various component embodiments of the present invention may be implemented in hardware, or in a software module running on one or more processors, or in a combination thereof.
  • a microprocessor or digital signal processor may be used in practice to implement some or all of the functionality of some or all of the components of the APK virus signature extraction device in accordance with an embodiment of the present invention.
  • the invention can also be implemented as a device or device program (e.g., a computer program and a computer program product) for performing some or all of the methods described herein.
  • a program implementing the present invention may be stored on a computer readable medium or may be in the form of one or more signals. Such signals may be downloaded from an Internet website, provided on a carrier signal, or provided in any other form.
  • FIG. 6 shows a server, such as an application server, that can implement an extraction method of an APK virus signature according to the present invention.
  • the server conventionally includes a processor 610 and a computer program product or computer readable medium in the form of a memory 620.
  • the memory 620 may be an electronic memory such as a flash memory, an EEPROM (Electrically Erasable Programmable Read Only Memory), an EPROM, a hard disk, or a ROM.
  • Memory 620 has a memory space 630 for program code 631 for performing any of the method steps described above.
  • storage space 630 for program code may include various program code 631 for implementing various steps in the above methods, respectively.
  • These program codes can be read or written from one or more computer program products Enter into one or more computer program products.
  • These computer program products include program code carriers such as hard disks, compact disks (CDs), memory cards or floppy disks.
  • Such a computer program product is typically a portable or fixed storage unit as described with reference to FIG.
  • the storage unit may have a storage section, a storage space, and the like arranged similarly to the storage 620 in the server of FIG.
  • the program code can be compressed, for example, in an appropriate form.
  • the storage unit includes computer readable code 63, i.e., code that can be read by a processor, such as 610, which when executed by the server causes the server to perform various steps in the methods described above.
  • an embodiment or “one or more embodiments” as used herein means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least one embodiment of the invention. Moreover, it is noted that the examples of the words “in one embodiment” herein are not necessarily all referring to the same embodiment.
  • any reference signs placed between parentheses shall not be construed as a limitation.
  • the word “comprising” does not exclude the presence of the elements or steps that are not in the claims.
  • the word “a” or “an” preceding a component does not exclude the presence of a plurality of such elements.
  • the invention can be implemented by means of hardware comprising several distinct elements and by means of a suitably programmed computer. In the unit claims enumerating several means, several of these means can be embodied by the same hardware item.
  • the use of the words first, second, and third does not indicate any order. These words can be interpreted as names.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种APK病毒特征码的提取方法及装置,其中所述方法包括:扫描Android安装包APK中的指定文件;提取所述指定文件中的操作指令,判断所述操作指令是否包含病毒信息;若是,则根据所述操作指令生成病毒特征码。本申请可以准确、有效地提取出病毒APK特征码,以帮助提高病毒APK及其变种识别的效率和准确性,从而提高APK应用的安全性。

Description

一种 APK病毒特征码的提取方法及装置
技术领域
本发明涉及计算机安全的技术领域, 特别是涉及一种 APK病毒特征 码的提取方法, 以及, 一种 APK病毒特征码的提取装置。 背景技术
Android是一种以 Linux为基础的开放源码操作系统, 主要使用于手 机等移动终端, 目前尚未有统一中文名称。 Android平台由操作系统、 中 间件、 用户界面和应用软件组成。
APK是 Android application package file的缩写, 即 Android安装包, 也可以理解为 Android终端上安装的应用软件。 APK是类似 Symbian Sis 或 Sisx的文件格式。通过将 APK文件直接传到 Android模拟器或 Android 终端中执行即可安装。 apk文件和 sis—样, 把 android sdk编译的工程打 包成一个安装程序文件, 格式为 apk。 APK文件其实是 zip格式, 但后缀 名被修改为 apk, 通过 UnZip解压后, 可以看到 Dex文件, Dex是 Dalvik VM executes的全称, 即 Android Dalvik执行程序, 并非标准的 Java字节 码而是 Dalvik字节码。 Android在运行一个程序时首先需要 UnZip , 然后 类似 Symbian那样直接运行, 和 Windows Mobile中的 PE文件有区别。
具体而言, APK文件的结构如下表所示:
Figure imgf000003_0001
在具体应用时, APK可以通过数据线导入移动终端, 或者, 直接通 过 market (工具软件,如安卓市场)、 网页等方式下载安装。 随着 Android 终端的普及和发展, 各种各样的 APK应运而生, 这其中就包括了病毒 APK, 例如, 一些 APK通过诸如短信定制付费服务、 拨打付费电话、 备 份用户手机中的敏感数据至特定服务器等恶意行为来损害用户的权益。
目前, 已经出现了一些专门针对移动终端的安全软件 (如手机杀毒 软件)来对这些病毒 APK进行查杀。 这些现有的安全软件查杀病毒 APK 的方法主要有以下两种:
第一种是通过 APK文件的 HASH、签名、 Package名字来对病毒 APK 进行识别,其原理是通过对 APK使用 HASH算法提取 KEY,之后即可依 据此 KEY去识别病毒 APK, 或者, 通过病毒 APK制作者的 APK数字签 名、 包名等对其进行识别。
然而, 上述现有的基于 APK文件的 HASH进行识别的方式, 很容易 通过重新混淆、 或者, 在 APK文件中添加新的资源文件乃至修改代码等 方式, 使通过 HASH算法提取 KEY发生改变, 进而导致无法识别; 上述 现有的基于签名的识别方式可以通过更换签名的方式绕过; 上述现有的 基于 Package名字来识别的方式也可通过修改包名的方式来绕过。而且更 改混淆方式, 修改 APK文件 (添加删除资源, 代码等) 或者更换签名对 病毒制造者而言都艮容易, 所以病毒制造者^ ^轻易地就可以制造新的病 毒变种从而绕过安全软件的识别。
第二种是通过 APK文件中的 classes. dex中的类名对其进行识别, 其 原理是通过分析 classes . dex中的类然后从中提取出若干个类的名字作为 病毒特征码, 之后即可解析病毒 APK的 classes.dex文件, 看其中是否包 含特定的类名来对其进行识别。
然而, 这种通过扫描类名来进行识别的方式, 一方面因为仅仅检查 类名从而容易误报, 另一方面也很容易被病毒制造者通过混淆或者直接 修改类名而绕过。
因此, 目前需要本领域技术人员解决的一个技术问题就是, 提供一 种病毒 APK特征码的提取机制, 用以准确、 有效地提取出病毒 APK特 征码,以帮助提高病毒 APK及其变种识别的效率和准确性,从而提高 APK 应用的安全性。 发明内容
鉴于上述问题, 提出了本发明以便提供一种克服上述问题或者至少 部分地解决或者减緩上述问题的 APK病毒特征码的提取和相应的装置。
根据本发明的一个方面, 提供了一种 APK病毒特征码的提取方法, 其包括: 扫描 Android安装包 APK中的指定文件; 提取所述指定文件中 的操作指令, 判断所述操作指令是否包含病毒信息; 若是, 则根据所述 操作指令生成病毒特征码。
根据本发明的另一个方面,提供了一种 APK病毒特征码的提取装置, 其包括: 扫描模块, 用于扫描 Android安装包 APK中的指定文件; 指令 提取模块, 用于提取所述指定文件中的操作指令; 指令判断模块, 用于 判断所述操作指令是否包含病毒信息; 第一特征码生成模块, 用于在所 述操作指令包含病毒信息时, 根据所述操作指令生成病毒特征码。
根据本发明的又一个方面, 提供了一种计算机程序, 其包括计算机 可读代码, 当所述计算机可读代码在服务器上运行时, 导致所述服务器 执行根据权利要求 1-11中的任一个所述的 APK病毒特征码的提取方法。
根据本发明的再一个方面, 提供了一种计算机可读介质, 其中存储 了如权利要求 22所述的计算机程序。
本发明的有益效果为:
本申请通过扫描分析 APK文件中的指定文件, 如可执行文件、 文本 文件等, 针对包含病毒信息的指令、 常量或头部信息按预置规则生成相 应的病毒特征码,并汇编成病毒特征码库, 以供后续 APK病毒识别使用。 从而可以准确、 有效地提取出病毒 APK 特征码, 以帮助提高病毒 APK 及其变种识别的效率和准确性, 提高 APK应用的安全性。
上述说明仅是本发明技术方案的概述, 为了能够更清楚了解本发明 的技术手段, 而可依照说明书的内容予以实施, 并且为了让本发明的上 述和其它目的、 特征和优点能够更明显易懂, 以下特举本发明的具体实 施方式。 附图说明
通过阅读下文优选实施方式的详细描述, 各种其他的优点和益处对 于本领域普通技术人员将变得清楚明了。 附图仅用于示出优选实施方式 的目的, 而并不认为是对本发明的限制。 而且在整个附图中, 用相同的 参考符号表示相同的部件。 在附图中:
图 1是本申请的一种 APK病毒特征码的提取方法实施例 1的流程图; 图 2是本申请的一种 APK病毒特征码的提取方法实施例 2的流程图; 图 3是本申请的一种 APK病毒特征码的提取方法实施例 3的流程图; 图 4是本申请的一种 APK病毒特征码的提取方法实施例 4的流程图; 图 5 是本申请的一种 APK 病毒特征码的提取装置实施例的结构框 图;
图 6 示意性地示出了用于执行根据本发明的方法的服务器的框图; 以及
图 7 示意性地示出了用于保持或者携带实现根据本发明的方法的程 序代码的存储单元。 具体实施例
下面结合附图和具体的实施方式对本发明作进一步的描述。
本申请实施例的核心构思之一在于, 通过扫描分析 APK文件中的指 定文件, 如可执行文件、 文本文件等, 针对包含病毒信息的指令、 常量 或头部信息按预置规则生成相应的病毒特征码, 并汇编成病毒特征码库, 以供后续 APK病毒识别使用。 参考图 1 , 示出了本申请的一种 APK病毒特征码的提取方法实施例
1的步骤流程图, 具体可以包括如下步骤:
步骤 101、 扫描 APK中的可执行文件;
在本申请的一种优选实施列中, 所述可执行文件包括 Dex文件, Dex 文件主要是 APK中的 classes. dex文件, 即 Dalvik Executable ( Dalvik虚 拟机可执行文件) 。 公知的是, Dalvik是用于 Android平台的 Java虚拟 机。 Dalvik虚拟机( Dalvik VM ) 是 Android移动设备平台的核心组成部 分之一。 它可以支持已转换为 .dex (即 Dalvik Executable )格式的 Java 应用程序的运行, .dex格式是专为 Dalvik设计的一种压缩格式, 适合内 存和处理器速度有限的系统。 Dalvik 经过优化, 允许在有限的内存中同 时运行多个虚拟机的实例,并且每一个 Dalvik应用作为一个独立的 Linux 进程执行。 独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。 Android安装包中的 JAR文件其实就是 Dex文件,只不过其扩展名为 .jar, 对于 APK中除 classes. dex之外的其他文件, 只要判定其为 Dex文件即可 决定是否进行扫描。
在实际应用中, 所述 Dex文件还可以包括其它 Dex格式的文件。 步骤 102、 提取所述可执行文件中的操作指令, 判断所述操作指令是 否包含病毒信息;
在具体实现中, 所述操作指令包括操作码(opcode )和操作数, 在这 种情况下, 可以通过如下子步骤判断所述操作指令是否包含病毒信息: 子步骤 Sl l、 判断所述操作数中是否包含预定义的非法操作数; 和 /或,
子步骤 S12、判断所述操作码和操作数的组合是否符合预定义的非法 组合规则。
步骤 103、 若是, 则根据所述操作指令生成病毒特征码。
在本申请的一种优选实施例中, 所述步骤 103可以包括如下子步骤: 子步骤 S21、 将所述操作指令本身作为病毒特征码;
和 /或,
子步骤 S22、 将所述操作指令的操作码, 以及, 操作数的字符串或通 配符作为病毒特征码。
在本实施例中, 所述病毒特征码可以包括操作数特征码、 指令特征 码、 指令特征码序列。
例如, 某个 APK的 classes. dex文件中的 Instructions (操作指令 )如 下所示:
laOc bb08 |009b: const-string vl2, "tiger" II string@08bb laOd le03 |009d: const-string vl3, "P5" II string@031e 7120 1404 dcOO |009f: invoke-static {vl2, vl3},
Lcom/ androidkernel/ flash/ util/LogUtil ;.i:(Lj ava/lang/ String ;Lj ava/lang/ String ;) V // method@0414
2205 9700 |00a2: new-instance v5,
Lcom/androidkernel/flash/http/base/Dl Struct; II type@0097
7010 1603 0500 |00a4: invoke-direct {v5},
Lcom/androidkernel/flash/http/base/DlStruct;.<init>:()V II method@0316 laOc 7200 |00a7: const-string vl2, "AA" II string@0072 - ' 攀 金 ' m^^ ^^^^ 、 ' ^
'^會 ^寻 善 擁 rt^去丄 '丄
'善 ^ spoq ui ^:S x^ sp j 、S3L¾ ^葉 ^sguuis φ ^r^^ ^ ΥΔ 善 善 ' 善 ? 擁 ' * ^ ψ ^ * ^ ^-^m^ ^m
- ^ Ψ ¾dV 碎 、 10乙 M -
:¾^丄4孚"^^ 首 Z
¾m ^^^ ^^AW≠ ¾ — '乙
TX/J9d q/qsBij/ uj95[ TOj uB/iuooq$0 $VV$BI$A():<iraT> ' njJS|a/9SBq/di iq/qsBu/ uj95[ TOj uB/uiooq$0 $*$^^$003Pt70t7l0^ $5d$^I$80qq30^I
: f ('§uuj§ /Sirei/BAB f ): I JQ S · 'j9§T /J9d q/qsB]j/ uj95[ TOJ uB /uioo st $0 $VV$^I$A():<iraT>nonjJsia/9SBq/diiq/qsBij/ uj95[ TOj uB/uiooq$0 $-
Figure imgf000008_0001
q( oo( ^owo oi
^丄。 非 ^寻 丁
ψ '^¾¥令^^非^ ^令 令百^ ^ 潴4^ 潴 ?丁 ^ S I Λ 9fqo-j|tis9J-9Aoiu '.
Figure imgf000008_0002
f ('§uuj§ /Sirei/BAB f ): I JQ S · 'j9§T /J9d q/qsB]j/ uj95[ TOJ uB /uioo
ifxZ\ ΐΛ} 9Jip-95[OAm :6BQ0l OO90 ZOP} 0Z0L
9lZ6Cl/CT0Z OAV 子步骤 S32、 判断所述类型 types、 域 fields和方法 methods中的常量 是否调用自定义的类名、 自定义的函数名或 Android系统 SDK类名、 Android系统函数名。
步骤 203、 若是, 则根据所述常量生成病毒特征码。
在具体应用中, 可以直接将所述常量中的病毒信息作为病毒特征码。 在本实施例中, 所述病毒特征码还包括常量特征码, 类名函数名特 征码。
例如, 某个 APK的 classes. dex文件中的常量池中包含如下字符串: com.noshufou.android.su
I system/ app/ com. google, update . apk
在判定其为病毒信息后, 可直接将其作为病毒特征码。
例如, 某个 APK的 classes. dex文件中的常量池中包含如下 method:
Lcom/ android/ main/ SmsReceiver;
Lcom/android/main/ActionReceiver;
在判定其为病毒信息后, 可直接将其作为病毒特征码。
例如, 某个 APK的 classes. dex文件中的常量池中包含如下 type:
Lcom/androidkernel/flash/Main$l;
在判定其为病毒信息后, 可直接将其作为病毒特征码。
例如, 某个 APK的 classes. dex文件中的常量池中包含如下 field: Lcom/androidkernel/flash/b/br$l ;ihis$0:Lcom/androidkernel/flash/b/br; 在判定其为病毒信息后, 可直接将其作为病毒特征码。
步骤 204、 提取所述可执行文件中的操作指令, 判断所述操作指令是 否包含病毒信息;
步骤 205、 若是, 则根据所述操作指令生成病毒特征码。
Dalvik VM是基于寄存器设计的,程序中使用的数据如 strings, types, fields和 methods保存在专门的数据存储区 (常量池) 中, 在程序当中通 过对应的索引来引用, 而字符文字常量则直接保存在 instructions (操作 指令) 中, 其操作码 (opcode)分为两类:
一类将指定的数据放入寄存器, 如参见如下例 1至例 4:
例 1 :
1303 6100 |0000: const/16 v3, #int 97 II #61 将整数 97放入寄存器 v3中。 例 2:
1700 0000 0040 |0049: const-wide/32 νθ, #float 2.000000 II
#40000000
将浮点数 2.000000放入寄存器 νθ中。
例 3 :
laOO 7d00 |000b: const-string νθ, "%.2fMB" II string@007d
将字符串"%.2 8"放入寄存器 νθ中。
例 4:
lc03 6e04 |0015: const-class v3, 将类 com . qihoo360. mobile safe . service .NetTraffic Service放入哥存器 v3中。
另外一类则基于寄存器进行操作, 如参见如下例 5至例 10:
例 5 :
3100 0305 |0042: cmp-long νθ, v3, v5
比较寄存器 v3和 v5中的 long值, 将比较结果存入寄存器 v0。
例 6:
3221 0400 |001a: if-eq vl, v2, OOle // +0004 条件 if, 根据 vl和 v2是否相等来决定执行流程。
例 7 :
3800 1500 |001e: if-eqz νθ, 0033 II +0015 条件 if, 判断 νθ是否等于 0来决定执行流程。
例 8:
6el0 0e29 0500 |0006: invoke-virtual {v5},
Lj ava/ io/File; . length: () J II method@290e
调用 File的 lengthO函数。
例 9:
7010 042a 0800 |01 Id: invoke-direct {v8},
Lj ava/lang/ StringBuilder; . <init>: () V II method@2a04
调用 StringBuilder的 init函数。 b021 |0035: add-int/2addr vl, v2 将 vl+v2的结果保存在 vl中。
APK中的 classes.dex中的用户类名, 函数名, 字符串会受到混淆或 者修改而发生改变, 但 Dalvik VM的指令以及对 Android系统 SDK提供 的类的调用不会受到用户类名, 函数名, 变量名等被混淆或者修改的影 响, 因此可以通过一组有序的特定指令来识别 APK。 因为 Dalvik VM是 基于寄存器的, 因此其指令本身只能操作寄存器, 字符文字常量, 数据 存储区, 而寄存器地址是可变的, 因此识别时要模糊匹配也即通过识别 指令中的固定部分—— opcode及其相关的字符文字常量参数或者数据存 储区中的 strings, types, fields和 methods等, 当然也可以直接使用指令及 其操作数本身作为病毒特征码。
特征码生成方案一:
直接使用 ΑΡΚ中的 classes.dex中的特定指令集本身作为病毒特征 码。
例如, 上述例 1的病毒特征码可以为 1303 6100 , 例 2的病毒特征码 可以为 1700 0000 0040 , 例 3的病毒特征码可以为 la00 7d00 , 例 4的病 毒特征码可以为 1C03 6e04 , 例 5的病毒特征码可以为 3100 0305 , 例 6 的病毒特征码可以为 3221 0400 , 例 7的病毒特征码可以为 3800 1500 , 例 8的病毒特征码可以为 6el0 0e29 0500 ,例 9的病毒特征码可以为 7010 042a 0800 , 例 10的病毒特征码可以为 b021。
特征码生成方案二:
使用 APK中的 classes.dex中的特定 opcode及其操作数的字符串或通 配符作为病毒特征码。
例如, 上述例 1的病毒特征码可以为 13$* (其中 *代表模糊匹配, 下 同, 需要说明的是, 此处的 "*,,仅用作举例, 实际中可以使用任意字符), 例 2的病毒特征码可以为 17$* ,例 3的病毒特征码可以为 la$ ,例 4的病 例 5的病毒特征码可以为 31 $* , 例 6的病毒特征码可以为 32$* , 例 7的 病毒特征码可以为 38$ * , 例 8的病毒特征码可以为
6e$Lj ava/io/File; . length: () , 例 9的病毒特征码可以为
70$Ljava/lang/StringBuilder; <init>, 例 10的病毒特征码可以为 b0$*。 特征码选择方案三:
混合使用上述方案一和方案二。 即将上述 APK中的 classes.dex中的 特定指令集本身, 以及, APK中的 classes.dex中的特定 opcode及其操作 数的字符串或通配符全部作为病毒特征码。 为使本领域技术人员更好地理解本申请, 以下通过一个具体示例进 行说明。
针对提取 classes.dex中的常量池( string、 type , field和 meth ) 当中 的常量提取的病毒特征码如下: 例如, 某病毒在其字符串常量池当中包 括以下特征字符串:
zjphonecall.txt和 zjsms.txt, 在这 2个文件中包括了恶意电话号码以 及特服短信号码则可提取其作为病毒特征码。
针对反汇编 classes.dex提取的病毒特征码如下:
例如, 病毒 X卧底. apk中包含以下指令用以备份用户隐私数据至 http://www.mybackup.me , 按照其出现的先后顺序列举如下:
2200 f600 |0000: new-instance νθ, Ljava/lang/StringBuilder; II type@00f6
提取其病毒特征码为: 2200f600或 22$Ljava/lang/StringBuilder
7010 9804 0000 |0002: invoke-direct {νθ} ,
Ljava/lang/StringBuilder; <init>:()V II method@0498
提取其病毒特征码为: 701098040000或
70$Ljava/lang/StringBuilder;.<init>
laOl 5506 |0005: const-string vl , "http:〃 www.mybackup.me" II string@0655
提取其病毒特征码为: 701098040000 或 l a$http://www.mybackup.me
6e20 9e04 1000 |0007: invoke -virtual {νθ, vl } ,
Lj ava/lang/ StringBuilder;. append: (Lj ava/lang/ String ;)Lj ava/lang/ StringBuild er; II method@049e
提取其病毒特征码为: 6e209e041000或
6e$Ljava/lang/StringBuilder;. append
3902 0900 |0005 : if-nez v2, OOOe II +0009 提取其病毒特征码为: 39020900 或 39$* 0c02 |0003 : move-result-object v2 提取其病毒特征码为: 0c02或 0c$*
最终获得的病毒特征码为:
病毒特征码选择方案一:
2200f6007010980400007010980400006e209e041000390209000c02 病毒特征码选择方案二:
22$Ljava/lang/StringBuilder$70$Ljava/lang/StringBuilder;.<init>$la$ht tp://www.mybackup.me$6e$Ljava/lang/StringBuilder;.append$39$*$0c$* 病毒特征码选择方案三:
22$Ljava/lang/StringBuilder$701098040000$la$http://www.mybackup. me$6e$Ljava/lang/StringBuilder;.append$39$*$0c02 参考图 3 , 示出了本申请的一种 APK病毒特征码的提取方法实施例 3的步骤流程图, 具体可以包括如下步骤:
步骤 301、 扫描 APK中的可执行文件;
步骤 302、 提取所述可执行文件常量池中的常量, 判断所述常量中是 否包含病毒信息;
步骤 303、 若是, 则根据所述常量生成病毒特征码。
步骤 304、 提取所述可执行文件中的操作指令, 判断所述操作指令是 否包含病毒信息;
步骤 305、 若是, 则根据所述操作指令生成病毒特征码;
APK中的 classes. dex文件和 JAR文件中的用户类名, 函数名, 字符 串会受到混淆或者修改而发生改变,但 Dalvik VM的指令以及对 Android 系统 SDK提供的类的调用不会受到用户类名, 函数名, 变量名等被混淆 或者修改的影响, 因此可以通过一组有序的特定指令来识别 APK。 因为 Dalvik VM是基于寄存器的, 因此其指令本身只能操作寄存器, 字符文字 常量, 数据存储区, 而寄存器地址是可变的, 因此识别时要模糊匹配也 即通过识别指令中的固定部分—— opcode及其相关的字符文字常量参数 或者数据存储区中的 strings, types, fields和 methods等, 当然也可以直接 使用指令及其操作数本身作为病毒特征码。
病毒特征码生成方案一:
直接使用 ΑΡΚ中的 classes. dex文件和 JAR文件中的特定指令集本身 作为病毒特征码。
病毒特征码生成方案二:
使用 APK中的 classes. dex文件和 JAR文件中的特定 opcode及其操 作数的字符串或通配符作为病毒特征码。
病毒特征码选择方案三:
混合使用上述方案一和方案二。 即将上述 APK中的 classes.dex文件 和 JAR文件中的特定指令集本身,以及, APK中的 classes.dex文件和 JAR 文件中的特定 opcode及其操作数的字符串或通配符全部作为病毒特征 码。
步骤 306、 提取所述可执行文件的头部信息, 判断所述头部信息中是 否包含病毒信息;
在具体实现中, 所述可执行文件的头部信息中包括摘要信息
checksum和签名信息 Signature, 在这种情况下, 所述步骤 306可以为: 判断所述摘要信息 checksum和签名信息 Signature中是否包含预定义 的非法字符串。
步骤 307、 若是, 则根据所述头部信息生成病毒特征码。
在具体应用中,可以将所述摘要信息 checksum和 /或签名信息 Signature 均可作为病毒特征码。
在本实施例中, 所述病毒特征码包括: 头部信息特征码。
例如, APK中的 classes.dex文件头部信息 header的 checksum为: l lf26cac; Signature为:
2911621AD071F675ADF0F590C3F1AFB5443BEBBE, 在判定其为木马病 毒后, 直接将 l lf26cac和
2911621AD071F675ADF0F590C3F1AFB5443BEBBE提取为病毒特征码。
步骤 308、 将所述病毒特征码保存至数据库中。
在本申请实施例中, 所述病毒特征码可以包括: 头部信息特征码、 常量 特征码、 操作数特征码、 指令特征码、 指令特征码序列、 类名函数名特 征码; 在这种情况下, 可以将所述头部信息特征码、 常量特征码、 操作 数特征码、 指令特征码、 指令特征码序列、 类名函数名特征码分别保存 在数据库中不同的存储区域; 或者, 还可以将所述头部信息特征码、 常 量特征码、 操作数特征码、 指令特征码、 指令特征码序列、 类名函数名 特征码保存在数据库中, 并分别标记分类标签。 当然, 上述保存病毒特征码的方式仅仅用作示例, 本领域技术人员根据 实际情况釆用任一种保存方式都是可行的, 本申请对此无需加以限制。
本领域技术人员易于理解的是, 上述操作指令、 常量池和头部信息 的扫描并无先后顺序的限制, 本领域技术人员根据实际情况任意设定上 述三者的扫描顺序都是可行的, 本申请对此无需加以限制。
上述申请实施例通过扫描分析 APK文件中的可执行文件, 针对包含病 毒信息的指令、 常量或头部信息按预置规则生成相应的病毒特征码, 并 汇编成病毒特征码库, 以供后续 APK病毒识别使用。 从而可以准确、 有 效地提取出病毒 APK特征码, 以帮助提高病毒 APK及其变种识别的效 率和准确性, 提高 APK应用的安全性。 参考图 4 , 示出了本申请的一种 APK病毒特征码的提取方法实施例 4的步骤流程图, 具体可以包括如下步骤:
步骤 401、 扫描 APK中的文本文件;
步骤 402、提取所述文本文件中的 linux命令, 判断所述 linux命令是 否包含病毒信息;
在具体实现中, 可以通过判断所述 linux命令是否符合预置的恶意 linux命令确定所述 linux命令是否包含病毒信息。
步骤 403、 若是, 则根据所述 linux命令生成病毒特征码。
在具体实现中, 可以将所述包含病毒信息的 linux命令直接作为病毒 特征码。
例如, 从 APK中的文本文件中提取相应的 linux命令如下: cat /system/bin/sh > I data/ data/$ 1 /files/ sh.new
chown 0.0 /data/data/$l/files/sh.new
chmod 4755 / data/ data/$ 1 /files/sh . new
rm -f /data/data/$l /files/sh mount -o remount system /system mkdir /system/xbin/$l
myuid=$2
if [ "$myuid" == "" ]; then myuid="0"
fi
chown ${myuid} /system/xbin/$l
chmod 700 /system/xbin/$l cat /system/bin/sh > /system/xbin/$l/sh
chown 0.0 /system/xbin/$l/sh
chmod 4755 / system/ xbin/ $ 1 /sh sync
mount -o remount,ro system /system
#/system/bin/stop void
#/system/bin/start void
echo "+++ending+++"
在判定上述 linux命令符合预置的恶意 linux命令时, 将上述命令作 为病毒特征码写入病毒特征库中。
上述申请实施例通过扫描分析 APK文件中的文本文件, 针对包含病 毒信息的 linux命令生成相应的病毒特征码, 并汇编成病毒特征码库, 以 供后续 APK病毒识别使用。 从而可以准确、 有效地提取出病毒 APK特 征码, 以帮助提高病毒 APK及其变种识别的效率和准确性, 提高 APK 应用的安全性。
本申请实施例还适用于 APK中嵌套 APK的情形, 即当 APK中还包 含其它 APK时, 同样可应用本申请实施例, 对 APK及其嵌套 APK中的 可执行文件、 文本文件等进行解析和病毒提取, 例如, 在某个 1.APK中 嵌入了一个 root.apk用以获取 root权限,应用本申请实施例, 除从 1.APK 提取病毒特征码, 还会从 root.apk中提取病毒特征码。 本领域技术人员易 于想到的是, 对于多重嵌套 APK的情形, 本申请实施例亦同样适用, 本 申请在此不作限制。
在具体实现中, 本申请实施例可以对文本文件和可执行文件都进行 扫描以及进行提取病毒特征码的处理, 即上述方法实施例 4与方法实施 例 1、 方法实施例 2或方法实施例 3任意组合均是可行的, 本申请实施例 旨在分实施例重点说明不同应用的情形, 对上述方法实施例的组合应用 不作限制。
需要说明的是, 本申请实施例不仅适用于各种 Android终端, 即使用 Android平台 (操作系统)的终端, 包括计算机、 PC、 笔记本电脑、 手机、 平板电脑等等; 还适用于在其他计算机系统 (例如 Windows , Linux )之 上使用的病毒特征码提取方案。
对于方法实施例, 为了简单描述, 故将其都表述为一系列的动作组 合, 但是本领域技术人员应该知悉, 本申请并不受所描述的动作顺序的 限制, 因为依据本申请, 某些步骤可以釆用其他顺序或者同时进行。 其 次, 本领域技术人员也应该知悉, 说明书中所描述的实施例均属于优选 实施例, 所涉及的动作和模块并不一定是本申请所必须的。 参考图 5 , 其示出了本申请的一种 APK病毒特征码的提取装置实施 例的结构框图, 具体可以包括以下模块:
扫描模块 501 , 用于扫描 Android安装包 APK中的指定文件; 指令提取模块 502 , 用于提取所述指定文件中的操作指令;
指令判断模块 503 , 用于判断所述操作指令是否包含病毒信息; 第一特征码生成模块 504 , 用于在所述操作指令包含病毒信息时, 根 据所述操作指令生成病毒特征码。
在具体实现中, 所述可执行文件可以包括 Dex文件, 所述指定文件 包括可执行文件, 所述 Dex文件可以包括 classes. dex文件, 扩展名为. jar 的文件, 以及, 釆用其他扩展名或无扩展名但文件格式为 Dex格式的文 件。
在本申请的一种优选实施例中, 还可以包括如下模块:
常量提取模块 505 , 用于提取所述可执行文件常量池中的常量; 常量判断模块 506 , 用于判断所述常量中是否包含病毒信息; 第二特征码生成模块 507 , 用于在所述常量中包含病毒信息时, 根据 所述常量生成病毒特征码。
在本申请的一种优选实施例中, 还可以包括如下模块:
头部信息提取模块 508 , 用于提取所述可执行文件的头部信息; 头部信息判断模块 509 , 用于判断所述头部信息中是否包含病毒信 息;
第三特征码生成模块 510 , 用于在所述头部信息中包含病毒信息时, 根据所述头部信息生成病毒特征码。
作为本申请实施例具体应用的一种示例, 所述操作指令包括操作码 和操作数两部分, 在这种情况下, 所述指令判断模块 403具体可以包括 如下子模块:
第一判断子模块, 用于判断所述操作数中是否包含预定义的非法操 作数;
和 /或,
第二判断子模块, 用于判断所述操作码和操作数的组合是否符合预 定义的非法组合规则。
在具体实现中, 所述第一特征码生成模块 404可以包括如下子模块: 直接生成子模块, 用于将所述操作指令本身作为病毒特征码; 和 /或,
转换生成子模块, 用于将所述操作指令的操作码, 以及, 操作数的 字符串或通配符作为病毒特征码。
在具体实现中, 所述可执行文件中常量池中的常量包括字符串 strings、 类型 types、 域 fields和方法 methods中的常量, 在这种情况下, 所述常量判断模块 406可以包括如下子模块:
第三判断子模块, 用于判断所述字符串 strings中的常量是否包含预 定义的恶意网址信息、 恶意文件名或恶意号码信息等恶意信息;
和 /或,
第四判断子模块, 用于判断所述类型 types、 域 fields和方法 methods 中的常量是否有调用自定义的类名、自定义的函数名或 Android系统 SDK 类名、 Android系统函数名。
在本申请实施例的具体应用中, 可以将常量中的病毒信息, 以及, 所述摘要信息 checksum和 /或签名信息 Signature中的病毒信息直接提取 为病毒特征码。
在本申请的一种优选实施例中, 所述指定文件还可以包括文本文件, 所 述操作指令可以为 linux命令, 在这种情况下, 所述指令判断模块 403可 以包括如下子模块:
第五判断子模块, 用于判断所述 linux命令是否符合预置的恶意 linux 命令。
为便于后续的 APK病毒识别, 本申请实施例还可以包括如下模块: 存储模块 511 , 用于将所述病毒特征码保存至数据库中。
作为本申请实施例具体应用的一种示例, 所述病毒特征码可以包括: 头部信息特征码、 常量特征码、 操作数特征码、 指令特征码、 指令特征 码序列、 类名函数名特征码; 在这种情况下, 所述存储模块 511可以包 括如下子模块:
分区存储子模块, 用于将所述头部信息特征码、 常量特征码、 操作 数特征码、 指令特征码、 指令特征码序列、 类名函数名特征码分别保存 在数据库中不同的存储区域;
或者,
标签存储子模块, 用于将所述头部信息特征码、 常量特征码、 操作 数特征码、 指令特征码、 指令特征码序列、 类名函数名特征码保存在数 据库中, 并分别标记分类标签。
由于所述装置实施例基本相应于前述图 1、图 2和图 3所示的方法实 施例, 故本实施例的描述中未详尽之处, 可以参见前述实施例中的相关 说明, 在此就不赘述了。
本发明的各个部件实施例可以以硬件实现, 或者以在一个或者多个 处理器上运行的软件模块实现, 或者以它们的组合实现。 本领域的技术 人员应当理解, 可以在实践中使用微处理器或者数字信号处理器 (DSP ) 来实现根据本发明实施例的 APK病毒特征码的提取装置中的一些或者全 部部件的一些或者全部功能。 本发明还可以实现为用于执行这里所描述 的方法的一部分或者全部的设备或者装置程序 (例如, 计算机程序和计 算机程序产品) 。 这样的实现本发明的程序可以存储在计算机可读介质 上, 或者可以具有一个或者多个信号的形式。 这样的信号可以从因特网 网站上下载得到, 或者在载体信号上提供, 或者以任何其他形式提供。
例如, 图 6示出了可以实现根据本发明的 APK病毒特征码的提取方 法的服务器, 例如应用服务器。 该服务器传统上包括处理器 610 和以存 储器 620形式的计算机程序产品或者计算机可读介质。 存储器 620 可以 是诸如闪存、 EEPROM (电可擦除可编程只读存储器) 、 EPROM、 硬盘 或者 ROM之类的电子存储器。存储器 620具有用于执行上述方法中的任 何方法步骤的程序代码 631的存储空间 630。 例如, 用于程序代码的存储 空间 630 可以包括分别用于实现上面的方法中的各种步骤的各个程序代 码 631。这些程序代码可以从一个或者多个计算机程序产品中读出或者写 入到这一个或者多个计算机程序产品中。 这些计算机程序产品包括诸如 硬盘, 紧致盘 (CD ) 、 存储卡或者软盘之类的程序代码载体。 这样的计 算机程序产品通常为如参考图 7 所述的便携式或者固定存储单元。 该存 储单元可以具有与图 6的服务器中的存储器 620类似布置的存储段、 存 储空间等。 程序代码可以例如以适当形式进行压缩。 通常, 存储单元包 括计算机可读代码 63 Γ , 即可以由例如诸如 610之类的处理器读取的代 码, 这些代码当由服务器运行时, 导致该服务器执行上面所描述的方法 中的各个步骤。
本文中所称的 "一个实施例"、 "实施例"或者"一个或者多个实施例" 意味着, 结合实施例描述的特定特征、 结构或者特性包括在本发明的至 少一个实施例中。 此外, 请注意, 这里"在一个实施例中"的词语例子不一 定全指同一个实施例。
在此处所提供的说明书中, 说明了大量具体细节。 然而, 能够理解, 本发明的实施例可以在没有这些具体细节的情况下被实践。 在一些实例 中, 并未详细示出公知的方法、 结构和技术, 以便不模糊对本说明书的 理解。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限 制, 并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计 出替换实施例。 在权利要求中, 不应将位于括号之间的任何参考符号构 造成对权利要求的限制。单词"包含"不排除存在未列在权利要求中的元件 或步骤。 位于元件之前的单词 "一"或"一个"不排除存在多个这样的元件。 本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计 算机来实现。 在列举了若干装置的单元权利要求中, 这些装置中的若干 个可以是通过同一个硬件项来具体体现。 单词第一、 第二、 以及第三等 的使用不表示任何顺序。 可将这些单词解释为名称。
此外, 还应当注意, 本说明书中使用的语言主要是为了可读性和教 导的目的而选择的, 而不是为了解释或者限定本发明的主题而选择的。 因此, 在不偏离所附权利要求书的范围和精神的情况下, 对于本技术领 域的普通技术人员来说许多修改和变更都是显而易见的。 对于本发明的 范围, 对本发明所做的公开是说明性的, 而非限制性的, 本发明的范围 由所附权利要求书限定。

Claims

权 利 要 求
1、 一种 APK病毒特征码的提取方法, 其包括:
扫描 Android安装包 APK中的指定文件;
提取所述指定文件中的操作指令,判断所述操作指令是否包含病毒信 息;
若是, 则根据所述操作指令生成病毒特征码。
2、 如权利要求 1所述的方法, 其中, 所述指定文件包括可执行文件, 所述可执行文件包括 Dex文件, 所述 Dex文件包括 classes. dex文件, 扩 展名为 .jar的文件, 以及, Dex格式的文件。
3、 如权利要求 2所述的方法, 其中, 还包括:
提取所述可执行文件的常量池中的常量,判断所述常量中是否包含病 毒信息;
若是, 则根据所述常量生成病毒特征码。
4、 如权利要求 3所述的方法, 其中, 还包括:
提取所述可执行文件的头部信息,判断所述头部信息中是否包含病毒 信息;
若是, 则根据所述头部信息生成病毒特征码。
5、 如权利要求 1、 2、 3或 4所述的方法, 其中, 所述操作指令包括 操作码和操作数, 所述判断操作指令是否包含病毒信息的步骤包括: 判断所述操作数中是否包含预定义的非法操作数;
和 /或,
判断所述操作码和操作数的组合是否符合预定义的非法组合规则。
6、 如权利要求 5所述的方法, 其中, 所述根据操作指令生成病毒特 征码的步骤包括:
将所述操作指令本身作为病毒特征码;
和 /或,
将所述操作指令的操作码, 以及,操作数的字符串或通配符作为病毒 特征码。
7、 如权利要求 3所述的方法, 其中, 所述可执行文件的常量池中的 常量包括字符串 strings , 类型 types、 域 fields和方法 methods中的常量, 所述判断常量中是否包含病毒信息的步骤包括: 判断所述字符串 strings中的常量是否包含预定义的恶意网址信息、 恶意文件名或恶意号码信息;
和 /或,
判断所述类型 types、 域 fields和方法 methods中的常量是否有调用 自定义的类名、 自定义的函数名或 Android系统 SDK类名、 Android系统 函数名;
所述根据常量生成病毒特征码的步骤为,将所述常量中的病毒信息作 为病毒特征码。
8、 如权利要求 4所述的方法, 其中, 所述可执行文件的头部信息中 包括摘要信息 checksum和签名信息 Signature, 所述判断头部信息中是否 包含病毒信息的步骤包括:
判断所述摘要信息 checksum和 /或签名信息 Signature中是否包含预 定义的非法字符串;
所述根据头部信息生成病毒特征码的步骤为, 将所述摘要信息 checksum和 /或签名信息 Signature作为病毒特征码。
9、 如权利要求 1所述的方法, 其中, 所述指定文件还包括文本文件, 所述操作指令为 linux命令,
所述判断操作指令是否包含病毒信息的步骤为, 判断所述 linux命令 是否符合预置的恶意 linux命令;
所述根据操作指令生成病毒特征码的步骤为, 将所述 linux命令作为 病毒特征码。
10、 如权利要求 1、 2、 3、 4、 6、 7、 8、 9或 10所述的方法, 其中, 还包括:
将所述病毒特征码保存至数据库中。
11、 如权利要求 10所述的方法, 其中, 所述病毒特征码包括: 头部 信息特征码、 常量特征码、 操作数特征码、 指令特征码、 指令特征码序 歹^ 类名函数名特征码; 所述将病毒特征码保存至数据库中的步骤包括: 将所述头部信息特征码、 常量特征码、 操作数特征码、 指令特征码、 指令特征码序列、 类名函数名特征码分别保存在数据库中不同的存储区 域; 或者,
将所述头部信息特征码、 常量特征码、 操作数特征码、 指令特征码、 指令特征码序列、 类名函数名特征码保存在数据库中, 并分别标记分类 标签。
12、 一种 APK病毒特征码的提取装置, 其包括:
扫描模块, 用于扫描 Android安装包 APK中的指定文件;
指令提取模块, 用于提取所述指定文件中的操作指令;
指令判断模块, 用于判断所述操作指令是否包含病毒信息;
第一特征码生成模块,用于在所述操作指令包含病毒信息时,根据所 述操作指令生成病毒特征码。
13、 如权利要求 12所述的装置, 其中, 所述指定文件包括可执行文 件, 所述可执行文件包括 Dex文件, 所述 Dex文件包括 classes. dex文件 , 扩展名为. jar的文件, 以及, Dex格式的文件。
14、 如权利要求 13所述的装置, 其中, 还包括:
常量提取模块, 用于提取所述可执行文件常量池中的常量;
常量判断模块, 用于判断所述常量中是否包含病毒信息;
第二特征码生成模块,用于在所述常量中包含病毒信息时,根据所述 常量生成病毒特征码。
15、 如权利要求 14所述的装置, 其中, 还包括:
头部信息提取模块, 用于提取所述可执行文件的头部信息;
头部信息判断模块, 用于判断所述头部信息中是否包含病毒信息; 第三特征码生成模块,用于在所述头部信息中包含病毒信息时,根据 所述头部信息生成病毒特征码。
16、 如权利要求 12、 13、 14或 15所述的装置, 其中, 所述操作指令 包括操作码和操作数两部分, 所述指令判断模块包括:
第一判断子模块,用于判断所述操作数中是否包含预定义的非法操作 数;
和 /或,
第二判断子模块,用于判断所述操作码和操作数的组合是否符合预定 义的非法组合规则。
17、 如权利要求 16所述的装置, 其中, 所述第一特征码生成模块包 括:
直接生成子模块, 用于将所述操作指令本身作为病毒特征码; 和 /或,
转换生成子模块, 用于将所述操作指令的操作码, 以及, 操作数的字 符串或通配符作为病毒特征码。
18、 如权利要求 14所述的装置, 其中, 所述可执行文件中常量池中 的常量包括字符串 strings , 类型 types、 域 fields和方法 methods中的常 量, 所述常量判断模块包括:
第三判断子模块, 用于判断所述字符串 strings中的常量是否包含预 定义的恶意网址信息、 恶意文件名或恶意号码信息;
和 /或,
第四判断子模块, 用于判断所述类型 types、 域 fields和方法 methods 中的常量是否有调用自定义的类名、自定义的函数名或 Android系统 SDK 类名、 Android系统函数名。
19、 如权利要求 12所述的装置, 其中, 所述指定文件还包括文本文 件, 所述操作指令为 linux命令, 所述指令判断模块包括:
第五判断子模块,用于判断所述 linux命令是否符合预置的恶意 linux 命令。
20、 如权利要求 12、 13、 14、 16、 17 、 18或 19所述的装置, 其中, 还包括:
存储模块, 用于将所述病毒特征码保存至数据库中。
21、 如权利要求 20所述的装置, 其中, 所述病毒特征码包括: 头部 信息特征码、 常量特征码、 操作数特征码、 指令特征码、 指令特征码序 歹^ 类名函数名特征码; 所述存储模块包括:
分区存储子模块, 用于将所述头部信息特征码、 常量特征码、 操作 数特征码、 指令特征码、 指令特征码序列、 类名函数名特征码分别保存 在数据库中不同的存储区域;
或者,
标签存储子模块, 用于将所述头部信息特征码、 常量特征码、 操作 数特征码、 指令特征码、 指令特征码序列、 类名函数名特征码保存在数 据库中, 并分别标记分类标签。
22、 一种计算机程序, 包括计算机可读代码, 当所述计算机可读代 码在服务器上运行时, 导致所述服务器执行根据权利要求 1-11 中的任一 个所述的 APK病毒特征码的提取方法。
23、 一种计算机可读介质, 其中存储了如权利要求 22所述的计算机 程序。
PCT/CN2013/072480 2012-03-21 2013-03-12 一种apk病毒特征码的提取方法及装置 WO2013139216A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/386,567 US9600668B2 (en) 2012-03-21 2013-03-12 Method and device for extracting characteristic code of APK virus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201210076721.1A CN102663285B (zh) 2012-03-21 2012-03-21 一种apk病毒特征码的提取方法及装置
CN201210076721.1 2012-03-21

Publications (1)

Publication Number Publication Date
WO2013139216A1 true WO2013139216A1 (zh) 2013-09-26

Family

ID=46772773

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2013/072480 WO2013139216A1 (zh) 2012-03-21 2013-03-12 一种apk病毒特征码的提取方法及装置

Country Status (3)

Country Link
US (1) US9600668B2 (zh)
CN (1) CN102663285B (zh)
WO (1) WO2013139216A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110309050A (zh) * 2019-05-22 2019-10-08 深圳壹账通智能科技有限公司 代码规范性的检测方法、装置、服务器及存储介质
CN112579828A (zh) * 2019-09-30 2021-03-30 奇安信安全技术(珠海)有限公司 特征码的处理方法及装置、系统、存储介质、电子装置
CN112667975A (zh) * 2020-12-29 2021-04-16 西北工业大学 一种基于混合加固Android系统应用软件安全防护方法

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663285B (zh) * 2012-03-21 2015-06-10 北京奇虎科技有限公司 一种apk病毒特征码的提取方法及装置
CN102663286B (zh) * 2012-03-21 2015-05-06 北京奇虎科技有限公司 一种病毒apk的识别方法及装置
CN103902300B (zh) * 2012-12-24 2017-08-04 珠海市君天电子科技有限公司 一种Android模拟器快速安装APK程序的方法及系统
CN103268445B (zh) * 2012-12-27 2016-01-13 武汉安天信息技术有限责任公司 一种基于OpCode的android恶意代码检测方法及系统
CN103093148A (zh) * 2012-12-28 2013-05-08 广东欧珀移动通信有限公司 一种恶意广告的检测方法、系统及设备
CN103268449B (zh) * 2012-12-28 2016-08-10 武汉安天信息技术有限责任公司 一种手机恶意代码的高速检测方法和系统
CN105144767B (zh) * 2013-04-12 2019-07-02 Sk电信有限公司 用于检查消息的装置和方法以及用户终端
CN103279706B (zh) * 2013-06-07 2016-06-22 北京奇虎科技有限公司 拦截在移动终端中安装安卓应用程序的方法和装置
CN103577757B (zh) * 2013-11-15 2017-05-24 北京奇虎科技有限公司 病毒防御方法和装置
CN104899009A (zh) * 2014-03-03 2015-09-09 可牛网络技术(北京)有限公司 一种安卓应用的识别方法及装置
CN107408182A (zh) * 2014-11-07 2017-11-28 朴序晙 用于保护电子通信装置的保护系统、装置及方法
US9519780B1 (en) * 2014-12-15 2016-12-13 Symantec Corporation Systems and methods for identifying malware
TWI541669B (zh) * 2015-01-05 2016-07-11 Rangecloud Information Technology Co Ltd Detection systems and methods for static detection applications, and computer program products
KR101521765B1 (ko) * 2015-01-08 2015-05-20 숭실대학교산학협력단 분간이 난해한 식별자 변환을 이용한 코드 난독화 장치 및 방법
US10037432B2 (en) * 2015-02-27 2018-07-31 Lenovo (Singapore) Pte. Ltd. Implementing file security settings based on context
US9798878B1 (en) * 2015-03-31 2017-10-24 Symantec Corporation Systems and methods for detecting text display manipulation attacks
RU2610254C2 (ru) * 2015-06-30 2017-02-08 Закрытое акционерное общество "Лаборатория Касперского" Система и способ определения измененных веб-страниц
CN106934288B (zh) 2015-12-31 2021-04-16 北京金山安全软件有限公司 一种root病毒清理方法、装置及电子设备
CN108664791B (zh) * 2017-03-29 2023-05-16 腾讯科技(深圳)有限公司 一种超文本预处理器代码中的网页后门检测方法及装置
US10089467B1 (en) * 2017-05-23 2018-10-02 Malwarebytes Inc. Static anomaly-based detection of malware files
CN109558731B (zh) * 2017-09-26 2022-04-08 腾讯科技(深圳)有限公司 特征码处理方法、装置及存储介质
CN108898019A (zh) * 2018-08-17 2018-11-27 广州瀚华建筑设计有限公司 Cad病毒查杀方法、系统、计算机设备和可读存储介质
CN110866251A (zh) * 2018-12-14 2020-03-06 哈尔滨安天科技集团股份有限公司 一种加密字符串的提取方法、装置、电子设备及存储介质
CN109922037A (zh) * 2018-12-28 2019-06-21 深圳豪客互联网有限公司 一种应用程序安全识别方法及装置
CN110851832A (zh) * 2019-11-12 2020-02-28 广东明创软件科技有限公司 病毒防误报方法、装置、终端设备以及存储介质
CN111949985A (zh) * 2020-10-19 2020-11-17 远江盛邦(北京)网络安全科技股份有限公司 结合文件识别的病毒检测方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060015747A1 (en) * 2004-07-16 2006-01-19 Red Hat, Inc. System and method for detecting computer virus
CN101079689A (zh) * 2006-05-26 2007-11-28 上海晨兴电子科技有限公司 对手机接收数据进行病毒扫描和处理的方法及装置
CN102254113A (zh) * 2011-06-27 2011-11-23 深圳市安之天信息技术有限公司 一种检测和拦截移动终端恶意代码的方法及系统
CN102663285A (zh) * 2012-03-21 2012-09-12 奇智软件(北京)有限公司 一种apk病毒特征码的提取方法及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1235108C (zh) * 2004-03-29 2006-01-04 四川大学 一种计算机病毒检测和识别方法
US9124650B2 (en) * 2006-12-13 2015-09-01 Quickplay Media Inc. Digital rights management in a mobile environment
US9235704B2 (en) * 2008-10-21 2016-01-12 Lookout, Inc. System and method for a scanning API
US8984628B2 (en) * 2008-10-21 2015-03-17 Lookout, Inc. System and method for adverse mobile application identification
AU2011323210A1 (en) * 2010-11-03 2013-05-23 Virginia Tech Intellectual Properties, Inc. Using power fingerprinting (PFP) to monitor the integrity and enhance security of computer based systems
US9678747B2 (en) * 2011-02-08 2017-06-13 Openspan, Inc. Code injection and code interception in an operating system with multiple subsystem environments
US20120324568A1 (en) * 2011-06-14 2012-12-20 Lookout, Inc., A California Corporation Mobile web protection
US20130067577A1 (en) * 2011-09-14 2013-03-14 F-Secure Corporation Malware scanning
US9672355B2 (en) * 2011-09-16 2017-06-06 Veracode, Inc. Automated behavioral and static analysis using an instrumented sandbox and machine learning classification for mobile security
US8584243B2 (en) * 2011-11-09 2013-11-12 Kaprica Security, Inc. System and method for bidirectional trust between downloaded applications and mobile devices including a secure charger and malware scanner
US8844036B2 (en) * 2012-03-02 2014-09-23 Sri International Method and system for application-based policy monitoring and enforcement on a mobile device
US8756432B1 (en) * 2012-05-22 2014-06-17 Symantec Corporation Systems and methods for detecting malicious digitally-signed applications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060015747A1 (en) * 2004-07-16 2006-01-19 Red Hat, Inc. System and method for detecting computer virus
CN101079689A (zh) * 2006-05-26 2007-11-28 上海晨兴电子科技有限公司 对手机接收数据进行病毒扫描和处理的方法及装置
CN102254113A (zh) * 2011-06-27 2011-11-23 深圳市安之天信息技术有限公司 一种检测和拦截移动终端恶意代码的方法及系统
CN102663285A (zh) * 2012-03-21 2012-09-12 奇智软件(北京)有限公司 一种apk病毒特征码的提取方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110309050A (zh) * 2019-05-22 2019-10-08 深圳壹账通智能科技有限公司 代码规范性的检测方法、装置、服务器及存储介质
CN112579828A (zh) * 2019-09-30 2021-03-30 奇安信安全技术(珠海)有限公司 特征码的处理方法及装置、系统、存储介质、电子装置
CN112667975A (zh) * 2020-12-29 2021-04-16 西北工业大学 一种基于混合加固Android系统应用软件安全防护方法
CN112667975B (zh) * 2020-12-29 2024-04-26 西北工业大学 一种基于混合加固Android系统应用软件安全防护方法

Also Published As

Publication number Publication date
CN102663285B (zh) 2015-06-10
US9600668B2 (en) 2017-03-21
US20150052611A1 (en) 2015-02-19
CN102663285A (zh) 2012-09-12

Similar Documents

Publication Publication Date Title
WO2013139216A1 (zh) 一种apk病毒特征码的提取方法及装置
US10152594B2 (en) Method and device for identifying virus APK
US10114946B2 (en) Method and device for detecting malicious code in an intelligent terminal
US9824212B2 (en) Method and system for recognizing advertisement plug-ins
US9355246B1 (en) Tuning sandbox behavior based on static characteristics of malware
US20140090054A1 (en) System and Method for Detecting Anomalies in Electronic Documents
RU2614557C2 (ru) Система и способ обнаружения вредоносных файлов на мобильных устройствах
US9135443B2 (en) Identifying malicious threads
US8352484B1 (en) Systems and methods for hashing executable files
CN102708320B (zh) 一种病毒apk的识别方法及装置
WO2015101042A1 (zh) 检测智能终端中恶意代码的方法及装置
CN102622439B (zh) 一种在浏览器中展示文档的方法及装置
WO2014071867A1 (zh) 程序处理方法和系统,用于程序处理的客户端和服务器
WO2015101043A1 (zh) 检测智能终端中恶意代码的方法及装置
US9038161B2 (en) Exploit nonspecific host intrusion prevention/detection methods and systems and smart filters therefor
WO2015101044A1 (zh) 特征提取的方法及装置
CN111163094B (zh) 网络攻击检测方法、网络攻击检测装置、电子设备和介质
CN115562992A (zh) 一种文件检测方法、装置、电子设备及存储介质
US11916937B2 (en) System and method for information gain for malware detection
US11580220B2 (en) Methods and apparatus for unknown sample classification using agglomerative clustering
CN103955468B (zh) 基于浏览器的文档展示方法及装置
WO2014000696A1 (zh) 一种Android应用程序的安全检测方法及系统
CN103955466A (zh) 一种在浏览器中展示文档的方法及装置
RU2757265C1 (ru) Система и способ оценки приложения на вредоносность
CN115048650A (zh) Ios系统中应用安全检测方法、装置、设备及存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13763855

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14386567

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13763855

Country of ref document: EP

Kind code of ref document: A1