그럼 하나씩 풀어보죠 우선 user32.dll파일 이 놈부터..
user32.dll은 윈도우를 사용하면서 사용자에게서 들어오는 입력이나 마우스등등을 받아서 win32 API를 호출할때 사용되는 파일입니다. 풀어서 이야기 하자면 입력이 들어오면 키보드나 마우스 그래픽와 관련된 .vxd 드라이버를 불러들이는 역활을 합니다.
그러니까 윈도우에서 어떤 프로그램을 사용하던 이 파일을 사용하겠지요
다음 오류 메시지 "stack 오버플로우"를 보자구요.. 프로그램(프로세스)들이 실행하는 영역을 먼저 설명해야 할것 같군요
프로그램들은 실행이 될때 보통 메모리영역을 4G까지 사용할 수 있는 가상메모리영역을 잡아 놓습니다. 이것은 제작자들이 프로그래밍을 할때 일반적으로 사용하는 코딩입니다. 그런데 이 영역을 다른 프로그램들이 실행이 되면서 침범을 하면 생길 수 있습니다
STACK 이란 놈을 보면 스택은 레지스터라는 cpu에 있는 메모리에서 운영이 되는데 위의 질문 내용중에서 에러코드 부분에 EBP라고 하는 것이 인텔계열 CPU에서 사용되는 레지스터에서 사용되는 스택의 주소 입니다. 어려운 말로는 스택의 시작점이라고 해서 스택포인터(SP)라고 합니다.
쉽게 설명을 하자면 스택이라는 메모리는 운영하는 방법이 낙후되서 한방향으로만 데이타를 input, output를 하는데 한방향으로만 데이타를 주고 받으니까 주고 받을수 있는 주소가 바로 스택포인트라는 것이고 이 주소가 통로가 됩니다.
그럼 STACK 과 프로그램과는 어떤 관계냐...
우선 프로그램의 구조를 보면 4가지 구조를 가집니다.
TEXT 프로그램의 전체진행(instruction)에 관한 정보를 가지고 있고 DATA 프로그램에서 사용되는 변수들에 대한 정보 HEAP 프로그램을 사용하다 보면 어떻게 메모리를 사용해야 되는지에 대한 정보 STACK 프로그램에서 들어오는 각종 함수콜을 받아서 프로그램의 시작을 알리는 역활 을 가지고 있으므로 stack 단에서 에러가 나면 프로그램을 종료를 시킵니다.
자 그럼 다음카페와 user32.dll과 익스플로러와의 삼각관계를 통합적으로 분석하자면
다음카페를 안들어가 진다는 것을 볼때 먼저 다른 인터넷 사이트는 잘 접속이 되서 서핑이 되는지 확인을 하세요 물론 익스플로러의 고장이 있는지 확인하는 절차입니다.
위쪽 그림에서 보면 익스플로러에서 user32.dll를 쓰고 있는데 다른 사이트와의 잘 되는지에 대한 테스트 결과를 얻기 위해서 입니다.
다음 카페나 다른 사이트나 같은 결과라면 사용자의 윈도우 전체에 대한 문제이지만 다음 사이트에서만 그럴 경우에는 다음 사이트에 서버 부하에 의한 경우일 가능성 많습니다.
시간을 기다리는 것이 좋겠습니다.
|