ES2874781T3 - Procedimiento y dispositivo de prevención de reempaquetado de software - Google Patents

Procedimiento y dispositivo de prevención de reempaquetado de software Download PDF

Info

Publication number
ES2874781T3
ES2874781T3 ES17859699T ES17859699T ES2874781T3 ES 2874781 T3 ES2874781 T3 ES 2874781T3 ES 17859699 T ES17859699 T ES 17859699T ES 17859699 T ES17859699 T ES 17859699T ES 2874781 T3 ES2874781 T3 ES 2874781T3
Authority
ES
Spain
Prior art keywords
installation package
target file
digital watermark
information
verification 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.)
Active
Application number
ES17859699T
Other languages
English (en)
Inventor
Yaoguang Chen
Jiashui Wang
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.)
Advanced New Technologies Co Ltd
Original Assignee
Advanced New Technologies 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 Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Application granted granted Critical
Publication of ES2874781T3 publication Critical patent/ES2874781T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/106Enforcing content protection by specific content processing
    • G06F21/1063Personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Medical Treatment And Welfare Office Work (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Un procedimiento de prevención de reempaquetado, comprendiendo el procedimiento: ejecutar (301), mediante un sistema operativo, un archivo objetivo en un paquete de instalación instalado en el sistema operativo, y cargar, mediante el sistema operativo, una biblioteca dinámica segura en el paquete de instalación, donde la biblioteca dinámica segura almacena información de verificación acerca del paquete de instalación; obtener (302), mediante el sistema operativo, información de marca de agua digital incrustada en el archivo objetivo e información de verificación almacenada en la biblioteca dinámica segura en base al código del archivo objetivo; y verificar (303), mediante el sistema operativo, en base a la información de marca de agua digital y la información de verificación, si el paquete de instalación es un paquete de instalación reempaquetado, lo que comprende: determinar que la información de marca de agua digital es una instrucción; realizar una operación en base a la instrucción para obtener un resultado de operación; verificar si el resultado de operación es coherente con un resultado de operación en la información de verificación, y verificar si la instrucción es coherente con una instrucción de la información de verificación; si el resultado de operación es coherente con el resultado de operación en la información de verificación y la instrucción es coherente con la instrucción de la información de verificación, determinar que el paquete de instalación es un paquete de instalación original; y si el resultado de operación no es coherente con la información de verificación o la instrucción no es coherente con la instrucción de la información de verificación, determinar que el paquete de instalación es el paquete de instalación reempaquetado.

Description

DESCRIPCIÓN
Procedimiento y dispositivo de prevención de reempaquetado de software
CAMPO TÉCNICO
La presente solicitud se refiere al campo de las tecnologías informáticas y, en particular, a un procedimiento y un aparato para de prevención de reempaquetado.
ANTECEDENTES
En la actualidad, una gran cantidad de software de aplicación maliciosa modifica un paquete de instalación original a través del reempaquetado, con el fin de introducir anuncios en el paquete de instalación original, descargar automáticamente malware, implementar programas raíz, etc.
En la FIG. 1 se muestra un proceso de reempaquetado. En primer lugar, el paquete de instalación original se descompila para obtener el código fuente del paquete de instalación original. A continuación, un usuario modifica el código fuente, por ejemplo, añade otro código, y el código añadido puede ser un anuncio, o puede ser un programa para descargar malware automáticamente, etc. Por último, el archivo modificado se vuelve a empaquetar para obtener un paquete de instalación reempaquetado.
Dado que el código fuente se modifica en el proceso de reempaquetado anterior, la autofirma del paquete de instalación reempaquetado ya no es una autofirma del paquete de instalación original. Por lo tanto, en las tecnologías existentes, un procedimiento para la prevención de reempaquetado puede ser: comprobar una autofirma de un paquete de instalación para determinar si el paquete de instalación está reempaquetado. En la FIG. 2 se muestra un proceso de verificación específico.
Cuando se instala un determinado paquete de instalación, se ejecuta un archivo objetivo del paquete de instalación y se carga una biblioteca dinámica segura del paquete de instalación. Generalmente, para garantizar la seguridad de la información, determinada información de verificación se almacena en la biblioteca dinámica segura. La información de verificación incluye una autofirma de un paquete de instalación original correspondiente al paquete de instalación. Dado que un sistema operativo proporciona una interfaz para verificar la autofirma del paquete de instalación, tras obtener la autofirma del paquete de instalación del archivo objetivo y obtener la autofirma del paquete de instalación original de la biblioteca dinámica segura, el sistema operativo verifica si la autofirma del paquete de instalación es coherente con la autofirma del paquete de instalación original. Si son coherentes, el sistema operativo determina que el paquete de instalación es el paquete de instalación original. Si no son coherentes, el sistema operativo determina que el paquete de instalación es el paquete de instalación reempaquetado.
En las tecnologías existentes, otro procedimiento de prevención de reempaquetado puede ser el siguiente: Un sistema operativo calcula un valor hash (hash) de un paquete de instalación instalado en este momento y comprueba el valor hash, es decir, compara el valor hash con un valor hash de un paquete de instalación original; si coinciden, determina que el paquete de instalación es el paquete de instalación original, y si no coinciden, determina que el paquete de instalación es un paquete de instalación reempaquetado.
Los dos procedimientos de prevención de reempaquetado en las tecnologías existentes deben utilizarse en un sistema operativo de plena confianza para evitar eficazmente el reempaquetado. Sin embargo, dado que muchos de los sistemas operativos existentes son de código abierto, los usuarios pueden modificar un sistema operativo original, de modo que el sistema operativo no compruebe la autofirma de un paquete de instalación ni compruebe el valor hash del paquete de instalación. De este modo, independientemente de si un paquete de instalación descargado por el usuario es un paquete de instalación reempaquetado o no, el sistema operativo considera por defecto que el paquete de instalación es un paquete de instalación original.
Además, en el segundo procedimiento de prevención de reempaquetado, a veces un paquete de instalación que se va a instalar ocupa una gran cantidad de memoria. Por ello, cuando el sistema operativo calcula un valor hash del paquete de instalación, la eficacia de verificación del sistema operativo se ve afectada.
El documento de Zhou et al.: "AppInk: Watermarking Android apps for repackaging deterrence", Actas del 8° simposio de SIGSAC ACM sobre seguridad de la información, los ordenadores y las comunicaciones, ASIA CCS '13, 1 de enero de 2013, divulga que en el modelo económico centrado en las aplicaciones móviles, el reempaquetado de aplicaciones, entre otras muchas amenazas, conlleva riesgos para el ecosistema, incluidos los desarrolladores de aplicaciones, los operadores del mercado de aplicaciones y los usuarios finales. Los autores proponen y desarrollan un mecanismo de marca de agua para aplicaciones Android. En primer lugar, con vistas a la incrustación y extracción automáticas de marcas de agua, introducen el concepto de aplicación de manifiesto, la cual acompaña a una aplicación Android objetivo bajo protección. Describen una herramienta llamada AppInk, que toma el código fuente de una aplicación como entrada para generar automáticamente una nueva aplicación con una marca de agua incrustada de forma transparente y la aplicación de manifiesto asociada. La aplicación de manifiesto puede utilizarse posteriormente para reconocer de forma fiable una marca de agua incrustada sin intervención del usuario. Analizan la robustez de AppInk para defenderse de ataques distorsionadores, sustractivos y aditivos, y, a continuación, evalúan su resistencia frente a dos herramientas de reempaquetado de código abierto.
El documento de Collberg et al.: "Software watermarking: models and dynamic embeddings," Registro de la conferencia POPL '99, 26° simposio de SIGPLAN-SIGACT ACM sobre principios de lenguajes de programación, San Antonio, Texas, 20 de enero de 1999, divulga una taxonomía informal de las técnicas de marcas de agua de software, es decir, técnicas para colocar marcas de agua en los programas de software. Los autores también proponen una nueva técnica de marcas de agua de software en la que una marca de agua gráfica dinámica se almacena en el estado de ejecución de un programa. Describen el problema de la técnica de marca de agua de software como sigue. Incrustar una estructura W en un programa P de modo que: W pueda ser localizada y extraída de forma fiable de P incluso después de que P se haya sometido a transformaciones de código tales como conversión, optimización y ofuscación; W sea imperceptible; W tenga una alta velocidad de transferencia de datos; la incrustación de W en P no afecte negativamente al rendimiento de P; y W tenga una propiedad matemática que permita argumentar que su presencia en P es el resultado de acciones deliberadas.
RESUMEN
La presente solicitud proporciona un procedimiento y un aparato de prevención de reempaquetado para mitigar el problema existente de que si un paquete de instalación se reempaqueta no puede ser verificado a veces de forma eficaz cuando un sistema comprueba una autofirma del paquete de instalación, y para mitigar el problema existente de que la eficacia de verificación es baja a veces debido a que el paquete de instalación utiliza una gran memoria cuando el sistema calcula un valor hash del paquete de instalación para comprobar si el paquete de instalación está reempaquetado.
La presente solicitud proporciona un procedimiento de prevención de reempaquetado, y el procedimiento incluye: ejecutar un archivo objetivo en un paquete de instalación y cargar una biblioteca dinámica segura en el paquete de instalación; y realizar las siguientes etapas en base al código del archivo objetivo; obtener información de marca de agua digital incrustada en el archivo objetivo e información de verificación almacenada en la biblioteca dinámica segura; y verificar, en base a la información de marca de agua digital y la información de verificación, si el paquete de instalación es un paquete de instalación reempaquetado.
De manera correspondiente, la presente solicitud proporciona además un aparato de prevención de reempaquetado, y el aparato incluye: una unidad operativa y una unidad de ejecución, donde la unidad operativa está configurada para ejecutar un archivo objetivo en un paquete de instalación y cargar una biblioteca dinámica segura en el paquete de instalación; y la unidad de ejecución está configurada para realizar las siguientes etapas basándose en el código del archivo objetivo; obtener información de marca de agua digital incrustada en el archivo objetivo e información de verificación almacenada en la biblioteca dinámica segura; y verificar, en base a la información de marca de agua digital y la información de verificación, si el paquete de instalación es un paquete de instalación reempaquetado.
En el procedimiento de prevención de reempaquetado proporcionado en la presente solicitud, el paquete de instalación incluye un código de verificación. Cuando se instala el paquete de instalación, un sistema operativo obtiene, basándose en el código, la información de marca de agua digital incrustada en el archivo objetivo, obtiene la información de verificación de la biblioteca dinámica segura en el paquete de instalación, y verifica, basándose en la información de marca de agua digital y la información de verificación, si el paquete de instalación es un paquete de instalación reempaquetado. Los siguientes efectos beneficiosos se logran usando el procedimiento de prevención de reempaquetado proporcionado en la presente solicitud:
1. En la presente solicitud, el paquete de instalación incluye código utilizado para verificar si el paquete de instalación está reempaquetado. Por consiguiente, independientemente de cómo se modifique el sistema operativo, no se puede evitar un proceso de verificación del paquete de instalación. Esto mitiga el problema existente que consiste en que no se puede verificar eficazmente si el paquete de instalación está reempaquetado debido a que el sistema a veces omite un proceso de verificación de una autofirma del paquete de instalación cuando se comprueba la autofirma del paquete de instalación para verificar si el paquete de instalación está reempaquetado.
2. En la presente solicitud, se verifica si el paquete de instalación está reempaquetado en base a la información de marca de agua digital y la información de verificación. Por lo tanto, en comparación con el procedimiento de las tecnologías existentes para verificar si el paquete de instalación está reempaquetado mediante el cálculo de un valor hash del paquete de instalación, la presente solicitud tiene una mayor eficacia en la verificación de si el paquete de instalación está reempaquetado.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
Los dibujos adjuntos aquí descritos se utilizan para proporcionar una mayor comprensión de la presente solicitud y constituyen una parte de la presente solicitud. Implementaciones esquemáticas de la presente solicitud y descripciones se utilizan para explicar la presente solicitud, y no constituyen una limitación indebida de la presente solicitud. En los dibujos adjuntos:
La FIG. 1 es un diagrama de flujo esquemático que ilustra un procedimiento de reempaquetado en tecnologías existentes;
La FIG. 2 es un diagrama de flujo esquemático que ilustra un procedimiento de prevención de reempaquetado en tecnologías existentes;
La FIG. 3 es un diagrama de flujo esquemático que ilustra un procedimiento de prevención de reempaquetado, de acuerdo con una implementación de la presente solicitud;
La FIG. 4 es un diagrama de flujo esquemático de la incrustación de información de marca de agua digital en un archivo objetivo, de acuerdo con una implementación de la presente solicitud;
La FIG. 5 es un diagrama de flujo esquemático que ilustra otro procedimiento de prevención de reempaquetado, de acuerdo con una implementación de la presente solicitud;
La FIG. 6 es un diagrama de flujo esquemático que ilustra un procedimiento para identificar información de marca de agua digital, de acuerdo con una implementación de la presente solicitud;
La FIG. 7 es un diagrama de flujo esquemático que ilustra aún otro procedimiento de prevención de reempaquetado, de acuerdo con una implementación de la presente solicitud;
La FIG. 8 es un diagrama de flujo esquemático que ilustra aún otro procedimiento de prevención de reempaquetado, de acuerdo con una implementación de la presente solicitud; y
La FIG. 9 es un diagrama estructural esquemático que ilustra un aparato de prevención de reempaquetado, de acuerdo con una implementación de la presente solicitud.
DESCRIPCIÓN DE IMPLEMENTACIONES
Para aclarar los objetivos, las soluciones técnicas y las ventajas de la presente solicitud, a continuación, se describen de forma clara y exhaustiva las soluciones técnicas de la presente solicitud con referencia a implementaciones específicas de la presente solicitud y a los correspondientes dibujos adjuntos. Evidentemente, las implementaciones descritas son sólo algunas y no todas las implementaciones de la presente solicitud.
A continuación, se describen en detalle las soluciones técnicas proporcionadas en las implementaciones de la presente solicitud con referencia a los dibujos adjuntos.
La presente solicitud proporciona un procedimiento de reempaquetado para mitigar el problema existente de que si un paquete de instalación se reempaqueta no puede ser verificado a veces de forma eficaz cuando un sistema comprueba una autofirma del paquete de instalación, y para mitigar el problema existente de que la eficacia de verificación es baja a veces debido a que el paquete de instalación ocupa una gran memoria cuando el sistema calcula un valor hash del paquete de instalación para comprobar si el paquete de instalación está reempaquetado. Un proceso del procedimiento se muestra en la FIG. 3, e incluye las siguientes etapas:
Etapa 301: Ejecutar un archivo objetivo en un paquete de instalación y cargar una biblioteca dinámica segura en el paquete de instalación.
En la presente etapa, cuando un usuario descarga un determinado paquete de instalación e instala el paquete de instalación, un sistema operativo ejecuta un archivo objetivo en el paquete de instalación, y simultáneamente carga una biblioteca dinámica segura en el paquete de instalación. El archivo objetivo es un archivo objetivo compilado en base a un código predeterminado, y la información de marca de agua digital está incrustada en el archivo objetivo compilado. La información de marca de agua digital puede ser una cadena de caracteres, una instrucción, etc. La biblioteca dinámica segura almacena información de verificación acerca del paquete de instalación, y la información de verificación se utiliza para verificar si el paquete de instalación es un paquete de instalación reempaquetado.
En el procedimiento anterior de incrustación de la información de marca de agua digital en el archivo objetivo, la información de marca de agua digital puede incrustarse al final del archivo objetivo, o la información de marca de agua digital puede incrustarse en otra ubicación del archivo objetivo.
El sistema operativo puede ser un sistema ANDROID, y el archivo objetivo puede ser un archivo dex. El archivo dex es un archivo ejecutable en el sistema ANDROID, y se escribe utilizando código java. La biblioteca dinámica segura puede ser una biblioteca de objetos compartidos (so), y se escribe utilizando c/c++. Generalmente, la biblioteca so almacena determinada información de seguridad, por ejemplo, información de verificación. Cuando se carga o ejecuta el archivo ejecutable, el sistema operativo carga la biblioteca so. De forma alternativa, el sistema operativo puede ser WINDOWS, el archivo objetivo puede ser un archivo exe, la biblioteca dinámica segura es una biblioteca dll, etc. El sistema operativo, el archivo objetivo y la biblioteca dinámica segura no están limitados en el presente documento.
Como se muestra en la FIG. 4, si el archivo objetivo es un archivo dex, cuando la información de marca de agua digital está incrustada en el archivo objetivo, para garantizar la integridad y la exactitud de los datos del archivo objetivo, valores correspondientes, tales como una suma de comprobación, una firma, un tamaño de archivo, etc. de una cabecera de archivo objetivo, se vuelven a calcular en base a la información de marca de agua digital.
Cabe destacar que, si el paquete de instalación es un paquete de instalación reempaquetado, cuando el usuario reempaqueta un paquete de instalación original, aunque el usuario puede modificar el código de un archivo original del paquete de instalación original, la información de verificación de una biblioteca dinámica segura del paquete de instalación original no puede modificarse fácilmente. Por lo tanto, la biblioteca dinámica segura del paquete de instalación sigue almacenando la información de verificación del paquete de instalación original. Suponiendo que la información de marca de agua digital también está incrustada en el paquete de instalación original, la información de verificación almacenada en la biblioteca dinámica segura puede ser información de marca de agua digital incrustada en el archivo original. Un motivo se muestra en la FIG. 5:
Cuando el paquete de instalación original se vuelve a empaquetar, es necesario descompilar primero el paquete de instalación original para obtener un archivo de código fuente correspondiente al paquete de instalación original. Debido a que la información de marca de agua digital está incrustada en el archivo original después de compilarse en el archivo original en base a un código predeterminado, la información de marca de agua digital A se pierde cuando el paquete de instalación original se está descompilando. Entonces, el usuario puede modificar el archivo de código fuente. Como se muestra en la FIG. 5, se puede añadir otro código. Además, el usuario incorpora además información de marca de agua digital B en el archivo de código fuente para alterar un paquete de instalación reempaquetado. Por último, el archivo de código fuente se reempaqueta y la biblioteca dinámica segura del paquete de instalación reempaquetado sigue almacenando la información de verificación A. De este modo, la información de marca de agua digital A puede utilizarse como identificador del paquete de instalación original y se utiliza para verificar si el paquete de instalación está reempaquetado.
Para describir claramente las implementaciones de la presente solicitud, las etapas de las implementaciones de la presente solicitud se describen a continuación, incrustando la información de marca de agua digital al final del archivo objetivo, como ejemplo.
Etapa 302: Realizar las siguientes etapas en base a código del archivo objetivo: obtener información de marca de agua digital incrustada en el archivo objetivo e información de verificación almacenada en la biblioteca dinámica segura, y verificar, en base a la información de marca de agua digital y la información de verificación, si el paquete de instalación es un paquete de instalación reempaquetado.
En la presente etapa, el sistema operativo obtiene la información de marca de agua digital del archivo objetivo basándose en el código del archivo objetivo utilizando el procedimiento mostrado en la FIG. 6: determinar una dirección de inicio de la información de marca de agua digital en el archivo objetivo en base a una longitud original del archivo objetivo, y obtener la información de marca de agua digital del archivo objetivo en base a la dirección de inicio. La longitud original del archivo objetivo es una longitud del archivo objetivo antes de que se incruste la información de marca de agua digital.
Después de obtener la información de marca de agua digital y la información de verificación de la biblioteca dinámica segura, el sistema operativo verifica, basándose en la información de marca de agua digital y la información de verificación, si el paquete de instalación es un paquete de instalación reempaquetado. Se puede determinar un procedimiento de verificación en base al tipo de la información de marca de agua digital, como se muestra en la Tabla 1:
Tabla 1
Figure imgf000005_0001
Cuando la información de marca de agua digital es una cadena de caracteres, se verifica si la información de marca de agua digital es coherente con la información de verificación. Si la información de marca de agua digital es coherente con la información de verificación, se determina que el paquete de instalación es un paquete de instalación original.
Si la información de marca de agua digital no es coherente con la información de verificación, se determina que el paquete de instalación es un paquete de instalación reempaquetado.
En aplicaciones reales, si la información de marca de agua digital es una cadena de caracteres, la cadena de caracteres puede ser una cadena de caracteres de longitud fija, o puede ser una cadena de caracteres de longitud aleatoria. Cuando la información de marca de agua digital es una cadena de caracteres de longitud fija, se verifica directamente si la cadena de caracteres es coherente con la información de verificación de la biblioteca dinámica segura; o se calcula un valor de marca de agua correspondiente al paquete de instalación actualmente descargado para determinar si el valor de marca de agua es coherente con la información de verificación de la biblioteca dinámica segura. La FIG. 7 muestra un procedimiento para verificar, mediante el cálculo de un valor de marca de agua en el archivo dex, si el paquete de instalación está reempaquetado. Los detalles son de la siguiente manera:
El archivo dex incluye una cabecera dex y un cuerpo dex. La cabecera dex incluye un tamaño de datos y un desplazamiento de datos, el cuerpo dex incluye datos, el tamaño de datos indica un tamaño de los datos, y el desplazamiento de datos indica un desfase de los datos. Supóngase que la información de marca de agua digital está incrustada en un archivo dex original. Cuando el archivo dex original está siendo reempaquetado, el código correspondiente a una parte de datos en un cuerpo dex se modifica, y una vez que el código se haya modificado, no sólo la información de marca de agua digital incrustada en el archivo dex original se pierde, sino que el tamaño de los datos también cambia. Por tanto, el valor correspondiente al tamaño de los datos en la cabecera dex cambia. El reempaquetado del archivo dex original también puede ser el siguiente: Se modifica el código correspondiente a partes que no son datos en un cuerpo dex, y después de modificar el código, también se pierde la información de marca de agua digital incrustada en el archivo dex original, y se desplaza la ubicación de los datos en un cuerpo dex (como se muestra en la FIG. 7). Por tanto, el valor correspondiente a un desplazamiento de datos en la cabecera dex cambia.
Supóngase que un procedimiento para calcular un valor de marca de agua correspondiente al paquete de instalación original es "tamaño de datos desplazamiento de datos", es decir, el valor de marca de agua es un valor correspondiente al tamaño de datos más un valor correspondiente al desplazamiento de datos. Cuando el usuario vuelve a empaquetar el paquete de instalación original, el valor correspondiente al desplazamiento de datos o al tamaño de los datos cambia, y un valor de marca de agua correspondiente al paquete de instalación reempaquetado también cambia. En este momento, el sistema operativo puede determinar si el paquete de instalación está reempaquetado verificando si el valor de marca de agua correspondiente al paquete de instalación reempaquetado es coherente con la información de verificación de la biblioteca dinámica segura. El procedimiento para calcular aquí el valor de marca de agua es simplemente un ejemplo. En aplicaciones reales, el procedimiento para calcular el valor de marca de agua puede determinarse en base a situaciones reales, por ejemplo, puede ser "tamaño de datos -desplazamiento de datos", "tamaño de datos/desplazamiento de datos", etc.
Cuando se utiliza el procedimiento anterior para verificar si el paquete de instalación descargado actualmente está reempaquetado, el valor de marca de agua correspondiente al paquete de instalación cambia incluso si la información de marca de agua digital del paquete de instalación original está incrustada en el paquete de instalación reempaquetado. De este modo, el sistema operativo puede determinar con precisión, basándose en el valor de marca de agua del paquete de instalación, si el paquete de instalación está reempaquetado.
Cuando la información de marca de agua digital es una cadena de caracteres de longitud aleatoria, la longitud de la cadena de caracteres puede calcularse en primer lugar y, a continuación, se verifica si la longitud de la cadena de caracteres es coherente con la longitud de la información de verificación en la biblioteca dinámica segura; y si la longitud de la cadena de caracteres no es coherente con la longitud de la información de verificación en la biblioteca dinámica segura, se determina directamente que el paquete de instalación es un paquete de instalación reempaquetado; o si la longitud de la cadena de caracteres es coherente con la longitud de la información de verificación de la biblioteca dinámica segura, se verifica si la cadena de caracteres es coherente con la información de verificación de la biblioteca dinámica segura, y si la cadena de caracteres también es coherente con la información de verificación de la biblioteca dinámica segura, se determina que el paquete de instalación es un paquete de instalación original, o si la cadena de caracteres no es coherente con la información de verificación de la biblioteca dinámica segura, se determina que el paquete de instalación es un paquete de instalación reempaquetado.
Cuando la información de marca de agua digital es una instrucción, hay una pluralidad de procedimiento para verificar el paquete de instalación. A continuación, se describen tres procedimientos de verificación a modo de ejemplo:
El primer procedimiento es similar al procedimiento anterior para verificar un paquete de instalación cuando la información de marca de agua digital es una cadena de caracteres. El sistema operativo verifica si la instrucción es coherente con la información de verificación de la biblioteca dinámica segura; si la instrucción es coherente con la información de verificación de la biblioteca dinámica segura, el sistema operativo determina que el paquete de instalación es un paquete de instalación original; y si la instrucción no es coherente con la información de verificación de la biblioteca dinámica segura, el sistema operativo determina que el paquete de instalación es un paquete de instalación reempaquetado.
En el segundo procedimiento, el sistema operativo realiza una operación correspondiente en base a la instrucción para obtener un resultado de operación y, a continuación, verifica si el resultado de operación es coherente con la información de verificación; si el resultado de operación es coherente con la información de verificación, el sistema operativo determina que el paquete de instalación es un paquete de instalación original, y si el resultado de operación no es coherente con la información de verificación, el sistema operativo determina que el paquete de instalación es un paquete de instalación reempaquetado.
Por ejemplo, la instrucción puede ser "consultar si el contenido de la dirección XX es coherente con la información de verificación de la biblioteca dinámica segura". El sistema operativo consulta el contenido (un resultado de operación) correspondiente a la dirección a partir de la dirección XX en el archivo objetivo en base a la instrucción, y verifica si el contenido es coherente con la información de verificación en la biblioteca dinámica segura. Si el contenido es coherente con la información de verificación en la biblioteca dinámica segura, el sistema operativo determina que el paquete de instalación es un paquete de instalación original. Si el contenido no es coherente con la información de verificación en la biblioteca dinámica segura, el sistema operativo determina que el paquete de instalación es un paquete de instalación reempaquetado.
En el tercer procedimiento, el sistema operativo realiza una operación correspondiente en base a la instrucción para obtener un resultado de operación, verifica si el resultado de operación es coherente con un resultado de operación en la información de verificación, y verifica si la instrucción es coherente con una instrucción en la información de verificación. Si los resultados de ambas verificaciones son "coherentes", el sistema operativo determina que el paquete de instalación es un paquete de instalación original. Si el resultado de cualquiera de las dos verificaciones es "no coherente", o los resultados de ambas verificaciones son "no coherentes", el sistema operativo determina que el paquete de instalación es un paquete de instalación reempaquetado.
Para describir claramente el procedimiento de verificación, se ofrece aquí un ejemplo sencillo. Supóngase que el resultado de operación en la información de verificación de la biblioteca dinámica segura es "2", que una instrucción de operación es "1+1", que una instrucción correspondiente a la información de marca de agua digital en el archivo objetivo es "3-1", y que el resultado de operación obtenido después de que el sistema operativo realice la operación en base a la instrucción es también "2". Si el sistema operativo sólo verifica si el resultado de operación es coherente con el resultado de operación en la información de verificación, el sistema operativo considera erróneamente que el paquete de instalación es un paquete de instalación original, pero si el sistema operativo verifica además si la instrucción es coherente con la instrucción de la información de verificación, el sistema operativo determina con precisión si el paquete de instalación está reempaquetado.
La instrucción correspondiente a la información de marca de agua digital en el archivo objetivo puede ser una simple instrucción de "retorno" u otra instrucción utilizada para la interacción con el sistema operativo. Por ejemplo, la instrucción puede ser "hacer que el sistema operativo verifique si la autofirma del archivo objetivo es coherente con la información de verificación de la biblioteca dinámica segura". Como otro ejemplo, la instrucción puede ser "hacer que el sistema operativo verifique si la longitud del archivo objetivo antes de incrustar la información de marca de agua digital es coherente con la información de verificación almacenada en la biblioteca dinámica segura". La instrucción se puede establecer en función de las necesidades del usuario.
Además, si el paquete de instalación es un paquete de instalación reempaquetado, puede darse el siguiente caso: La información de marca de agua digital se incrusta en un archivo original correspondiente al paquete de instalación. Del contenido anterior se desprende que, en un proceso de reempaquetado del paquete de instalación original, la información de marca de agua digital del paquete de instalación original se pierde. Si el usuario no añade información de marca de agua digital después de modificar el código del archivo original, el sistema operativo puede consultar, basándose en el código del paquete de instalación, si el archivo objetivo del paquete de instalación incluye la información de marca de agua digital.
El procedimiento anterior para verificar un paquete de instalación es sólo un ejemplo. En aplicaciones reales, hay una pluralidad de tipos de información de marca de agua digital, y también una pluralidad de procedimientos de verificación correspondientes, los cuales no están limitados en el presente documento.
En el procedimiento de prevención de reempaquetado proporcionado en la presente solicitud, el paquete de instalación incluye un código de verificación. Cuando se instala el paquete de instalación, como se muestra en la FIG. 8, el sistema operativo obtiene, basándose en el código, la información de verificación de la biblioteca dinámica segura del paquete de instalación, obtiene la información de marca de agua digital incrustada en el archivo objetivo, y verifica, basándose en la información de marca de agua digital y la información de verificación, si el paquete de instalación es un paquete de instalación reempaquetado. Los siguientes efectos beneficiosos se logran usando el procedimiento de prevención de reempaquetado proporcionado en la presente solicitud:
1. En la presente solicitud, el paquete de instalación incluye código utilizado para verificar si el paquete de instalación está reempaquetado. Por consiguiente, independientemente de cómo se modifique el sistema operativo, no se puede evitar un proceso de verificación del paquete de instalación. Esto mitiga el problema existente que consiste en que no se puede verificar eficazmente si el paquete de instalación está reempaquetado debido a que el sistema a veces omite un proceso de verificación de una autofirma del paquete de instalación cuando se comprueba la autofirma del paquete de instalación para verificar si el paquete de instalación está reempaquetado.
2. En la presente solicitud, se verifica si el paquete de instalación está reempaquetado en base a la información de marca de agua digital y la información de verificación. Por lo tanto, en comparación con el procedimiento de las tecnologías existentes para verificar si el paquete de instalación está reempaquetado mediante el cálculo de un valor hash del paquete de instalación, la presente solicitud tiene una mayor eficacia en la verificación de si el paquete de instalación está reempaquetado.
De manera correspondiente, la presente solicitud proporciona además un aparato de reempaquetado para mitigar el problema existente de que si un paquete de instalación se reempaqueta no puede ser verificado a veces de forma eficaz cuando un sistema comprueba una autofirma del paquete de instalación, y para mitigar el problema existente de que la eficacia de verificación es baja a veces debido a que el paquete de instalación ocupa una gran memoria cuando el sistema calcula un valor hash del paquete de instalación para comprobar si el paquete de instalación está reempaquetado. Una estructura del aparato se muestra en la FIG. 9, e incluye las siguientes unidades: una unidad operativa 901 y una unidad de ejecución 902.
La unidad operativa 901 está configurada para ejecutar un archivo objetivo en un paquete de instalación y cargar una biblioteca dinámica segura en el paquete de instalación.
La unidad de ejecución 902 está configurada para realizar las siguientes etapas en base a código del archivo objetivo: obtener información de marca de agua digital incrustada en el archivo objetivo e información de verificación almacenada en la biblioteca dinámica segura; y verificar, en base a la información de marca de agua digital y la información de verificación, si el paquete de instalación es un paquete de instalación reempaquetado.
Un flujo de trabajo de la presente implementación de aparato es el siguiente: En primer lugar, la unidad operativa 901 ejecuta el archivo objetivo del paquete de instalación y carga la biblioteca dinámica segura en el paquete de instalación; y, a continuación, la unidad de ejecución 902 realiza las siguientes etapas en base al código del archivo objetivo; obtener la información de marca de agua digital incrustada en el archivo objetivo y la información de verificación almacenada en la biblioteca dinámica segura; y verificar, en base a la información de marca de agua digital y la información de verificación, si el paquete de instalación es un paquete de instalación reempaquetado.
En la presente implementación de aparato, la prevención de reempaquetado se implementa mediante diversos procedimientos. Por ejemplo, en una primera implementación, el archivo objetivo es un archivo objetivo obtenido tras la compilación de un código predeterminado, y la información de marca de agua digital está incrustada al final del archivo objetivo compilado.
En una segunda implementación, la obtención de información de marca de agua digital incrustada en el archivo objetivo incluye: determinar una dirección de inicio de la información de marca de agua digital en el archivo objetivo en base a una longitud original del archivo objetivo, donde la longitud original es la longitud del archivo objetivo antes de que se incruste la información de marca de agua digital; y obtener la información de marca de agua digital del archivo objetivo en base a la dirección de inicio.
En una tercera implementación, la verificación, en base a la información de marca de agua digital y la información de verificación, de si el paquete de instalación es un paquete de instalación reempaquetado incluye: verificar si la información de marca de agua digital es coherente con la información de verificación; y si la información de marca de agua digital es coherente con la información de verificación, determinar que el paquete de instalación es un paquete de instalación original; o si la información de marca de agua digital no es coherente con la información de verificación, determinar que el paquete de instalación es un paquete de instalación reempaquetado.
En una cuarta implementación, la verificación, en base a la información de marca de agua digital y la información de verificación, de si el paquete de instalación es un paquete de instalación reempaquetado incluye: cuando la información de marca de agua digital es una instrucción, realizar una operación en base a la instrucción para obtener un resultado de operación; verificar si el resultado de operación es coherente con la información de verificación; y si el resultado de operación es coherente con la información de verificación, determinar que el paquete de instalación es un paquete de instalación original; o si el resultado de operación no es coherente con la información de verificación, determinar que el paquete de instalación es un paquete de instalación reempaquetado.
En una quinta implementación, la verificación, en base a la información de marca de agua digital y en la información de verificación, de si el paquete de instalación es un paquete de instalación reempaquetado incluye: cuando la información de marca de agua digital es una instrucción, realizar una operación en base a la instrucción para obtener un resultado de operación; verificar si el resultado de operación es coherente con un resultado de operación en la información de verificación, y verificar si la instrucción es coherente con una instrucción de la información de verificación; y si el resultado de operación es coherente con el resultado de operación en la información de verificación y la instrucción es coherente con la instrucción de la información de verificación, determinar que el paquete de instalación es un paquete de instalación original; o de lo contrario, determinar que el paquete de instalación es un paquete de instalación reempaquetado.
Los efectos beneficiosos logrados en la presente implementación de aparato son iguales o similares a los efectos beneficiosos logrados en la implementación de procedimiento anterior. Para evitar la repetición, en este caso se omiten, por simplicidad, los detalles.
Un experto en la técnica debe entender que las implementaciones de la presente invención pueden proporcionarse como un procedimiento, un sistema o un producto de programa informático. Por lo tanto, la presente invención puede adoptar la forma de implementaciones sólo de hardware, implementaciones sólo de software o implementaciones que combinen software y hardware. Además, la presente invención puede adoptar la forma de un producto de programa informático que se implementa en uno o más medios de almacenamiento utilizables por ordenador (incluyendo, pero sin limitarse a, una memoria de disco, un CD-ROM, una memoria óptica, etc.) que incluyen un código de programa utilizable por ordenador.
La presente invención se describe con referencia a un diagrama de flujo y/o un diagrama de bloques de un procedimiento, un dispositivo (sistema) y un producto de programa informático de acuerdo con una implementación de la presente invención. Debe entenderse que las instrucciones de programa informático pueden utilizarse para implementar cada proceso y/o cada bloque de los diagramas de flujo y/o los diagramas de bloques y una combinación de un proceso y/o un bloque de los diagramas de flujo y/o los diagramas de bloques. Estas instrucciones de programa informático pueden proporcionarse a un ordenador de propósito general, un ordenador dedicado, un procesador integrado o un procesador de cualquier otro dispositivo de procesamiento de datos programable para generar una máquina, de modo que las instrucciones ejecutadas por un ordenador o un procesador de cualquier otro dispositivo de procesamiento de datos programable generen un dispositivo para implementar una función específica en uno o más procesos de los diagramas de flujo y/o en uno o más bloques de los diagramas de bloques.
Estas instrucciones de programa informático pueden almacenarse en una memoria legible por ordenador que puede dar instrucciones al ordenador o a cualquier otro dispositivo de procesamiento de datos programable para que funcione utilizando un procedimiento específico, de modo que las instrucciones almacenadas en la memoria legible por ordenador generen un artefacto que incluya un dispositivo de instrucción. El dispositivo de instrucción implementa una función específica en uno o más procesos en los diagramas de flujo y/o en uno o más bloques en los diagramas de bloques.
Estas instrucciones de programa informático pueden cargarse en un ordenador o en otro dispositivo de procesamiento de datos programable, de modo que se ejecuten una serie de operaciones y etapas en el ordenador o el otro dispositivo programable, generándose así un procesamiento implementado por ordenador. Por lo tanto, las instrucciones ejecutadas en el ordenador o el otro dispositivo programable proporcionan etapas para implementar una función específica en uno o más procesos en los diagramas de flujo y/o en uno o más bloques en los diagramas de bloques.
En una configuración típica, el dispositivo informático incluye una o más unidades centrales de procesamiento (CPU), una o más interfaces de entrada/salida, una o más interfaces de red y una o más memorias.
La memoria puede incluir una memoria volátil en un medio legible por ordenador, una memoria de acceso aleatorio (RAM) y/o una memoria no volátil, etc., tal como una memoria de sólo lectura (ROM) o una memoria flash (RAM flash). La memoria es un ejemplo de un medio legible por ordenador.
El medio legible por ordenador incluye medios permanentes y no permanentes, extraíbles y no extraíbles, que pueden almacenar información utilizando cualquier procedimiento o tecnología. La información puede ser una instrucción legible por ordenador, una estructura de datos, un módulo de un programa u otros datos. Ejemplos de medios de almacenamiento informático incluyen, pero sin limitarse a, una memoria de cambio aleatorio de fase (PRAM), una memoria de acceso aleatorio estática (SRAM), una memoria de acceso aleatorio dinámica (DRAM), otro tipo de memoria de acceso aleatorio (RAM), una memoria de sólo lectura (ROM), una memoria de sólo lectura programable eléctricamente borrable (EEPROM) una memoria flash u otra tecnología de memoria, una memoria de sólo lectura de disco compacto (CD-ROM), un disco versátil digital (DVD) u otro almacenamiento óptico, una cinta de casete magnética, un almacenamiento de cinta/disco magnético u otro dispositivo de almacenamiento magnético o cualquier otro medio de no transmisión, y puede utilizarse para almacenar información a la que pueda acceder un dispositivo informático. Tal como se define en la presente memoria descriptiva, el medio legible por ordenador no incluye medios transitorios legibles por ordenador (medios transitorios), tales como una señal de datos modulada y una portadora.
Cabe señalar además que el término "incluir", "contener" o cualquier otra variante de los mismos pretende abarcar una inclusión no exclusiva, de modo que un proceso, un procedimiento, una mercancía o un dispositivo que incluye una lista de elementos no sólo incluye esos elementos, sino que también incluye otros elementos que no están expresamente enumerados, o incluye además elementos inherentes a dicho proceso, procedimiento, mercancía o dispositivo. Un elemento precedido por "incluye un/una..." no excluye, sin más restricciones, la existencia de elementos idénticos adicionales en el proceso, procedimiento, mercancía o dispositivo que incluye el elemento.
Un experto en la técnica debe entender que las implementaciones de la presente memoria descriptiva pueden proporcionarse como un procedimiento, un sistema o un producto de programa informático. Por lo tanto, la presente solicitud puede adoptar la forma de implementaciones sólo de hardware, implementaciones sólo de software o implementaciones que combinen software y hardware. Además, la presente solicitud puede adoptar la forma de un producto de programa informático que se implementa en uno o más medios de almacenamiento utilizables por ordenador (incluyendo, pero sin limitarse a, una memoria de disco, un CD-ROM, una memoria óptica, etc.) que incluyen un código de programa utilizable por ordenador.
Las descripciones anteriores son meramente implementaciones de la presente solicitud, y no pretenden limitar la presente solicitud. Los expertos en la técnica entenderán que pueden realizarse varias modificaciones y cambios en la presente solicitud.

Claims (5)

REIVINDICACIONES
1. Un procedimiento de prevención de reempaquetado, comprendiendo el procedimiento:
ejecutar (301), mediante un sistema operativo, un archivo objetivo en un paquete de instalación instalado en el sistema operativo, y cargar, mediante el sistema operativo, una biblioteca dinámica segura en el paquete de instalación, donde la biblioteca dinámica segura almacena información de verificación acerca del paquete de instalación;
obtener (302), mediante el sistema operativo, información de marca de agua digital incrustada en el archivo objetivo e información de verificación almacenada en la biblioteca dinámica segura en base al código del archivo objetivo; y
verificar (303), mediante el sistema operativo, en base a la información de marca de agua digital y la información de verificación, si el paquete de instalación es un paquete de instalación reempaquetado, lo que comprende:
determinar que la información de marca de agua digital es una instrucción;
realizar una operación en base a la instrucción para obtener un resultado de operación;
verificar si el resultado de operación es coherente con un resultado de operación en la información de verificación, y verificar si la instrucción es coherente con una instrucción de la información de verificación; si el resultado de operación es coherente con el resultado de operación en la información de verificación y la instrucción es coherente con la instrucción de la información de verificación, determinar que el paquete de instalación es un paquete de instalación original; y
si el resultado de operación no es coherente con la información de verificación o la instrucción no es coherente con la instrucción de la información de verificación, determinar que el paquete de instalación es el paquete de instalación reempaquetado.
2. El procedimiento de acuerdo con la reivindicación 1, en el que:
el archivo objetivo es un archivo objetivo obtenido tras la compilación de un código predeterminado; y la información de marca de agua digital se incrusta al final del archivo objetivo compilado.
3. El procedimiento de acuerdo con la reivindicación 2, en el que la obtención de la información de marca de agua digital incrustada en el archivo objetivo comprende:
determinar una dirección de inicio de la información de marca de agua digital en el archivo objetivo en base a una longitud original del archivo objetivo, donde la longitud original es la longitud del archivo objetivo antes de que se incruste la información de marca de agua digital; y
obtener la información de marca de agua digital del archivo objetivo en base a la dirección de inicio.
4. El procedimiento de acuerdo con una cualquiera de las reivindicaciones 1 a 3, en el que el procedimiento se aplica a un sistema operativo ANDROID;
el archivo objetivo es un archivo ejecutable; y
la biblioteca dinámica segura es una biblioteca de objetos compartidos escrita mediante C/C++.
5. Un aparato de prevención de reempaquetado, comprendiendo el aparato una pluralidad de módulos configurados para realizar el procedimiento de una cualquiera de las reivindicaciones 1 a 4.
ES17859699T 2016-10-11 2017-09-26 Procedimiento y dispositivo de prevención de reempaquetado de software Active ES2874781T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610887188.5A CN106971098B (zh) 2016-10-11 2016-10-11 一种防重打包的方法及其装置
PCT/CN2017/103403 WO2018068633A1 (zh) 2016-10-11 2017-09-26 一种防重打包的方法及其装置

Publications (1)

Publication Number Publication Date
ES2874781T3 true ES2874781T3 (es) 2021-11-05

Family

ID=59334735

Family Applications (1)

Application Number Title Priority Date Filing Date
ES17859699T Active ES2874781T3 (es) 2016-10-11 2017-09-26 Procedimiento y dispositivo de prevención de reempaquetado de software

Country Status (11)

Country Link
US (1) US10685117B2 (es)
EP (1) EP3528149B1 (es)
JP (1) JP6746156B2 (es)
KR (1) KR102192880B1 (es)
CN (1) CN106971098B (es)
ES (1) ES2874781T3 (es)
PH (1) PH12019500785A1 (es)
PL (1) PL3528149T3 (es)
SG (1) SG11201903264RA (es)
TW (1) TWI675310B (es)
WO (1) WO2018068633A1 (es)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106971098B (zh) * 2016-10-11 2020-06-02 阿里巴巴集团控股有限公司 一种防重打包的方法及其装置
CN107256349B (zh) * 2017-06-13 2020-02-28 广州阿里巴巴文学信息技术有限公司 动态库防盗用方法、装置、电子设备及可读存储介质
KR101920597B1 (ko) * 2017-11-16 2018-11-21 숭실대학교산학협력단 동적 코드 추출 기반 자동 분석 방지 우회 및 코드 로직 해석 장치
CN108304697B (zh) * 2017-12-11 2020-05-19 深圳壹账通智能科技有限公司 检测app二次打包的方法、装置及移动终端
CN109739544B (zh) * 2018-12-25 2022-11-04 北京三快在线科技有限公司 用于生成应用安装包的方法、装置及电子设备
CN109901981A (zh) * 2019-02-28 2019-06-18 北京智游网安科技有限公司 一种截屏泄露处理方法、智能终端及存储介质
CN110704816B (zh) * 2019-09-29 2021-10-22 武汉极意网络科技有限公司 接口破解的识别方法、装置、设备及存储介质
CN113127418A (zh) * 2019-12-30 2021-07-16 Oppo广东移动通信有限公司 文件检测方法、装置、终端及存储介质
CN113127859B (zh) * 2019-12-30 2024-04-12 Oppo广东移动通信有限公司 待检测文件的检测方法、装置、终端及存储介质
CN113132421B (zh) * 2019-12-30 2022-11-04 Oppo广东移动通信有限公司 文件检测方法、装置、终端及存储介质
CN113709195B (zh) * 2020-05-20 2024-05-28 广州汽车集团股份有限公司 一种车辆软件升级方法、装置及系统
CN112069468B (zh) * 2020-08-26 2023-05-30 上海上讯信息技术股份有限公司 一种页面动态水印的方法及设备
CN113641964B (zh) * 2021-10-19 2022-05-17 北京邮电大学 重打包应用检测方法、电子设备及存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW480439B (en) * 1998-12-17 2002-03-21 Inventec Corp Method for examining correctness of system operation
US7421586B2 (en) * 1999-05-12 2008-09-02 Fraunhofer Gesselschaft Protecting mobile code against malicious hosts
US20060010430A1 (en) * 2001-05-04 2006-01-12 Thales Device and process for the signature, the marking and the authentication of computer programs
EP1546892B1 (en) * 2002-09-04 2017-03-29 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Protecting mobile code against malicious hosts cross references to related applications
US7784044B2 (en) * 2002-12-02 2010-08-24 Microsoft Corporation Patching of in-use functions on a running computer system
US8024571B2 (en) * 2006-12-22 2011-09-20 Schlumberger Technology Corporation Method of and system for watermarking application modules
US8375458B2 (en) * 2007-01-05 2013-02-12 Apple Inc. System and method for authenticating code executing on computer system
US8950007B1 (en) * 2008-04-07 2015-02-03 Lumension Security, Inc. Policy-based whitelisting with system change management based on trust framework
SG172031A1 (en) * 2008-12-10 2011-07-28 Sumitomo Bakelite Co Granulated epoxy resin composition for semiconductor encapsulation, semiconductor device using same, and method for manufacturing semiconductor device
US8844032B2 (en) * 2012-03-02 2014-09-23 Sri International Method and system for application-based policy monitoring and enforcement on a mobile device
US20120317421A1 (en) * 2012-06-19 2012-12-13 Concurix Corporation Fingerprinting Executable Code
KR101498820B1 (ko) * 2013-11-06 2015-03-05 순천향대학교 산학협력단 안드로이드 환경에서의 어플리케이션 리패키징 탐지 방법
US9619665B2 (en) * 2014-07-22 2017-04-11 Cheng-Han KO Method and system for adding dynamic labels to a file and encrypting the file
KR101695639B1 (ko) * 2014-08-13 2017-01-16 (주)잉카엔트웍스 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템
CN104239757B (zh) * 2014-09-30 2017-04-19 北京奇虎科技有限公司 应用程序防止逆向的方法及装置、运行方法及终端
CN104932902B (zh) * 2015-07-09 2019-07-12 魅族科技(中国)有限公司 一种生成apk文件的方法及终端
CN105205356B (zh) * 2015-09-17 2017-12-29 清华大学深圳研究生院 一种app应用重打包检测方法
CN105956456B (zh) * 2016-04-26 2019-02-19 南京邮电大学 一种对Android系统进行四重联合签名验证的实现方法
CN106971098B (zh) * 2016-10-11 2020-06-02 阿里巴巴集团控股有限公司 一种防重打包的方法及其装置

Also Published As

Publication number Publication date
KR20190061075A (ko) 2019-06-04
EP3528149A1 (en) 2019-08-21
WO2018068633A1 (zh) 2018-04-19
TWI675310B (zh) 2019-10-21
JP2019535087A (ja) 2019-12-05
US20190243974A1 (en) 2019-08-08
SG11201903264RA (en) 2019-05-30
JP6746156B2 (ja) 2020-08-26
CN106971098A (zh) 2017-07-21
KR102192880B1 (ko) 2020-12-22
US10685117B2 (en) 2020-06-16
EP3528149A4 (en) 2019-10-16
EP3528149B1 (en) 2021-04-07
TW201814576A (zh) 2018-04-16
PH12019500785A1 (en) 2019-11-11
PL3528149T3 (pl) 2021-10-11
CN106971098B (zh) 2020-06-02

Similar Documents

Publication Publication Date Title
ES2874781T3 (es) Procedimiento y dispositivo de prevención de reempaquetado de software
KR101471589B1 (ko) 공통중간언어 기반 프로그램을 위한 보안 제공 방법
US9805188B2 (en) Control flow integrity system and method
US11507669B1 (en) Characterizing, detecting and healing vulnerabilities in computer code
KR101966754B1 (ko) 소프트웨어 코드의 생성 및 캐싱 기법
JP2019502197A (ja) ランタイム生成コードにおける悪意のあるコードの検出のためのシステムおよび方法
US20220035918A1 (en) System and Method for Validating In-Memory Integrity of Executable Files to Identify Malicious Activity
US20220107827A1 (en) Applying security mitigation measures for stack corruption exploitation in intermediate code files
CN109271789B (zh) 恶意进程检测方法、装置、电子设备及存储介质
Sun et al. Blender: Self-randomizing address space layout for android apps
JP6435834B2 (ja) 命令実行制御装置、命令実行制御方法
US20150026483A1 (en) Systems and Methods for Mobile Application Protection
US11269988B2 (en) Automated software application verification system
US9600672B1 (en) Dynamic function switching
KR101863325B1 (ko) 역공학 방지 방법 및 장치
KR101842263B1 (ko) 어플리케이션에 대한 역공학 차단 방법 및 장치
KR102226218B1 (ko) 크로스플랫폼 개발 프레임워크로 제작된 애플리케이션을 식별하기 위한 특징정보 추출 장치 및 방법
JP2018005915A (ja) アプリケーションパッケージを提供する方法およびシステム、アプリケーションを実行する方法およびシステム
KR20200048773A (ko) Gpu 코드 메모리에 적용할 수 있는 cuda 메모리 페이지 스캔 및 cuda 함수 위치 탐색 방법