Forum Answers 4 People
Masz problem? Odpowiemy na niego!
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Mądry Post 2

 
Napisz nowy temat   Odpowiedz do tematu    Forum Answers 4 People Strona Główna -> Wasze programy
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Kester YEAH !!!
Gość






PostWysłany: Czw 23:04, 03 Sty 2008    Temat postu: Mądry Post 2

Witam!
Widząc to żałosne forum postanowiłem mu pomóc. Postanowiłem napisać artykuł pokazujący jak stworzyć program w C++, który wyciąga hasło do serwera z pliku "config.dat". A więc zaczynamy!

1. Potrzebny nam będzie kompilator, czyli program przekładający kod zrozumiały dla człowieka na kod zrozumiały dla komputera. Jest to np. Dev-Cpp i C++ Builder.

2. Mamy kompilator, więc tworzymy nowy dokument tekstowy i zmieniamy jego rozszerzenie z ".txt" na ".cpp".

3. Otwieramy dokument i zaczynamy pisanie.

4. Piszemy:
Kod:
int main()
{
                                   
return 0;
}


Widzimy tu funkcję main(), którą musi zawierać każdy program C++. Między nawiasami klamrowymi będą znajdować się instrukcje/polecenia mówiące o tym, co nasz prog będzie robił.

5. Kompilator zawiera pliki. w których są różne dodatki. Będziemy potrzebować iostream.h (m. in. wypisywanie tekstu) i fstream.h (obsługa plików). Dodajemy je do projektu w ten sposób: "#include(ang. dołącz) <nazwa pliku>".

Kod:
#include <fstream.h>
#include <iostream.h>

int main()
{
                                   
return 0;
}


6. Według informacji z tematu "Ręczne łamanie hasła GG" z działu Komunikatory wiemy, że po frazie "Password 2" jest hasło, zatem mówimy o tym kompilatorowi. Umieścimy zwrot w tablicy, w takim czymś co przechowywuje wiele danych, w naszym przypadku znaki.
Kod:
char fraza[11] = {'P','a','s','s','w','o','r','d','2',' ',''};

7. Otwieramy plik config.dat do odczytu:

Kod:
ifstream plik("config.dat");


8. Musimy pobierać dane, póki nie znajdziemy "frazy". Algorytm wygląda tak:

Kod:
sprawdzamy czy sprawdzaliśmy ostatni elemet frazy ---> pobierz znak z pliku ---> sprawdź czy jest on częścią "frazy" ---> jeśli TAK to sprawdzamy następny element, jeśli NIE to sprawdzamy od początku


Kod:
int i = 0;                                 //tworzymy zmienną, która będzie przechowywała liczby, czyli który element
int n;                                      //tablicy sprawdzamy
while(i != 11)                             //sprawdzamy czy sprawdzaliśmy ostatni element frazy, jeśli NIE wykonujemy
                                                //instrukcje między nawiasami klamrowymi
{
        plik.get(znak);                    //pobierz znak z pliku

        if(znak == fraza[i])               //sprawdź czy jest on częścią "frazy"
   i++;                                    //jeśli TAK to sprawdzamy następny element

        else                               
        {
                if(i == 9)i++;             // 9. element to spacja sprawdzanie nie odbywa się prawidlowo :[ od razu
                                        //sprawdzamy kolejny element
                else {i = 0;}              //jeśli NIE to sprawdzamy od początku
        }
}


fraza[9] - ta instrukcja odwołuje do 9-tego elementu tablicy
fraza[i] - ta instrukcja odwołuje do i-tego elementu tablicy
i++ - jest to po prostu zwiększenie wartości zmiennej i o 1 (C++ to rozszerzenie C)

9. Wiemy, gdzie jest hasło, więc możemy pobierać znaki i rozszyfrowywać je.

Kod:
char haslo[50];                  //tworzymy tablicę znaków zawierającą hasło
int n;                           //tworzymy zmienną, która będzie przechowywała liczby, czyli któremu elementowi
int n;                           //hasla przypisac rozszyfrowany znak

while(znak != ' ')         //jeżeli znak jest różny od spacji wykonuj instrukcję poniżej
{
        plik.get(znak);    //pobierz znak

        switch(znak)       //switch sprawdza "masowo" wartość znaku
        {
                case 'A':   //jeżeli znak to 'A'
                {
                        plik.get(znak); //pobierz następny znak

                        if(znak == 'C')haslo[n] = ' ';    //jeżeli następny znak to 'C' to n-ty element hasła to
//spacja (' ') 
                        if(znak == 'H')haslo[n] = 'p';
                        if(znak == 'F')haslo[n] = 'P';

                        break;                              //przerwij działanie switcha
                }

      n++;            //pobieraj dane do następnego elementu tablicy
   }
}


Oczywiście to nie jest cały kod pętli rozszyfrowującej hasło na górze to tylko przykład. Całośc to:

Kod:
int n = 0;
while(znak != ' ')
{
        plik.get(znak);

        switch(znak)
        {
                case 'A':
                {
                        plik.get(znak);

                        if(znak == 'C')haslo[n] = ' ';
                        if(znak == 'H')haslo[n] = 'p';
                        if(znak == 'F')haslo[n] = 'P';

                        break;
                }

                case 'B':
                {
                        plik.get(znak);

                        if(znak == 'E')haslo[n] = 'A';
                        if(znak == 'G')haslo[n] = 'a';
                        if(znak == 'D')haslo[n] = '1';
                        if(znak == 'H')haslo[n] = 'q';
                        if(znak == 'F')haslo[n] = 'Q';
                        break;
                }

                case 'C':
                {
                        plik.get(znak);
                        if(znak == 'E')haslo[n] = 'B';
                        if(znak == 'G')haslo[n] = 'b';
                        if(znak == 'D')haslo[n] = '2';
                        if(znak == 'H')haslo[n] = 'r';
                        if(znak == 'F')haslo[n] = 'R';
                        break;
                }

                case 'D':
                {
                        plik.get(znak);
                        if(znak == 'E')haslo[n] = 'C';
                        if(znak == 'G')haslo[n] = 'c';
                        if(znak == 'D')haslo[n] = '3';
                        if(znak == 'H')haslo[n] = 's';
                        if(znak == 'F')haslo[n] = 'S';
                        break;
                }

                case 'E':
                {
                        plik.get(znak);
                        if(znak == 'E')haslo[n] = 'D';
                        if(znak == 'G')haslo[n] = 'd';
                        if(znak == 'D')haslo[n] = '4';
                        if(znak == 'H')haslo[n] = 't';
                        if(znak == 'F')haslo[n] = 'T';
                        break;
                }

                case 'F':
                {
                        plik.get(znak);
                        if(znak == 'E')haslo[n] = 'E';
                        if(znak == 'G')haslo[n] = 'e';
                        if(znak == 'D')haslo[n] = '5';
                        if(znak == 'H')haslo[n] = 'u';
                        if(znak == 'F')haslo[n] = 'U';
                        break;
                }

                case 'G':
                {
                        plik.get(znak);
                        if(znak == 'E')haslo[n] = 'F';
                        if(znak == 'G')haslo[n] = 'f';
                        if(znak == 'D')haslo[n] = '6';
                        if(znak == 'H')haslo[n] = 'v';
                        if(znak == 'F')haslo[n] = 'V';
                        break;
                }

                case 'H':
                {
                        plik.get(znak);
                        if(znak == 'E')haslo[n] = 'G';
                        if(znak == 'G')haslo[n] = 'g';
                        if(znak == 'D')haslo[n] = '7';
                        if(znak == 'H')haslo[n] = 'w';
                        if(znak == 'F')haslo[n] = 'W';
                        break;
                }

                case 'I':
                {
                        plik.get(znak);
                        if(znak == 'E')haslo[n] = 'H';
                        if(znak == 'G')haslo[n] = 'h';
                        if(znak == 'D')haslo[n] = '8';
                        if(znak == 'H')haslo[n] = 'x';
                        if(znak == 'F')haslo[n] = 'X';
                        break;
                }

                case 'J':
                {
                        plik.get(znak);
                        if(znak == 'E')haslo[n] = 'I';
                        if(znak == 'G')haslo[n] = 'i';
                        if(znak == 'D')haslo[n] = '9';
                        if(znak == 'H')haslo[n] = 'y';
                        if(znak == 'F')haslo[n] = 'Y';
                        break;
                }

                case 'K':
                {
                        plik.get(znak);
                        if(znak == 'E')haslo[n] = 'J';
                        if(znak == 'G')haslo[n] = 'j';
                        if(znak == 'H')haslo[n] = 'z';
                        if(znak == 'F')haslo[n] = 'Z';
                        break;
                }

                case 'L':
                {
                        plik.get(znak);
                        if(znak == 'E')haslo[n] = 'K';
                        if(znak == 'G')haslo[n] = 'k';
                        break;
                }

                case 'M':
                {
                        plik.get(znak);
                        if(znak == 'E')haslo[n] = 'L';
                        if(znak == 'G')haslo[n] = 'l';
                        break;
                }

                case 'N':
                {
                        plik.get(znak);
                        if(znak == 'E')haslo[n] = 'M';
                        if(znak == 'G')haslo[n] = 'm';
                        break;
                }

                case 'O':
                {
                        plik.get(znak);
                        if(znak == 'E')haslo[n] = 'N';
                        if(znak == 'G')haslo[n] = 'n';
                        break;
                }

                case 'P':
                {
                        plik.get(znak);
                        if(znak == 'E')haslo[n] = 'O';
                        if(znak == 'G')haslo[n] = 'o';
                        break;

                case ' ': break;
                }
        }

        n++;
}


10. Teraz wystarczy tylko wypisać hasło na ekranie:

Kod:
std::cout << "Haslo:" << std::endl; //cout wyświetla dane na ekranie
std::cout << haslo << std::endl;    //endl przechodzi do nowej linijki

int DoZatrzymania;                  // tworzymy zmienną przechowywującą liczby
cin >> DoZatrzymania;               //cin służy do pobierania danych, w ten sposób zatrzymujemy program, by oglądnąć
                                      //dane


Koniec :wink:

Pojawią się dodatki

Pzdr.


Ostatnio zmieniony przez Kester YEAH !!! dnia Pią 20:35, 04 Sty 2008, w całości zmieniany 3 razy
Powrót do góry
KAMILOS
Administrator
Administrator



Dołączył: 30 Gru 2007
Posty: 37
Przeczytał: 0 tematów

Pomógł: 11 razy
Ostrzeżeń: 0/5
Skąd: Wrocław

PostWysłany: Pią 21:50, 04 Sty 2008    Temat postu:

Nie nazywajcie swoich postów jako mądre tylko o czym są, bo będę je kasował!

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Kester YEAH !!!
Gość






PostWysłany: Pią 22:15, 04 Sty 2008    Temat postu:

OK... ale przyznaj, że ten temat wyróżnia się wśród innych (jeśli czytales)

usuń tamte tematy... pisałem jako gośc i nie mogłem edytować, więc pisałem nowy poprawiony temat

dostałem za ten temat ostrzeżenie od SOLDIER [MATI], uznaje on ten post za szkodliwy mógłbyś coś z tym zrobić?
Powrót do góry
KAMILOS
Administrator
Administrator



Dołączył: 30 Gru 2007
Posty: 37
Przeczytał: 0 tematów

Pomógł: 11 razy
Ostrzeżeń: 0/5
Skąd: Wrocław

PostWysłany: Pią 22:28, 04 Sty 2008    Temat postu:

Już zdjąłem ostrzeżenie

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
SOLDIER[MATI]
Członek
Członek



Dołączył: 31 Gru 2007
Posty: 31
Przeczytał: 0 tematów

Pomógł: 4 razy
Ostrzeżeń: 0/5
Skąd: Wroclaw

PostWysłany: Pią 22:42, 04 Sty 2008    Temat postu:

*** ******
***


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Kester YEAH !!!
Gość






PostWysłany: Pią 22:45, 04 Sty 2008    Temat postu:

LOL!

ten noob znów dał mi ostrzeżenie !

wywal go z forum ! tylko robi tu bałagan !
Powrót do góry
SOLDIER[MATI]
Członek
Członek



Dołączył: 31 Gru 2007
Posty: 31
Przeczytał: 0 tematów

Pomógł: 4 razy
Ostrzeżeń: 0/5
Skąd: Wroclaw

PostWysłany: Pią 22:45, 04 Sty 2008    Temat postu:

[/quote]Witam!
Widząc to żałosne forum postanowiłem mu pomóc. Postanowiłem napisać artykuł pokazujący jak stworzyć program w C++, który wyciąga hasło do serwera z pliku "config.dat". A więc zaczynamy!






!HAKER!


Post został pochwalony 0 razy

Ostatnio zmieniony przez SOLDIER[MATI] dnia Pią 22:47, 04 Sty 2008, w całości zmieniany 2 razy
Powrót do góry
Zobacz profil autora
Kester YEAH !!!
Gość






PostWysłany: Pią 22:46, 04 Sty 2008    Temat postu:

no i? co ci nie pasi ?

Ostatnio zmieniony przez Kester YEAH !!! dnia Pią 22:46, 04 Sty 2008, w całości zmieniany 1 raz
Powrót do góry
Kester YEAH !!!
Gość






PostWysłany: Pią 22:57, 04 Sty 2008    Temat postu:

SOLDIER[MATI] napisał:
!HAKER!


so? ale ty to przecież wiesz więc też chyba jestes...

po za tym to nie tylko ma slużyć do szkodzenia...

np. jak zapomnisz hasło to możesz sobie przypomnieć
Powrót do góry
SOLDIER[MATI]
Członek
Członek



Dołączył: 31 Gru 2007
Posty: 31
Przeczytał: 0 tematów

Pomógł: 4 razy
Ostrzeżeń: 0/5
Skąd: Wroclaw

PostWysłany: Sob 14:28, 05 Sty 2008    Temat postu:

do tego sa pragramy uap passtool itd.

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Gość







PostWysłany: Sob 18:38, 05 Sty 2008    Temat postu:

nazywam ten program na górze LamaczGG

i uzupełnam twoją wypowiedź:

do tego sa pragramy uap, passtool, LamaczGG itd.
Powrót do góry
KAMILOS
Administrator
Administrator



Dołączył: 30 Gru 2007
Posty: 37
Przeczytał: 0 tematów

Pomógł: 11 razy
Ostrzeżeń: 0/5
Skąd: Wrocław

PostWysłany: Sob 19:16, 05 Sty 2008    Temat postu:

No i się dogadaliśmy!

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Gość







PostWysłany: Sob 20:19, 05 Sty 2008    Temat postu:

no nie za bardzo

mam bana i ostrzężenie!
Powrót do góry
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Answers 4 People Strona Główna -> Wasze programy Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2002 phpBB Group
Regulamin