시스템 질문?
< /p>
일부 프로그램을 실행할 때 메모리 오류 메시지가 나타난 다음 프로그램이 닫히는 경우가 있습니다.
' 0x' 명령이 참조하는' 0x' 메모리. 이 메모리는 "read" 가 될 수 없습니다.
' 0x' 디렉티브에서 참조하는' 0x' 메모리이며' written' 이 될 수 없습니다. < /p>
이런 고장이 난 적이 있습니까? (0x 뒤의 내용은 다를 수 있습니다. ) < /p>
일반적으로 이 현상은 하드웨어, 즉 메모리 문제, 소프트웨어 등 여러 가지 문제가 있습니다. < /p>
1, Microsoft IE 버퍼 오버플로 취약점으로 인해 < /p>
2, 메모리 또는 가상 메모리 주소 사용 충돌이 발생하여 < /p>
프로그램을 실행하려면 프로그램 사용에 특정 메모리 주소를 할당해야 하며, 프로그램이 끝나면 새 프로그램에 사용할 공간을 확보해야 합니다 Win 은 이 문제에 대해 잘 처리하지 못했기 때문에 이 오류가 자주 발생할 수 있습니다. 일반적으로 대형 소프트웨어나 멀티미디어를 실행한 후 이런 상황이 발생할 수 있습니다. < /p>
3, 저질 메모리에도 이 문제가 발생할 수 있습니다. < /p>
일반적으로 메모리에 문제가 발생할 가능성은 크지 않습니다. 주된 측면은 내부입니다. MemTest
소프트웨어를 사용하여 메모리를 감지할 수 있습니다. 메모리 안정성을 완전히 감지할 수 있습니다. < /p>
듀얼 메모리이고 다른 브랜드의 메모리 스틱이 섞여 있거나 중고 메모리를 구입할 때 이 문제가 발생하면 메모리에 문제가 있는지 또는 다른 하드웨어와 호환되지 않는지 확인해야 합니다. < /p>
4, Microsoft WINDOWS 시스템의 취약점,
windows 는 메모리 주소 0X00000000 ~ 0X0000ffff 를 null 포인터가 할당된 주소 범위로 지정하는데, 프로그램이 이 주소에 액세스하려고 하면 C/c++ 로 작성된 프로그램은 일반적으로 엄격한 오류 검사를 수행하지 않으며, malloc 을 사용하여 메모리를 할당하고 할당 가능한 주소 공간이 부족한 경우 null 포인터를 반환합니다. 그러나 코드는 이 오류를 확인하지 않고 주소 할당이 성공했다고 생각하여 0X00000000 의 주소에 액세스하면 메모리 위반 액세스가 발생하고 프로세스가 종료됩니다. < /p>
ASCII 문자가 구성된 pif 파일을 채우면 다음과 같은 상황이 발생합니다. < /p>
ascii 문자 \'x\' 로 채워진 잘못된 pif 파일이 최소 369 바이트여야 시스템이 1 로 간주됩니다 또한 pif 가 아닌 파일의 크기가 369 바이트인 경우에만 속성의 프로그램 페이지를 볼 때 370 바이트라도 프로그램 오류가 발생하지 않습니다. 369 바이트보다 큰 잘못된 pif 파일에 대한 속성의 프로그램 페이지를 보면 Explorer 에서 \' * * * \' 지시어가 참조하는 \' * * * \' 메모리를 묻는 오류가 발생합니다. 이 메모리는 pif 파일의 16 진수 주소:
0x00000181 [0x87] 0x000000182 [로 인해 문제가 발생할 수 없습니다
반면 < /p>
만 0x00000181 및 0x00000182 의 값을 [0xFF][0xFF] [0xff] 로 변경하려고 하면 다른 주소를 임의로 변경해도 오류가 발생하지 않습니다 < /p>
. < /p>
5, Apache 서비스가 완전히 제대로 설치되지 않고 시작된 이유 서비스 중 < /p>
oracleorahomexxhttpserver 를 정지 < /p>
6 으로 변경하고 애플리케이션이 메모리 할당을 확인하지 못한 경우
프로그램에 데이터를 저장할 메모리가 필요한 경우 이것이 바로 "동적 메모리 할당" 입니다. 메모리 주소는 프로그래밍의 "포인터" 입니다. < /p>
메모리가 항상 채용되는 것은 아니며, 때로는 메모리 할당도 실패하는 경우도 있습니다. 할당이 실패하면 시스템 함수가 0 값을 반환합니다. 이 경우 반환 값 "0" 은 새로 활성화된 포인터를 나타내는 것이 아니라 오류가 발생했음을 알리는 알림을 응용 프로그램에 보냅니다. 응용 프로그램으로서 메모리를 신청할 때마다 반환 값이 0 인지 확인해야 하며, 만약 그렇다면 고장이 발생했음을 의미하며, 몇 가지 조치를 취해야 합니다. 이로 인해 프로그램의' 견고성' 이 향상됩니다. < /p>
애플리케이션에서 이 오류를 확인하지 않으면' 사고 관성' 에 따라 이 값이 할당된 사용 가능한 포인터로 간주되어 이후 실행에서 이 메모리를 계속 사용합니다. 실제 0 주소 메모리 영역은 컴퓨터 시스템에서 가장 중요한' 인터럽트 설명자 테이블' 을 저장하며 응용 프로그램은 절대 사용할 수 없습니다. 보호 메커니즘이 없는 운영 체제 (예: DOS) 에서는 이 주소에 데이터를 쓰면 즉시 작동이 멈추고, Windows 와 같은 강력한 운영 체제에서는 시스템의 보호 메커니즘에 의해 즉시 캡처됩니다. 그 결과 운영 체제에서 오류가 발생한 응용 프로그램을 강제로 종료하여 오류가 확대되는 것을 막을 수 있습니다. 위의 "메모리 쓰기" 오류가 발생하고 참조된 메모리 주소가 "0x00000000" 임을 나타냅니다. < /p>
메모리 할당 실패 원인은 다양하며 메모리 부족, 시스템 기능 버전 불일치 등이 영향을 미칠 수 있습니다. 따라서 이러한 할당 실패는 운영 체제가 오래 사용한 후 실수로 "설치" 된 바이러스 프로그램을 포함한 다양한 어플리케이션을 설치한 후 많은 시스템 매개변수와 시스템 파일을 변경한 후에 발생합니다. < /p>
7, 애플리케이션이 자체 버그로 인해 비정상적인 메모리 포인터를 참조함 < /p>
동적으로 할당된 애플리케이션을 사용하는 경우 프로그램이' 사용 가능해야 한다' 는 메모리를 읽고 쓰려고 하지만 왠지 이 예상되는 사용 가능한 포인터는 "잊어버렸어" 운영 체제에 할당을 요청했거나, 프로그램 자체가 어느 시점에서 이 메모리를 로그아웃하고 "주의하지 않았다" 는 등의 문제가 있을 수 있습니다. 로그아웃된 메모리는 시스템에 의해 회수되고, 액세스 권한은 더 이상 해당 애플리케이션에 속하지 않으므로 읽기 및 쓰기 작업도 시스템의 보호 메커니즘을 트리거합니다. "위법" 을 시도하는 프로그램의 유일한 끝은 작동 종료로 모든 자원을 회수하는 것입니다. 컴퓨터 세계의 법률은 여전히 인간보다 훨씬 효과적이고 엄하다! < /p>
이와 같은 경우는 프로그램 자체의 버그로, 특정 작업 순서에서 오류를 재현하는 경우가 많습니다. 잘못된 포인터가 항상 0 인 것은 아니므로 오류 프롬프트의 메모리 주소도 반드시 "0x00000000" 이 아니라 다른 임의의 숫자입니다.
--------------- 이러한 프로그램은 시스템을 통제하기 위해 종종 무책임하게 시스템을 수정하여 운영 체제 이상을 초래한다. 평소에는 정보 보안 의식을 강화해야 하며, 출처가 알려지지 않은 실행 절차에 대해서는 전혀 궁금하지 않다.
< /p>
2. 운영 체제를 업데이트하여 운영 체제 설치 프로그램이 올바른 버전의 시스템 파일을 다시 복사하고 시스템 매개 변수를 수정하도록 합니다. 운영 체제 자체에도 버그가 있을 수 있으므로 공식적으로 발표된 업그레이드 프로그램을 설치하는 데 주의해야 합니다. < /p>
3. 새 버전의 애플리케이션을 시험해 봅니다. < /p>
4, winnt \ \ system32 \ \ WBEM \ \ repository 폴더에 있는 파일 삭제 및 다시 만들기: < /p>
바탕 화면에서 내 컴퓨터를 마우스 오른쪽 버튼으로 클릭합니다 < /p>
서비스 및 애플리케이션 에서 서비스 를 클릭한 다음 windows management
instrumentation 서비스를 종료 및 중지합니다. < /p>
winnt \ \ system32 \ \ WBEM \ \ repository
폴더에 있는 모든 파일을 제거합니다. (삭제하기 전에 이러한 파일의 백업 사본을 만드십시오. ) < /p>
서비스 및 애플리케이션 열기, 서비스 클릭, windows management
instrumentation 서비스 열기 및 시작. 서비스가 다시 시작되면 다음 레지스트리 키에 제공된 정보를 기반으로 파일이 다시 작성됩니다.
HKEY _ local _ machine \ \ software \ \ Microsoft \ \ www Tid=627383amp;; Fpage=1amp;; Highlight=
다음은 몇 가지 예를 들어 분석해 보겠습니다. < /p>
예 1: IE 브라우저를 열거나 몇 분 안에' 0x70dcf39f' 명령이 참조하는' 0x00000000 이 메모리는 "read" 가 될 수 없습니다. 프로그램을 종료하려면 "확인" 의 메시지 상자를 클릭하고 "확인" 을 클릭하면 "내부 오류 발생, 사용 중인 창 중 하나가 곧 닫힙니다" 라는 메시지 상자가 나타납니다. 이 메시지를 닫으면 IE 브라우저도 닫힙니다. < /p>
해결 방법: 패치와 함께 IE 브라우저를 복구하거나 업그레이드합니다. 수리 방법 중 하나는 Win2000 자체 업그레이드, 즉 Win2000 을 Win2000 으로 업그레이드하는 것입니다. 실제로 이 방법은 시스템을 초기 상태로 복원하는 것입니다. 예를 들어 IE 를 6.0 으로 업그레이드하면 업그레이드 후 IE5.0 으로 대체됩니다. < /p>
예 2: windows
xp 에서 CD 에 있는' AutoRun.exe' 파일을 두 번 클릭하여' 0x77f745cc' 명령에 의해 참조되는' 0x77f745cc' 를 표시합니다. 이 메모리는' written' 이 될 수 없습니다. 프로그램을 종료하려면' 확인' 을 클릭하십시오. Windows
98 에서는 정상적으로 작동합니다. < /p>
해결 방법: 시스템 호환성 문제, winXP 시스템,' AutoRun.exe' 파일, 속성, 호환성을 마우스 오른쪽 단추로 클릭하고' 호환성 모드에서 이 프로그램 실행' 항목을 선택한 다음' 을 선택합니다 Win2000 SP 패치 적용 후 시작, 실행, 입력: regsvr32
c: \ \ winnt \ \ appatch \ \ slayerui 마우스 오른쪽 버튼, 속성, 호환성 옵션도 나타납니다. < /p>
예 3: RealOne
Gold 를 닫을 때 오류가 발생했고, 이전에는 정상적으로 사용되었지만 최근에는 닫을 때마다' 0xffffffff' 명령이 참조하는' 0xfffffff' 가 나타납니다 이 메모리는 "읽기"
프롬프트가 될 수 없습니다.
< /p>
해결 방법: Microsoft 병음 입력기 2003 을 사용하고 언어 막대를 숨길 때 (숨기지 않을 때 문제 없음) RealOne 을 닫으면 이 문제가 발생하므로 RealOne 을 닫기 전에 언어 막대를 표시하거나 다른 입력기 중 하나를 현재 입력기 으로 사용하여 이 문제를 해결할 수 있습니다. < /p>
예 4: 제 호걸슈퍼해패는 인터넷 이후 재생할 수 없습니다. 매번' 0x060692f6' (변경 때마다) 명령어가 참조하는' 0xff000011' 메모리는' read' 가 될 수 없습니다. 프로그램을 종료하세요 < /p>
해결 방법: 호걸 슈퍼해패를 다시 설치해 보고, 다시 설치한 후에도 공식 홈페이지에서 해당 버전의 패치를 다운로드해 보세요. 아직 안 돼, 어쩔 수 없이 바꿔서 다른 플레이어로 해봐. < /p>
예 5: 게임에 대한 바로 가기를 두 번 클릭합니다. "0x77f5cd0" 명령은 "0xffffff" 내에 < /p>
저장된 메모리를 참조합니다. 이 메모리는 "read" 가 될 수 없습니다 < /p>
해결 방법: 비디오 카드에 대한 최신 드라이버를 다시 설치한 다음 DirectX9.0 을 다운로드하여 설치합니다. < /p>
예 6: 한 친구가 메시지를 보내면 내 컴퓨터에' 0x772b548f' 명령이 참조하는' 0x00303033' 메모리가' written' 이 될 수 없다는 오류 메시지가 나타납니다 < /p>
해결 방법: 상대방이 QQ 를 이용하는 버그로, 특별한 코드를 보내고, QQ 를 잘못 만들어서 패치하거나 최신 버전으로 업그레이드하면 됩니다. < /p>
몇 가지 자료를 수집했습니다. 도움이 되기를 바랍니다! ! < /p >