Cómo descifrar el archivo de base de datos sqlite
1. Cifrar los datos en la base de datos.
2. Cifrar el archivo de base de datos
1.
Esta uin no es una cuenta de inicio de sesión, sino un número interno que no se puede ver en la interfaz del programa.
En cuanto a la verificación, la forma más sencilla es iniciar sesión en la página web Weibo, presionar la tecla F12 para abrir la herramienta de depuración web y luego presionar ctrl+F para buscar "uin", puede encuentre una larga lista de URL, donde uin es el uin que actualmente está conectado a Weibo.
Además,
Existe otra forma de obtener uin en el archivo de configuración, que no es una cuenta. Otro método es configurar archivos. Hay varios archivos cfg en el directorio de WeChat exportado. Todos estos archivos están guardados, pero son tablas hash de Java que deben resolver los amigos.
También hay un amigo que informó que cerrar sesión en WeChat (ejecutar en segundo plano no se llama salir) o cerrar sesión en WeChat borrará esta información de configuración, por lo que al exportar, recuerde exportar mientras esté conectado a WeChat. El propio blogger creó un pequeño programa para completar el análisis.
2. Qué hacer con varias cuentas de inicio de sesión en un teléfono móvil (qué hacer si no hay uin)
Acerca de
Según el descifrado del blogger. publicación, debe conocer el número de serie y el uin. El número de serie es fácil de decir y la configuración generalmente se puede obtener en la configuración. La hora que uin lee de la configuración es solo la hora del inicio de sesión actual o del último inicio de sesión, y las otras
. registros precisos
No hay forma de descifrarlo. No hay forma de descifrarlo. La solución a este problema es que los usuarios inicien sesión uno por uno y luego exporten.
Después de la guía de un amigo, el blogger finalmente encontró una solución al problema, que es leer la uin en segundos desde la configuración. No se hará pública por el momento, solo para. ilustrar la situación anormal.
3. ¿Por qué el número de serie y el uin no pueden ser correctos?
En primer lugar,
Varios amigos entusiastas han informado del número de serie. Después de probar este problema, los blogueros descubrieron que es posible que diferentes teléfonos móviles no usen IMEI, pero pueden ser IMSI, etc., y que el número de serie puede no tener los 15 dígitos estándar
Puede ser muy extraño para Por ejemplo, ingrese *#06# para obtener uno, pero el que se usa en el subprograma WeChat es otra cosa muy extraña. Esta situación ocurre principalmente en teléfonos con doble SIM y modo de espera después de pruebas estrictas
. Después de realizar pruebas paso a paso, ahora se puede lograr una identificación precisa. Varios amigos entusiastas también presentaron diferentes códigos como muestra de aliento.
4. Calcule la clave correcta y por qué no se puede abrir el archivo de la base de datos.
Nosotros
Esta carta pervertida no es una base de datos sqlite estándar. en la publicación. No es cifrado de base de datos, es cifrado de contenido de archivos. El precio oficial en realidad lo vendió por 149 yuanes
y es de código abierto.
Código fuente abierto, aquellos con un nivel suficientemente alto pueden intentar compilarlo ellos mismos. También puede buscar sqlcipher para Windows en Google.
Este es fácil de compilar, pero el blogger no sabe si es un problema de apariencia o de carácter. La base de datos compilada no se puede abrir. WeChat y cambia el código.
5. El contenido del archivo de base de datos está cifrado, cómo restaurarlo
Esto
Esto
se usa en algunos especiales. circunstancias, como El historial de chat desaparece después de que se elimina de la base de datos, pero algunos internautas lo probaron y dijeron que no se puede consultar la base de datos, pero que todavía hay residuos en el archivo. No he probado esta situación
pero creo que es posible. Eliminar archivos en el disco duro en realidad elimina el índice en el disco duro. El contenido aún permanece en el disco duro y se puede recuperar. en la base de datos sqlite Simplemente
el índice se borra y el contenido aún está en el archivo.
Cuando está en línea, se abre directamente para leerlo sin descifrarlo ni restaurarlo. Este archivo se convierte en una base de datos sqlite normal. El método de exportación que utiliza sqlcipher
solo puede exportar el contenido de la consulta.
Más tarde, el blogger se tomó el tiempo para crear un pequeño programa leyendo el método de cifrado de contenido, que descifró directamente el contenido del archivo cifrado sin modificar ningún dato. En lugar de convertir la base de datos,
reemplazó el flujo de datos. descifrado directamente, completamente restaurado al archivo de base de datos original no cifrado, con el mismo tamaño y sin pérdida de contenido, y se puede abrir directamente con herramientas como sqlite admin.
6. El contenido del chat eliminado se puede recuperar
Después de la prueba, después de restaurar los datos originales mediante el quinto método anterior, el contenido del chat eliminado se puede recuperar. La eliminación de sqlite no lo elimina completamente del archivo, pero sí borra el índice para que pueda recuperarse escaneando el archivo original. Siempre que Microsoft no haya sido reinstalado.
Las ventajas y desventajas de los dos métodos de cifrado se comparan de la siguiente manera:
1. Cifrar los datos en la base de datos
Ventajas:
<. p>1 Para lograr un cifrado de datos rápido, simplemente agregue dos métodosUno: cifrar datos de texto sin formato y devolver datos de texto cifrado
Dos: descifrar datos de texto cifrado y devolver datos de texto sin formato.
2. No es necesario cambiar mucho el programa, solo al agregar, modificar, eliminar y consultar datos. Simplemente modifique los campos de cifrado y descifrado para los campos de la tabla especificada.
Defectos:
1. Porque los datos están cifrados. Entonces, para ver el texto sin formato, primero debes descifrar el texto cifrado. Esto aumentará el consumo del procesador. Debido a la potencia de procesamiento limitada del teléfono móvil, el procesamiento de datos puede ser lento.
2. Si solo se cifran los datos, aún es posible ver la declaración SQL de la tabla de datos y adivinar la función de la tabla. Además, si todos los campos de la tabla no están cifrados, es posible ver datos de texto sin cifrar.
Cosas que deben hacerse:
1. No es necesario considerar las diferencias de plataforma, Qt, Android e iOS se pueden implementar rápidamente. Simplemente implemente los mismos algoritmos de cifrado y descifrado en cada plataforma utilizando sus respectivos idiomas.
2. Debe comprender el algoritmo de cifrado, elegir el algoritmo de cifrado e implementarlo.
2. Cifrado de archivos de base de datos
Ventajas:
1. Todo el archivo está cifrado, el usuario no puede ver ningún dato útil a través del editor y el usuario. No se puede utilizar el software de navegador sqlite para abrir el archivo y ver los datos, garantizando la seguridad de los datos.
2. Para abrir la base de datos, utilice el programa sqlite3_key(db, "*******",8); solo usa texto plano.
Desventajas:
1. Es necesario modificar el código fuente de sqlite, lo cual es difícil.
2. Para compilar el sqlite modificado, debe comprender el archivo MAKE, escribirlo manualmente y compilar el programa fuente. Debido a diferencias de plataforma, puede resultar imposible compilar y generar una biblioteca de vínculos dinámicos para una determinada plataforma.
3. Es necesario modificar el código de la capa de acceso a datos. Por ejemplo, la plataforma Qt necesita usar la clase QSqlQuery antes de las operaciones de la base de datos. . Lo mismo ocurre con otras plataformas, que requieren este paso de modificación.
4. Al compilar el programa, agregue una biblioteca de enlaces dinámicos cifrados (*** disfrute del archivo biblioteca.so para la plataforma Windows, simplemente copie el archivo dll a la aplicación). usarlo en el programa. Otras plataformas necesitarán experimentar para ver cómo se importa la biblioteca si se compila.
Cosas que deben hacerse:
1. Modifique el código fuente de sqlite y agregue la función de cifrar archivos de base de datos.
2. Compile el código fuente del programa que contiene la función de cifrado y genere los archivos de biblioteca necesarios para la plataforma correspondiente.
3. Introduce el archivo de la biblioteca sqlite cifrado en tu plataforma y modifica el código de la capa de acceso a la base de datos.
4. Implementar el programa y probarlo.
3. Principio del cifrado de bases de datos
Actualmente, las bases de datos convencionales adoptan una variedad de medidas de seguridad, incluida la autenticación de usuarios, el control de acceso, el almacenamiento de cifrado de datos y la auditoría del funcionamiento de la base de datos.
Autenticación de usuario: el usuario o programa proporciona su identidad válida a la base de datos, y la base de datos identifica si la identidad del usuario es legítima. Sólo los usuarios legítimos pueden acceder a los datos.
Base de datos. datos. La autenticación del usuario es el requisito previo para todos los mecanismos de seguridad, y sólo a través de la autenticación se puede autorizar el acceso y la auditoría.
Control de acceso: El sistema de gestión de bases de datos asigna diferentes permisos a diferentes usuarios para garantizar que los usuarios solo puedan tener acceso autorizado. En la actualidad, algunas bases de datos grandes (como Oracle, etc.)
adoptan mecanismos de control de acceso basados en roles, es decir, otorgan diferentes roles a los usuarios, como propietario de la base de datos, administrador de seguridad, etc. Los roles permiten el acceso a la base de datos. Realizar diferentes operaciones.
Cifrado de base de datos: la autenticación del usuario y el control de acceso controlan el acceso a la base de datos, pero los atacantes pueden aprovechar las vulnerabilidades del sistema operativo o de la base de datos, o el acceso físico a la computadora, para acceder directamente a los archivos del sistema de la base de datos, evitando así la autenticación y control de acceso, robar o alterar directamente el contenido de la base de datos. Cifrar datos en la base de datos es una forma eficaz de protegerse contra este tipo de amenazas.
Auditoría de operación de base de datos: mecanismo de seguridad que monitorea y registra diversas operaciones realizadas por los usuarios en la base de datos. Registra y almacena las acciones del usuario para un análisis post mortem para examinar qué condujo al estado actual de la base de datos y proporcionar pistas para rastrear a los atacantes. Copia de seguridad y restauración de la base de datos: en caso de una falla irrecuperable de la base de datos, la base de datos se puede restaurar a su estado anterior consistente.
4. Cifrado SQLite
SQLite es de código abierto y tiene una interfaz de cifrado reservada en su código fuente. Podemos implementar la verificación de contraseña y la base de datos implementando su interfaz de cifrado reservada para mejorar. su mecanismo de cifrado.
1. Verificación de contraseña
El archivo de base de datos SQLite es un archivo de texto normal y el acceso a él depende primero del control de acceso al archivo. Sobre esta base, se agrega una verificación adicional de la contraseña, es decir, se debe proporcionar la contraseña correcta al acceder a la base de datos. Si se pasa la verificación, se pueden realizar operaciones como creación, consulta, modificación, inserción, eliminación y modificación en la base de datos. base de datos; de lo contrario, no se permite ningún acceso adicional.
2. Cifrado de la base de datos
Hay dos formas de cifrar la base de datos:
1) El cifrado se implementa en el sistema de gestión de la base de datos (sistema de gestión de la base de datos, DBMS). , es decir, las operaciones de cifrado y descifrado se realizan al leer datos de la base de datos y escribir datos en la base de datos;
2) El cifrado se realiza en la capa de aplicación, es decir, se realizan ciertas operaciones en la base de datos en la aplicación. Es decir, los valores de ciertos campos de la base de datos se cifran en la aplicación y el DBMS gestiona el texto cifrado.
El primero se integra bien con el DBMS y el cifrado es transparente para los usuarios, pero aumenta la carga en el DBMS y requiere la modificación del código original del DBMS; el segundo requiere que la aplicación realice el cifrado de datos; antes de escribir los datos, descifra los datos después de leerlos, lo que aumenta la carga de la aplicación. Aquí, el cifrado a nivel de DBMS se implementa implementando la interfaz de cifrado reservada en el código fuente de SQLite.
3. Utilice el algoritmo xxx-tea para cifrar la base de datos SQLite
El algoritmo de cifrado Tiny (TEA) y sus variantes relacionadas (XTEA, Block TEA, XXTEA) son todos algoritmos de cifrado de paquetes. Estos algoritmos son fáciles de describir y sencillos de implementar (normalmente sólo unas pocas líneas de código).
El algoritmo TEA fue diseñado originalmente en 1994 por David Wheeler y Roger Needham en el Cambridge Computer Laboratory. El algoritmo utiliza una clave de 128 bits para cifrar un bloque de información de 64 bits y requiere 64 iteraciones, aunque el autor cree que 32 rondas son suficientes. El algoritmo utiliza un misterioso delta constante como multiplicador derivado de la proporción áurea para garantizar que cada ronda de cifrado sea diferente. Pero el valor exacto de δ no parece importar aquí; TEA lo define como δ = "(√5 - 1)231" (0×9E3779B9 en el programa).
Más tarde, se descubrió que el algoritmo TEA tenía fallas y los diseñadores propusieron una versión mejorada de TEA, XTEA (a veces llamada "tean"). XTEA utiliza las mismas operaciones simples que
TEA, pero en un orden completamente diferente, cuatro subclaves (la clave original de 128 bits se divide en cuatro subclaves de 32 bits durante el proceso de cifrado) El método de mezcla de claves ) es menos formal, pero más lento, y el objetivo es evitar ataques de escuchas clave.
En el mismo informe que presentó el algoritmo XTEA, también se introdujo otra variante llamada algoritmo Block TEA, que puede operar en cualquier múltiplo de 32 bits de tamaño. El algoritmo aplica la función de ronda XTEA
a cada palabra del bloque por turno y la agrega a sus palabras adyacentes. La cantidad de rondas que se repiten depende del tamaño del bloque de datos, pero se requieren al menos 6
rondas. La ventaja de este enfoque es que no se requiere ningún modo operativo (CBC, OFB, CFB, etc.) y la clave se puede utilizar directamente en el mensaje. Puede ser más eficiente que XTEA para mensajes largos.
En 1998, Markku-Juhani-Saarinen proporcionó un código que puede atacar eficazmente el algoritmo Block TEA, pero poco después, David
J Wheeler (Wheeler) y Luo Roger M. Needham dio una versión revisada del algoritmo TEA de Block, llamado XXTEA. XXTEA
usa una estructura similar a Block TEA, pero usa palabras adyacentes al procesar cada palabra en un bloque. En lugar de utilizar la función de bucle XTEA, utiliza una función MX más compleja que requiere 2 entradas.