Red de conocimiento informático - Aprendizaje de programación - Ox00000000 "La instrucción hacía referencia a la memoria "Ox00000000 "que no se puede leer.

Ox00000000 "La instrucción hacía referencia a la memoria "Ox00000000 "que no se puede leer.

Al ejecutar ciertos programas, a veces ocurre un error de memoria y el programa se cierra.

La instrucción "0x " se refiere a la memoria "0x". Esta memoria no se puede "leer".

La instrucción "0x" se refiere a la memoria "0x", que no se puede "escribir".

¿Alguna vez te has encontrado con un problema así? (El contenido después de 0x puede ser diferente)

En términos generales, este fenómeno tiene varios aspectos. Uno es el aspecto del hardware, es decir, hay un problema con la memoria y el otro es el aspecto del software. tiene muchos aspectos.

1. Causado por una vulnerabilidad de desbordamiento del búfer de Microsoft IE

2. Causado por un conflicto de dirección de memoria o de memoria virtual

3. asignado cuando el programa se está ejecutando. La dirección de memoria es utilizada por el programa. Cuando finaliza el programa, se libera espacio para que lo utilicen nuevos programas. A veces, una nueva tarea comienza antes de que finalice el programa. ¡Se debe garantizar mucha memoria o memoria virtual! ¿Cuánta memoria o memoria virtual necesitamos para asegurarnos de que todas las tareas se ejecuten simultáneamente? Quizás Win no haya descubierto este problema, por lo que este error ocurre con frecuencia. Esta situación generalmente ocurre después de ejecutar software o multimedia a gran escala.

3. Este problema también ocurrirá con módulos de memoria inferiores. Si se produce un problema, la posibilidad de problemas de memoria no es alta. Los aspectos principales son: el módulo de memoria está roto, la calidad de la memoria es defectuosa y es más probable que la mezcla de dos marcas diferentes y diferentes capacidades de memoria cause incompatibilidad. . En general, los principales problemas son: el módulo de memoria está roto, la calidad de la memoria es defectuosa y es más probable que la mezcla de dos marcas diferentes y diferentes capacidades de memoria cause incompatibilidad. Puede comprobar la memoria utilizando el software MemTest, que comprueba minuciosamente la estabilidad de la memoria. Si tiene RAM dual y módulos de memoria mixtos de diferentes marcas, o si este problema ocurre al comprar RAM de segunda mano, entonces debe verificar si la memoria está defectuosa o es incompatible con otro hardware.

4. Vulnerabilidad del sistema Microsoft WINDOWS.

La dirección de memoria de Windows 0X00000000 a 0X0000ffff se designa como el rango de direcciones para asignar punteros nulos. Si el programa intenta acceder a esta dirección, se considera. un error. Los programas escritos en C/C++ generalmente no realizan una verificación de errores estricta. Cuando se usan programas escritos en C/C++, generalmente no se realiza una verificación de errores estricta cuando se usa malloc para asignar memoria, si no hay suficiente espacio de direcciones para la asignación. Devuelve un puntero nulo. Sin embargo, el código no verifica este error y, en cambio, piensa que la asignación de la dirección se realizó correctamente y, por lo tanto, accede a la dirección 0X00000000. Como resultado, se produce una infracción de acceso a la memoria y el proceso finaliza. Cuando el archivo pif está compuesto de relleno de caracteres ASCII, se producirá la siguiente situación: un archivo pif ilegal (lleno de caracteres ascii \''x\'') necesita al menos 369 bytes antes de que el sistema lo considere legal. documento. Un archivo pif ilegal (lleno de caracteres ascii) necesita al menos 369 bytes antes de que el sistema lo considere un archivo pif legal, luego mostrará el ícono pif y luego tendrá "Programa, Fuente, Memoria, Pantalla" en su contenido de propiedades. El error del programa no aparece al ver la página de propiedades "Programa" solo si el tamaño del archivo que no es pif es de 369 bytes, ni siquiera de 370 bytes. Al visualizar la página "Programas" de un atributo de archivo pif ilegal de más de 369 bytes, el administrador de recursos mostrará un mensaje de error: La directiva \ hace referencia a la memoria. La memoria no se puede leer El problema radica en la dirección hexadecimal del archivo pif: 0x00000181[0x87]0x00000182[0x01] y 0x00000231[0xC3]0x00000232[0x02], aunque sea un archivo pif legal, siempre y cuando lo cambies. Cualquiera de estos cuatro lugares provocará un error en el programa.

Siempre que los valores de 0x00000181 y 0x00000182 se cambien a [0xFF][0xFF], cualquier otro cambio de dirección no provocará un error.

5. Puede ser que el servicio apache no esté completamente instalado y no se haya iniciado correctamente; es necesario cambiar el servicio OracleOraHomeXXHTTPServer para detenerlo.

6. El programa de falla de asignación necesita un pedazo de memoria con k9 para guardar datos, requiere llamar a la "función función" proporcionada por el sistema operativo. Al aplicar la "función función", si la asignación de memoria es exitosa, la función función devolverá la dirección del área de memoria recién abierta al programa de aplicación, y el programa de aplicación puede usar esta memoria a través de esta dirección. Esto se denomina "asignación de memoria dinámica" y las direcciones de memoria también se denominan "punteros" en programación. La memoria no siempre está disponible y, a veces, falla la asignación de memoria. Cuando la asignación falla, la función del sistema devuelve un valor de 0. El valor de retorno "0" ya no representa un puntero recién habilitado, sino que es una notificación del sistema a la aplicación de que se ha producido un error. Como aplicación, después de cada solicitud de memoria, debes verificar si el valor de retorno es 0. Si es 0, indica una falla y se deben tomar algunas medidas para rescatarlo, mejorando así la "robustez" del programa. Si la aplicación no busca este error, "piensa" que el valor es un puntero para liberar la memoria que se le ha asignado y continúa usando esa memoria en ejecuciones posteriores. El área de memoria real en la dirección 0 almacena la "tabla de descriptores de interrupción" más importante del sistema informático y las aplicaciones nunca pueden usarla. En un sistema operativo sin un mecanismo de protección (como DOS), escribir datos en esta dirección provocará un bloqueo inmediato. En un sistema operativo potente como Windows, esta operación será capturada inmediatamente por el mecanismo de protección del sistema, provocando que el sistema operativo. forzar el cierre de la aplicación infractora para evitar que se expanda. En este caso, se produce el error "Escribir en la memoria" anterior e indica que la dirección de memoria a la que se hace referencia es "0x00000000". Hay muchas razones por las que falla la asignación de memoria, incluida memoria insuficiente, discrepancia en la versión de la función del sistema, etc. Por lo tanto, este tipo de falla en la asignación es más común después de que el sistema operativo se ha utilizado durante mucho tiempo, se han instalado varias aplicaciones (incluidos programas de virus que se han "instalado" involuntariamente) y una gran cantidad de parámetros y archivos del sistema. han sido cambiados.

7. La aplicación hace referencia incorrecta al puntero de memoria anormal. En aplicaciones que utilizan asignación dinámica, a veces habrá una situación en la que el programa intenta leer y escribir una parte de la memoria que "debería estar disponible". pero debido a cierto Por alguna razón, el puntero utilizable esperado ha caducado. Esto podría ser que el programa "olvidó" pedirle al sistema operativo que asigne memoria, o podría ser que el programa mismo cerró la sesión de la memoria en algún momento y "no se dio cuenta", etc. El sistema recuperará memoria. Una vez que el sistema recupera la memoria no registrada, sus derechos de acceso ya no pertenecen a la aplicación. Por lo tanto, las operaciones de lectura y escritura también activarán el mecanismo de protección del sistema. El único resultado para un programa que intenta "violar la ley" es. será cancelado y todos los recursos serán reclamados. ¡Las leyes del mundo de la informática siguen siendo mucho más efectivas y estrictas que las leyes de los humanos! Situaciones como ésta son errores en el propio programa y, por lo general, el error se puede reproducir en una secuencia específica de operaciones. Los punteros no válidos no siempre son 0, por lo que la dirección de memoria en el mensaje de error no siempre es "0x00000000", sino algún otro número aleatorio.

------------------------------------------- ---------------

Si el mensaje de error anterior aparece con frecuencia en el sistema, las siguientes sugerencias pueden ser útiles:

1 Busque en el sistema troyanos o virus. Estos programas a menudo modifican irresponsablemente el sistema para lograr el propósito de controlarlo, provocando anomalías en el sistema operativo. Siempre debe fortalecer su conciencia sobre la seguridad de la información y nunca sentir curiosidad por los programas ejecutables de origen desconocido.

2. Actualice el sistema operativo para que el programa de instalación del sistema operativo vuelva a copiar la versión correcta de los archivos del sistema y corrija los parámetros del sistema. A veces puede haber errores en el propio sistema operativo, así que asegúrese de instalar las actualizaciones publicadas oficialmente.

3. Pruebe una nueva versión de la aplicación.

4. Elimine y luego vuelva a crear los archivos en la carpeta Winnt\\System32\\Web\\Repository: haga clic derecho en Mi PC en el escritorio y luego haga clic en Administrar. En Servicios y aplicaciones, haga clic en Servicios y luego cierre y detenga el servicio Instrumental de administración de Windows. Elimine todos los archivos en la carpeta Winnt\\System32\\Wbem\\\\Repository. (Abra Servicios y aplicaciones, haga clic en Servicios y luego abra e inicie el servicio Instrumental de administración de Windows. Después de reiniciar el servicio, los archivos se volverán a crear según la información proporcionada en la siguiente clave de registro:

HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\WBEM\\CIMOM\\Autorecover MOFs

A continuación lo analizaré a través de varios ejemplos

Ejemplo 1: Abrir Internet Explorer o en unos minutos Después de eso, la instrucción "0x70dcf39f" se refiere a la memoria "0x00000000". Esta memoria no se puede "leer". Para finalizar el programa, haga clic en el cuadro de mensaje "Aceptar" y luego "Se produjo un error interno y aparecerá una ventana en uso". se cerrará pronto". Una vez que se cierre el mensaje, Internet Explorer también se cerrará.

Solución: Repare o actualice Internet Explorer y aplique un parche. Una solución que he visto es: Autoactualización de Win2000 significa actualizar Win2000 a Win2000 De hecho, este método también restaura el sistema a su estado inicial. Por ejemplo, si su IE se actualiza a 6.0, será reemplazado por IE5.0 después de la actualización automática. 2: Haga doble clic en el archivo "AutoRun.exe" en el CD en Windows XP y mostrará que la instrucción "0x77f745cc" se refiere a 0x00000078. La instrucción "0x77f745cc" se refiere a la memoria 0x00000078. Para finalizar el programa, haga clic en "Aceptar" mientras se ejecuta normalmente en Windows 98.

Solución: Esto puede ser un problema de compatibilidad del sistema en sistemas winXP, haga clic derecho en "AutoRun.exe Archivo, Propiedades". Compatibilidad, seleccione "Ejecutar este programa en modo de compatibilidad" y seleccione "Windows 98/Me". Si tiene un SP parcheado, simplemente inicie Ejecutar, ingrese: regsvr32 c:\\winnt\\\\apppatch\\\\slayerui. .dll. También aparecerán las propiedades y la opción de compatibilidad.

Ejemplo 3: Error de apagado de RealOne Gold Solía ​​funcionar bien, pero cada vez que apagué recientemente, aparece el mensaje "0xffffffffff". " el comando haría referencia a la memoria "0xffffffffffff".

Solución: utilice el método de entrada Microsoft Pinyin 2003 y cierre RealOne con la barra de idioma oculta. Este problema ocurre (el problema no ocurre cuando la barra de idioma no está oculta ), por lo que puede resolver este problema mostrando la barra de idioma antes de cerrar RealOne o utilizando cualquier otro método de entrada como método de entrada actual.

Ejemplo 4: Desde que me conecté, mi Howie's SuperSolver no ha podido reproducirse. Cada vez que aparece "0x060692f6" (cambia cada vez), la memoria a la que hace referencia el comando "0xff000011" no se puede leer. " y por lo tanto no se puede leer. lee", para finalizar el programa, pulse "OK".

Solución: intente reinstalar "Haojie Super Unicode". Si se reinstala, descargue la versión correspondiente del parche del sitio web oficial y pruébelo. Si no funciona prueba a cambiar de reproductor.

Ejemplo 5: haga doble clic en el acceso directo del juego, el comando "0x77f5cd0" hace referencia a la memoria "0xffffffffff", la memoria no se puede "leer" y se genera un error en el programa Client.dat.

Solución alternativa: reinstale el controlador más reciente para su tarjeta gráfica y luego descargue e instale DirectX 9.0.

Ejemplo 6: Un amigo me envió un mensaje y mi computadora mostró un mensaje de error: la instrucción "0x772b548f" hacía referencia a la memoria "0x00303033". 0x00303033 "Memoria, la memoria no se puede" escribir "y luego QQ se desconecta automáticamente. Cuando abro QQ nuevamente, encuentro que ha enviado más de una docena de mensajes.