Quantcast
Channel: Zine.net online
Viewing all articles
Browse latest Browse all 54

Czy jesteś saperem?

$
0
0

Dziś zabawa dla saperów :) Jeśli należysz do tych szczęśliwców, którzy wiedzą, co powinno znaleźć się na białej poduszce, a do tego nie boisz się uruchomić WinDbg, to zapraszam do dalszej lektury i wspólnej zabawy.

Saper od środka

Bierzemy na ruszt systemowego sapera z Windows XP. Po zakończonej zwycięstwem rozgrywce możemy zrobić zrzut pamięci sapera (np. używając do tego celu procdumpa) i przyjrzeć się bliżej temu, co też w środku siedzi.

Zaczynamy od przeładowania symboli

0:000> .reload /f winmine.exe
0:000> lm
start    end        module name
01000000 01020000   winmine    (pdb symbols)          c:\websymbols\winmine.pdb\3B7D84751\winmine.pdb
5ad70000 5ada8000   uxtheme    (deferred)            
5cb70000 5cb96000   shimeng    (deferred)            
6f880000 6fa4a000   AcGenral   (deferred)            
769c0000 76a74000   userenv    (deferred)            
76b40000 76b6d000   winmm      (deferred)            
77120000 771ab000   oleaut32   (deferred)            
773d0000 774d3000   comctl32   (deferred)            
774e0000 7761d000   ole32      (deferred)            
77be0000 77bf5000   msacm32    (deferred)            
77c00000 77c08000   version    (deferred)            
77c10000 77c68000   msvcrt     (deferred)            
77dd0000 77e6b000   advapi32   (deferred)            
77e70000 77f02000   rpcrt4     (deferred)            
77f10000 77f59000   gdi32      (deferred)            
77f60000 77fd6000   shlwapi    (deferred)            
77fe0000 77ff1000   secur32    (deferred)            
7c800000 7c8f6000   kernel32   (deferred)            
7c900000 7c9af000   ntdll      (pdb symbols)          c:\websymbols\ntdll.pdb\1751003260CA42598C0FB326585000ED2\ntdll.pdb
7c9c0000 7d1d7000   shell32    (deferred)            
7e410000 7e4a1000   user32     (pdb symbols)          c:\websymbols\user32.pdb\D18A41B74E7F458CAAAC1847E2D8BF022\user32.pdb

Wygląda na to, że wszystko mamy. Po kilku chwilach zabawy znajdujemy interesujące nas symbole

0:000> x winmine!*box*
010057a0          winmine!cBoxVisitMac = <no type information>
010010b8          winmine!_imp__MessageBoxW = <no type information>
01003084          winmine!StepBox (<no parameter info>)
010057a4          winmine!cBoxVisit = <no type information>
01005338          winmine!yBoxMac = <no type information>
010031a0          winmine!PopBoxUp (<no parameter info>)
01001120          winmine!_imp__DialogBoxParamW = <no type information>
01005334          winmine!xBoxMac = <no type information>
0100316b          winmine!PushBoxDown (<no parameter info>)
0:000>
x winmine!*bomb*
01002f3b          winmine!CountBombs (<no parameter info>)
01002801          winmine!DisplayBombCount (<no parameter info>)
01002f80          winmine!ShowBombs (<no parameter info>)
01002785          winmine!DrawBombCount (<no parameter info>)
01005194          winmine!cBombLeft = <no type information>
0100346a          winmine!UpdateBombCount (<no parameter info>)
01005330          winmine!cBombStart = <no type information>
0:000> x winmine!*rgb*
01005340          winmine!rgBlk = <no type information>
0:000>
dd winmine!cBombStart L1
01005330 
0000000a
0:000>
dd winmine!xBoxMac L1
01005334 
00000009
0:000>
dd winmine!yBoxMac L1
01005338  00000009

A zatem mamy 10 bomb umieszczonych na planszy 9 x 9. Zróbmy zatem jeszcze zrzut zawartości samej planszy (zrzut powyżej). Dla czytelności część wydruku wyciąłem.

0:000> db /c 20 winmine!rgBlk L160
01005340  10 10 10 10 10 10 10 10-10 10 10 0f
01005360  10 40 41 8e 42 8e 42 8e-41 40 10 0f
01005380  10 40 41 41 42 41 43 42-42 40 10 0f
010053a0  10 41 41 40 40 41 42 8e-41 40 10 0f
010053c0  10 8e 41 40 40 41 8e 42-41 40 10 0f
010053e0  10 42 43 41 41 41 41 41-40 40 10 0f
01005400  10 8e 42 8e 41 40 41 41-41 40 10 0f
01005420  10 42 43 41 41 40 41 8e-41 40 10 0f
01005440  10 8e 41 40 40 40 41 41-41 40 10 0f
01005460  10 41 41 40 40 40 40 40-40 40 10 0f
01005480  10 10 10 10 10 10 10 10-10 10 10 0f

Wynik możemy zapisać jako ciąg {x[i]y[i]}, gdzie x[i] - numer wiersza, y[i] - kolumny, licząc od lewego górnego rogu i zaczynając numerację od '1'. Powyższą rozgrywkę możemy zapisać jako
{13,15,17,37,41,46,61,63,77,81}
a w postaci stringu jako
"13151737414661637781"

Rozbroisz mnie?

Skoro wszystko już jest jasne, to czy znajdzie się jakiś saper, który rozbroi zaminowane pole? Zrobiłem zrzut pamięci, który można ściągnąć stąd, reszta w waszych rękach :) Jako wynik podajcie iloczyn (lub sumę - do wyboru) wszystkich składowych + położenie jednej miny.

I jeszcze na sam koniec. Chodzi mi po głowie przygotowanie złożonej zagadki typu DebugMe (nawiązując do nazwy CrackMe), ale czy byliby jacyś chętni do jej rozwiązania? Jeśli tak, to proszę ujawnijcie się w komentarzach, a poświęcę trochę czasu i coś przygotuję.

(Ilustracja użyta na początku tekstu - autor nieznany, plik ściągnięty z udostępnionych przez Justynę Spychałę na FB).


Viewing all articles
Browse latest Browse all 54

Trending Articles


Patama Quotes – Tanga love tagalog quotes


FORTUITOUS EVENT


Pokemon para colorear


Sapos para colorear


Love Quotes Tagalog


FORECLOSURE OF REAL ESTATE MORTGAGE


RE: Mutton Pies (frankie241)


Hato lada ym dei namar ka jingpyrshah jong U JJM Nichols Roy (Bah Joy) ngin...


Vimeo 10.7.0 by Vimeo.com, Inc.


Long Distance Relationship Tagalog Love Quotes


Vimeo 11.6.0 by Vimeo.com, Inc.


KASAMBAHAY BILL IN THE HOUSE


Girasoles para colorear


mayabang Quotes, Torpe Quotes, tanga Quotes


OFW quotes : Pinoy Tagalog Quotes


Re:Mutton Pies (lleechef)


Ka longiing longsem kaba skhem bad kaba khlain ka pynlong kein ia ka...


Vimeo Create - Video Maker & Editor 1.5.2 by Vimeo Inc


Vimeo 10.7.1 by Vimeo.com, Inc.


UPDATE SC IDOL: TWO BECOME ONE