                     _______                   ______
                     |   _   |-----.--.--.-----.   _  \
                     |   1___|  -__|  |  |  -__|.  |   |
                     |____   |_____|\___/|_____|.  |   |
                     |:  1   |                 |:  |   |
                     |::.. . | POLISH CRACKERS |::.|   |
                     `---===='__             __`-==_---'
                        |       |-----.---.-.   Y   |
                        |.|   | |  -__|  _  |.      |
                        `-|.  |-'_____|___._|. \_/  |
                          |:  |             |:  |   |
                          |::.|             |::.|:. |
                          `---'             `--- ---'

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=i n f o r m a t i o n s-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

   prog name   : Bomb CrackMe by ToMKoL
   Date        : 07/11/2000
   Writen by   : Mr. Ketchup
   What        : tutorial

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-t u t o r i a l-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Czesc!

W tym tutorialu opisze sposob zlamania Bomb CrackMe by Tomkol
Programik ten powinien byc dolaczony do pliku "zip" w ktorym byl ten tekst.

Co bedzie nam potrzebne: 
1)-SoftIce x.xx
2)-Hiev im nowszy tym lepszy
3)-ProcDump
4)-Ewentualnie jakis detektor czym jest exe spakowany
5)-Mozg - z tym moze byc najtrudniej ale musicie sobie poradzic.

UWAGA. Odpalaj bombe z archiwum zip o ile nie chcesz aby twoj Win zamykal sie po trzech blednych 
       kodach. W katalogu c:\windows\system tworzy sie plik zamwin.exe. Po skonczonej pracy 
       sprawdz czy go tam nie ma. Jak jest to usun. Inaczej WinGroza bedzie Ci sie zamykac 
       po minucie od uruchomienia.


No to odpalamy Bombe i widzimy checkbox'y. Zaznaczamy jakies i zastawiamy pulapke na 

 bpx isdlgbuttonchecked

Ale co to. Widzimy napisa "bpx not allowed". Spoko ja was nie zostawie z tym na lodzie 
jak robia to inni. No wiec zakladamy dodatkowo pulapke na "bpx messageboxa"
I klikamy na OK. Progra sie zlapal wiec teraz F11. No i nas wywalilo do Win. Teraz klikamy na OK
i znowu jestesmy w SI. Teraz przejedz troche do gory az do linijki 

 004014E9  jmp 004016E2

pod ta linijka jest kilka push. Zapisz sobie adres tego pierwszego. Jest to 004014EE. 
I znowu przesuwamy sie troche do gory. Dosyc sporo. I widzimy ze w linijce 004010DF jest skok
do 004014EE czyli do wiadomosci ze bpx jest zalorzony. No wiec teraz odpalamy Hiev i szukamy
tego miejsca.  I znowu mamy klopot bo taki adres nie istnieje. Pewnie prog jest spakowany.
TomKoL sprytnie ukryl nazwe pakera. Na jej miejsce wpisal jakis teks. I teraz mozna wybrac
jedna z dwoch metod. Albo odpalamy prog ktory znajdzie nam rodzaj pakera albo zdajemy sie na 
szczescie. Ja wybralem to drugie. W ProcDumpie wybralem UPX i to byl trafny wybor.
Teraz ponownie odalamy Hiev i adres ktorego szukamy juz jes(004010DF).Teraz tylko trzeba 
zmienic na taki skok aby ten messagebox nigdy nie wyskoczyl. Ja zmienilem na "jc" (skacz jesli
nastapilo przeniesienie carry)
No to czesci zadania wykonana. 
Teraz pulapka isdlgbuttonchecked zacznie dzialac. No wiec zaznaczamy checkbox'y i po te czynnosci
dopiero zakladamy pulapke isdlgbutton... Jak pulapka jest zalorzona to klikamy na check.
I widzimy ze jezeli checkbox jest wcisniety to do wartosci z pod adresu 00404148 dodawana 
jest wartosc checkboxa (kazdy checkbox ma inna wartosc!). Natomiast pod adresem 0040414C jest
zliczana ilosc wcisnietych checkbox'ow. Jak przejdziemy przez sprawdzanie checkboxow to mamy cos 
takiego:


004014BC: A148414000            mov       eax,[000404148]<--suma naszych checkbox'ow
004014C1: 8B1D4C414000          mov       ebx,[00040414C]<--ilosc zaznaczonych chceckbox'ow
004014C7: F7EB                  imul      ebx            <-mnozenie sumy chec..z iloscia chec..
004014C9: C1C007                rol       eax,007 ;""   <-rolowanie tej wartosci z mnozenia
004014CC: 3500AE0C0             xor       eax,0000CAE00  <-xorowanie z CAE00
004014D1: 85C0                  test      eax,eax        <--jezeli 0 to kod poprawny

A wiec tak aby wyszlo zero to wynik z rolowania musi wyniesc CAE00 a wiec 
 
 x rol 7 =CAE00
 x= CAE00 ror 7

W SI rolowanie zapisuje sie tak "<<" a rorowanie ">>"

Powinno wam wyjsc ze prawidlowa wartosc przed rol'owaniem to 6492.
Czyli suma znakow pomnozona przez ilosc chec...zaznaczonych ma dac 6492.
Wynikaz z tego ze mozliwych kombinacji jest wiele. 
Teraz wypiszemy sobie jaka wartosc jest dodawana jeseli checkbox jest zaznaczony
1  /56
2  /92
3  /66
4  /34
5  /62
6  /47
7  /05
8  /19
9  /40
10 /55
11 /94
12 /33
13 /42
14 /87
15 /13
16 /11
17 /03
18 /58
19 /92
20 /56
21 /18
22 /67
23 /40
24 /67
25 /34
26 /78
27 /52
28 /46
29 /45
30 /04
31 /71
32 /73

Teraz chwila na zastanowienie ile maksymalnie moze byc wcisnietych checkbox'ow 
Jezeli kazdy checkbox ktory jest wcisniety ma wartosc calkowita i to mnozone jest przez wartosc
calkowita (bo przecierz ilosc przyciskow nie moze byc inna niz calkowita) dochodzimy do wniosku
ze liczba 6492 musi byc podzielna przez jedna z liczb z przedzialu domknietego <1..32>
(przedzial domkniety to taki do ktorego krancowe liczby tez naleza) 
Co bedziemy dalej glowkowac. Strzelmy teraz maly program

--------------------------------------tu ciac---------------------------------------------------
Uses Crt;
Var a,b,c,i : Integer;

Begin
For i:=1 To 32 Do
Begin
  If 6492 mod i =0 then Writeln(i);
End;
Readln;
End.
------------------------------------tu ciac-----------------------------------------------------
No i wyszlo nam ze moga byc przynajmniej teoretycznie wlaczne przyciski 1,2,3,4,6,12.
Teraz dokonujemy selekcji patrzac na liczby ktore sa dodawane jezeli check'box jest
zaznaczony.
Juz na oko widac ze  1 lub 2 lub 3 lub 4 checkbox'y  z liczby ktre mamy do dyspozycji nigdy nie
dadza 6492. Czyli zostalo nam 6 lub 12 checkbox'ow. Po dluzszym zastanowieniu 6 tez nie pasuje.
Wynika z tego ze musimy zaznaczyc 12 checkbox'ow.
A co za tym idzie 6492/12=541 czyli suma z dodawanie checkbox'ow musi wyniesc 541

Jak znalesc odpowednia kombinacje to juz wasza praca domowa. Powiem wam ze mozna to zrobic na 
kilka sposobow. Przykladowo mozna wykorzystac Pascala. Raczej liczyc samemu nie polecam ale jak
ktos chec. heh... Ja wam podam tylko dwa rozwiazania jakie udalo mi sie znales. Moj program 
w Pascalu byl troche beznadziejny i jedno rozwiaznie szukal 10 minut dlatego tez go tu nie 
wstawilem. Jak napiszesz taki prog co szybko znajduje poprawne rozwiazanie to mail me. Thx.
        
                 X x x X x x X X
                 x X X X X X X X
                 x x X x x x x x  
                 x x x x x x x x

          
                 X x X x X x X X 
                 x X x X X X X X
                 x x X x x x x x
                 x x x x x x x x


                   Ale meczacy ten tutorial. Idzesz ze mna na piwo??(Bezalkoholowe)

I to by bylo na tyle. Wszelie uwagi kierowac pod adres mr_ketchup@poczta.onet.pl
Jezeli jednak ktos czegos nie rozumie to niech do mnie nie pisze. Wszystko wyjasnilem tak jak 
umialem najlepiej.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=members of SeveN TeaM-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

  Prezident:      MaxiBogas....................founder/coder/cracker/writer
  VizePrezident:  Plastek......................founder/coder/cracker/writer
  Seniors:
                  pawlos.....................................cracker/writer
                  Mr. Ketchup................................cracker/writer
                  Rusty.............................................cracker
  Division:
                  Jube.................................cracker/coder/writer
                  {ATOM}....................................decoder/cracker
                  Pokropek...................................cracker/writer
  Trial:
                  HiCK5.............................................cracker
                  Jelit Wypatrosz...................................cracker
                  zoomek.....................................writer/cracker
  WebPage:
                  LIAR..............................webmaster/graphic/coder
                  _2000_.......................................server_admin
 
  
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-o t h e r s-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

  Greets to : MGKiler, MaxiBogas, My dog, 
     groups : CrackPL, AAOCG, CookieCrk

  My e-mail: mr_ketchup@poczta.onet.pl
             ~~~~~~~~~~~~~~~~~~~~~~~~~
  SeveN TeaM - Official WebPage:  http://www.7team.z.pl
                                  ~~~~~~~~~~~~~~~~~~~~~
-=-=-=E-O-T=-=-=-=E-O-T=-=-=-=E-O-T=-=-=-=E-O-T=-=-=-=E-O-T=-=-=-=E-O-T=-=-=-=E-O-T=-=-=-=E-O-T=-