dll

USER32.DLL에서 IEXPLORE 스택 오류 발생

sungtg 2007. 10. 30. 10:20

질 문

얼마전까지 잘 됐어는데 저희 누나가 건드린이후로
카페를 클릭하면

04x!:bff5253c의 모듈 USER32.DLL에서 IEXPLORE 스택 오류 발생.
Registers:
EAX=04972044 CS=0167 EIP=bff5253c EFLGS=00010206
EBX=04a6eb34 SS=016f ESP=04971ff0 EBP=04972030
ECX=0000c051 DS=016f ESI=0000000f FS=332f
EDX=0001aee4 ES=016f EDI=00000000 GS=0000
BCS:EIP:에 바이트 수
66 ff 75 08 e8 99 5d 00 00 50 ff 15 d6 12 f5 bf
Stack dump:
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 04972044 04a6eb34 04972044 04972258 bfbcb038 0000c051

닫기 눌르는거 나오고 '자세히' 누르면 위에처럼 나오네요 --
어떻할까요 ?

저 다음 카페 안되면 안되요
제발 도움 좀 주세요

분석


그럼 하나씩 풀어보죠
우선 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를 쓰고 있는데
다른 사이트와의 잘 되는지에 대한 테스트 결과를 얻기 위해서 입니다.

다음 카페나 다른 사이트나 같은 결과라면 사용자의 윈도우 전체에 대한 문제이지만
다음 사이트에서만 그럴 경우에는
다음 사이트에 서버 부하에 의한 경우일 가능성 많습니다.

시간을 기다리는 것이 좋겠습니다.

추 가


첫번째로 바이러스& 악성코드 체크를 하세요
바이러스에 의해 감염이 된 프로그램의 경우 일정한 메모리주소를 불러서
실행되던 것이 자기가 실행될 메모리 영역을 놓치는 경우가 많습니다.

일반적으로 카페는 게시판에 웹에디터를 사용하므로
이것과 관련된 Active-x를 다운받은 후에 시작이 되게 되어 있는데
그래서 게시판의 흔적을 모두 삭제를 해서 초기화를 시킨후
다시 다음카페에 접속을 하되..
일반적인 게시판 가입인사라든지 등등 게시판부터 서서히 들어가 보세요

윈도우의 user32.dll에 취약성이 발견이 되었다고 보고 된 바가 있어서
패치도 같이 해야 합니다.