proceso de empaquetado de apk
aapt define un ID de recurso para cada recurso en el directorio que no es de activos. Es un número de 4 bytes (byte = 32 bits) en el formato PPTTNNNN. PP representa el paquete al que pertenece el recurso. TT Representa el tipo de recurso (Tipo), NNNN representa el nombre del recurso (ID de entrada) bajo este tipo.
Descomprima el apk firmado. Generalmente hay tres archivos en el directorio META-INF: MANIFEST.MF, CERT.SF y CERT.RSA. Aquí se utilizan diferentes certificados y firmas. .
Cuando se instala el paquete APK, se verifica en el orden RSA->SF->MF: **Primero use la información de la clave pública para restaurar la información de la firma y luego compárela con la información. en el archivo .SF Compare y luego use el mismo algoritmo de resumen para calcular la información de resumen correspondiente para cada entrada en el archivo .MF y luego compare si el .MF es consistente.
Desventajas
En pocas palabras, el modo de firma v2 agrega un nuevo bloque (bloque de firma) al bloque apk original. El nuevo bloque almacena la firma, el resumen, el algoritmo de firma, la cadena de certificados y. algunas propiedades adicionales, etc. Este bloque tiene un formato específico.
Una vez firmado el formato apk, se convierten en las siguientes 4 partes.
La tercera parte tiene un valor de desplazamiento que apunta directamente al inicio de la segunda parte, y cada segunda parte Partes como como encabezado1 del directorio central.... El encabezado n del directorio central tiene un campo barato que apunta a la primera parte correspondiente.
El bloque de firma incluye protección de cifrado, algoritmo de resumen y algoritmo de firma para el contenido binario de la primera, segunda y tercera parte del apk. El bloque de firma en sí no está cifrado. Lo que necesita atención especial aquí es que la tercera parte contiene un desplazamiento de referencia a la segunda parte. Por lo tanto, si se cambia el bloque de firma, por ejemplo, se agrega un algoritmo de firma durante el proceso de firma. Información como el firmante hará que este desplazamiento cambie. Por lo tanto, al calcular la información resumida, este tono debe eliminarse y se utiliza la tercera parte del desplazamiento del bloque de firma para el cálculo.
A continuación, echemos un vistazo al formato del bloque de firma apk específico. El formato modificado se divide en 4 partes:
Cómo encontrar la ubicación del bloque v2: extremo central ZIP. registro -> directorio central De hecho, desplazamiento -> corrija el valor mágico, y luego podrá ubicar la posición del bloque v2.
El bloque de firma v2 es responsable de proteger la integridad de las partes 1, 3 y 4, así como la integridad del bloque de datos firmado en el bloque v2 del esquema de firma APK contenido en la segunda parte. . La integridad de las partes 1, 3 y 4 está protegida por resúmenes de contenido, que se almacenan en fragmentos de datos firmados, y la integridad de los fragmentos de datos firmados está garantizada mediante firmas. Comencemos el proceso de cálculo del resumen
El siguiente método de cálculo debe usarse para el resumen de las partes 1, 3 y 4
De lo anterior podemos saber que el bloque del modo v2 es algo similar