2012-09-06 15 views
23

uruchomieniu zdalnego debugowania C projekt ++ dzisiaj na Win 7 maszynie działającej w VMWare i był zaskoczony, aby zobaczyć następujący wzór na losowej lokalizacji pamięci:Wzorce wizualne w pamięci?

enter image description here

Kto może kodować ten (to nie ja!) i z jakiego powodu? Po prostu ciekawy, czy ktoś widział coś takiego.

+5

Tak, zgodzili się. Te wyglądają jak maski kolorów na poziomie szarości na cztery zera. Może to być porzucenie starego bufora bitmapowego. Nie przejmuj się tym, chyba że zaczniesz widzieć wszędzie "QQ" i "= P". Wtedy powinieneś podejrzewać, że HAL9000 miesza się z twoją aplikacją. – paddy

+3

Przynajmniej nie jest to jakieś logo dla grupy hakerów w pakiecie z rootkitem. – tadman

+0

To jest niesamowity przykład tego, jak analiza częstotliwości może pokonać zaciemnianie. – Mehrdad

Odpowiedz

22

Wygląda jak wyrenderowana maska ​​dla czcionki (każdy znak w czcionce (krój pisma + rozmiar + styl) jest renderowany raz w pamięci, a następnie nakładany na powierzchnię wyjściową) za pomocą 8bpp, co sugeruje, że masz czcionkę włączono anty-aliasing.

Jestem zakładając swój projekt obejmuje GUI, może być patrząc na obszarze podziałem pamięci że GDI wykorzystuje do przechowywania czcionek rastrowych.

Jeśli nie, to może być tylko resztki pamięci z poprzedniego procesu lub składnik systemu operacyjnego, który nie został wyzerowany przed użyciem przez aplikację.

+6

Być może wyzerowali to trochę zbyt dobrze. –

6

Trudno powiedzieć. Prawdopodobnie pamięć służy do buforowania niektórych czcionek (w tym przypadku zer), a nawet buforowanej zawartości drukarki lub ekranu.

+0

Jest mało prawdopodobne, aby był z bufora ekranu lub okna, ponieważ ma 8bpp. – Dai

+1

Cóż, zakładając nowoczesny wyświetlacz, masz rację. Zaktualizowałem swoją odpowiedź, dodając drukarki. –

+0

Niesamowite, dzięki! Oczywiście, jak mógłbym tęsknić. Myślałem, że zwariowałem, kiedy pierwszy raz to zobaczyłem :) Zbyt dużo debugowania :) – Isso