2012-09-06 2 views
23

원격 VM웨어에서 실행되는 윈도우 7 시스템에서 오늘 C++ 프로젝트를 디버깅까지 시작하고 임의의 메모리 위치에 다음과 같은 패턴을보고 깜짝 놀랐다 :비주얼 패턴이 메모리에 있습니까?

enter image description here

이 코딩 할 수 누가 (그것은 나를 아니에요!) 그리고 어떤 이유로 ?? 누군가가 이와 비슷한 것을 본다면 궁금 할 것입니다.

+5

네, 동의합니다. 그 4 개의 0에 대한 회색 - 레벨 컬러 마스크처럼 보이는. 이전 비트 맵 버퍼에서 그냥 남겨 둘 수 있습니다. 'QQ'와'= P'가 어디에서나 나타나기 시작하지 않는다면 걱정하지 마십시오. 그런 다음 HAL9000이 앱을 망치고 있다고 의심해야합니다. – paddy

+3

적어도 루트킷과 함께 번들 된 해커 그룹에게는 로고가 아닙니다. – tadman

+0

이것은 빈도 해석이 난독 화를 어떻게 이겨낼 수 있는지 보여주는 훌륭한 예입니다. – Mehrdad

답변

22

폰트 (글꼴의 각 문자 (활자체 + 크기 + 스타일)은 메모리에 한 번 렌더링되고 출력면에 블 리치 됨)는 8bpp를 사용하여 폰트를 얻었음을 나타냅니다 앤티 앨리어싱이 활성화되었습니다.

프로젝트에 GUI가 있다고 가정 할 때 GDI가 래스터 글꼴을 저장하는 데 사용하는 공유 메모리 영역을보고있을 수 있습니다.

그렇지 않은 경우 응용 프로그램에서 사용하기 전에 제로화되지 않은 이전 프로세스 또는 OS 구성 요소의 메모리에 남아있을 수 있습니다.

+6

아마도 그들은 그것을 너무 잘 제로로 만들었을 것입니다. –

6

말하기 어렵습니다. 아마도 일부 글꼴 (이 경우 0)이나 버퍼 된 프린터 또는 화면 내용까지 버퍼링하는 데 사용되는 메모리입니다.

+0

8bpp이기 때문에 화면이나 창 버퍼가 아닌 것 같습니다. – Dai

+1

글쎄, 현대적인 디스플레이를 가정하면 네 말이 맞아. 프린터를 포함하도록 답변을 업데이트했습니다. –

+0

신난다, 고마워! 물론, 내가 어떻게 그것을 놓칠 수 있습니다. 나는 처음에 그것을 보았을 때 내가 미쳤다고 생각했다 :) 너무 많은 디버깅 :) – Isso

관련 문제