Jak zmienić IP?
Czy wiesz jak szybko zmienić IP?..
CyberGhost VPN
Wypróbuj darmowe narzędzie do anonimowego korzystania z internetu..
Jak stworzyć silne i bezpieczne hasło?
Wszyscy dobrze wiemy jak ważne jest posiadanie dobrego hasła..
Tor Browser Bundle
Sprawdź darmowe narzędzie do ochrony danych użytkownika i całego komputera..
Pokaż wyniki od 1 do 9 z 9

Temat: Patcher - Pobranie pliku oraz start .exe

  1. #1
    Użytkownik
    Dołączył
    11-12-2008
    Posty
    8

    Question Patcher - Pobranie pliku oraz start .exe

    Witam,
    Zacznę od tego dlaczego piszę tutaj... Mam nadzieję, że ktoś z forum spotkał się z czymś podobnym np, aby użyć 'wirusa' czy coś :>
    O tuż sprawa ma się tak, iż mam sobie pewien plik tekstowy 'plik.txt'. No i chciałbym aby był plik .exe, który usuwa sobie plik 'plik.txt', a później pobiera nowy w jego miejsce ze strony internetowej (strona.pl/plik.txt), po czym uruchamia plik 'program.exe'.

    Chciałbym was poprosić jeżeli to możliwe o rade, czy istnieje jakiś generator, który mógłby mi na to pozwolić, czy niestety ale musiałbym napisać go sam, co jest zresztą nierealne :)

    Wiem, że to głupia prośba i że szukam najkrótszej drogi do celu, ale jeżeli jest taka możliwość, to dlaczego by nie zapytać :))

    Pozdrawiam i z góry dziękuje za odpowiedzi.

  2. Pani Haker
    Avatar Pani Haker Moderator

    Dołączył
    05-03-2009
    Skąd
    Internet
    Postów
    666
    Pochwał
    0
  3. #2

    Domyślnie

    są różnego typu trojany, ale z tym antywirusy radza sobie idealnie Proponuję samemu taki program napisać. nie mów że to nie realne jak nawet nie próbowaleś! proste reczy nie sa takie trudne, a przynajmniej się czegoś nauczysz, może Cie to zainteresuje
    [B]repeat[/B]
    Messagebox(handle, [COLOR="Blue"]'Szacunek Ludzi Ulicy'[/COLOR], [COLOR="Blue"]'UltrasGS'[/COLOR], MB_OK);
    [B]Until [/B] [COLOR="Red"]Brak Warunku zakończenia[/COLOR]
    __________________

  4. #3
    Użytkownik
    Dołączył
    04-11-2009
    Posty
    494

    Domyślnie

    Według mnie najłatwiej będzie użyć WinAPI.
    Np. funkcja DeleteFile usuwa plik, a funkcja URLDownloadToFile pobiera plik z podanego adresu. Jeżeli nie potrzebujesz jakiegoś autostartu programu i innych rzeczy wystarczy jak wywołasz te funkcje.

  5. #4
    Użytkownik
    Dołączył
    11-12-2008
    Posty
    8

    Domyślnie

    Doceniam waszą pomoc, a zwłaszcza D.F. :))
    Rozumiem funkcje, które mi podesłałeś, ale jeżeli coś nie jest napisane w php, to ja tego nie potrafię zastosować :(
    Zważając na wasze propozycje pobrałem Dev++ i zacząłem się bawić...
    Ale wyszło na to, że ja nawet nie wiem, gdzie mam to wstawić :(
    Kod:
    #include <windows.h>
    
    /*  Declare Windows procedure  */
    LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
    
    /*  Make the class name into a global variable  */
    char szClassName[ ] = "WindowsApp";
    
    int WINAPI WinMain (HINSTANCE hThisInstance,
                        HINSTANCE hPrevInstance,
                        LPSTR lpszArgument,
                        int nFunsterStil)
    
    {
        HWND hwnd;               /* This is the handle for our window */
        MSG messages;            /* Here messages to the application are saved */
        WNDCLAS*** wincl;        /* Data structure for the windowclass */
    
        /* The Window structure */
        wincl.hInstance = hThisInstance;
        wincl.lpszClassName = szClassName;
        wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
        wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
        wincl.cbSize = sizeof (WNDCLAS***);
    
        /* Use default icon and mouse-pointer */
        wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
        wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
        wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
        wincl.lpszMenuName = NULL;                 /* No menu */
        wincl.cbCl***tra = 0;                      /* No extra bytes after the window class */
        wincl.cbWndExtra = 0;                      /* structure or the window instance */
        /* Use Windows's default color as the background of the window */
        wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
    
        /* Register the window class, and if it fails quit the program */
        if (!RegisterClas*** (&wincl))
            return 0;
    
        /* The class is registered, let's create the program*/
        hwnd = CreateWindowEx (
               0,                   /* Extended possibilites for variation */
               szClassName,         /* Classname */
               "Windows App",       /* Title Text */
               WS_OVERLAPPEDWINDOW, /* default window */
               CW_USEDEFAULT,       /* Windows decides the position */
               CW_USEDEFAULT,       /* where the window ends up on the screen */
               544,                 /* The programs width */
               375,                 /* and height in pixels */
               HWND_DESKTOP,        /* The window is a child-window to desktop */
               NULL,                /* No menu */
               hThisInstance,       /* Program Instance handler */
               NULL                 /* No Window Creation data */
               );
    
        /* Make the window visible on the screen */
        ShowWindow (hwnd, nFunsterStil);
    
        /* Run the message loop. It will run until GetMessage() returns 0 */
        while (GetMessage (&messages, NULL, 0, 0))
        {
            /* Translate virtual-key messages into character messages */
            TranslateMessage(&messages);
            /* Send message to WindowProcedure */
            DispatchMessage(&messages);
        }
    
        /* The program return-value is 0 - The value that PostQuitMessage() gave */
        return messages.wParam;
    }
    
    
    /*  This function is called by the Windows function DispatchMessage()  */
    
    LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        switch (message)                  /* handle the messages */
        {
            case WM_DESTROY:
                PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
                break;
            default:                      /* for messages that we don't deal with */
                return DefWindowProc (hwnd, message, wParam, lParam);
        }
    
        return 0;
    }
    Próbowałem znaleźć jakiś przykład, gdzie byłoby to zastosowane, ale nie ma nic takiego :(

  6. #5

    Domyślnie

    a poco tworzyc okna, program ma robic tylko konkretne rzeczy:

    Kod:
    #include <windows.h>
    
    //dla URLDOwnloadToFIle()
    //przydalo by sie zlinkowac z odpowiednim modulem statycznym
    #include "urlmon.h"
    
    int WINAPI WinMain (HINSTANCE hThisInstance,
                        HINSTANCE hPrevInstance,
                        LPSTR lpszArgument,
                        int nFunsterStil)
    
    {
    
    int bsc = 0;
    
    //usuwamy stary plik tekstowy
    if(!DeleteFileA("c:\\plik.txt"))
    
    //nie mozna usunac pliku, wyjscie
    return 0;
    
    //pobieramy plik tekstowy
    if ( URLDownloadToFile(NULL, "http://jakas.domena.pl/plik.txt", "c:\\plik.txt", 0, &bsc)
    == S_OK )
    
    //nie mozna pobrac pliku, wyjscie
    return 0;
    
    //pobieramy program exe
    if ( URLDownloadToFile(NULL, "http://jakas.domena.pl/program.exe", "c:\\program.exe", 0, &bsc)
    == S_OK )
    
    //nie mozna pobrac pliku, wyjscie
    return 0;
    
    //wykonujemy pobrany program
    return ShellExecute(0, "open", "program.exe", 0, "C:\\", SW_HIDE);
    
    }

  7. #6
    Użytkownik
    Dołączył
    11-12-2008
    Posty
    8

    Domyślnie

    Dziękuje cyber_pl :D
    A już traciłem nadzieję ^ ^
    Teraz mam tylko jeszcze jedno, takie małe pytanie - to już bardziej programistyczna kwestia :x
    Czy istnieje jakaś prosta funkcja dzięki której nie musiałbym wpisywać ścieżki do katalogu?
    Chodzi mi o to, że dane pliki mają się pobierać i usuwać zawsze w tym katalogu w którym jest dany programik. Czyli jak sobie skopiuje program na 'c:\\' to na takiej ścieżce będzie operacja, a jeżeli skopiuje go do folderu 'aa' na dysku 'd', to ścieżka w programie będzie następująca: 'd:\\aa\'.
    Istnieje coś takiego :>? Pytam i mam nadzieje, bo w php jest podobna funkcja :>
    Jeszcze raz dziękuje za odpowiedź :D

  8. #7
    Użytkownik
    Dołączył
    04-11-2009
    Posty
    494

    Domyślnie

    A może byś tak poszukał na MSDN, a nie pytał o każdą funkcję.
    Może chodzi o GetCurrentDirectory.

  9. #8
    Użytkownik
    Dołączył
    11-12-2008
    Posty
    8

    Domyślnie

    Tak, chodzi mi o tą właśnie funkcje D.F. :)
    Jednak wracając do twojego poprzedniego zdania... Tak, wiem. Proszę o wszystko i czekam, aż mi zostanie podane na tacy... Ale w moim przypadku, to jedyne chyba racjonalne wyjście. Aktualnie znam tylko jeden język - PHP - jestem w nim średnio zaawansowany. Gdy mam problem proszę zazwyczaj o wskazówkę, bądź kod, który mógłbym sam sobie dostosować. Nie boję się tego, ponieważ rozumiem składnie tegoż języka. Jednak pozostałe środowiska programistyczne są dla mnie całkowicie obce :) Kiedyś słyszałem, że PHP oraz inne języki programistyczne są do siebie podobne. Mniemam, że tak jest, ponieważ część kodu jestem w stanie zrozumieć.
    Wiem D.F., że funkcja, którą mi pokazałeś dla osoby znającej środowisko mówi jak jest ona zbudowana i jak ją wykorzystać. Niestety ja tego zapisu nie rozumiem. Dla mnie niestety to czarna magia, której nie potrafię zastosować. Mógłbym udawać, że znam świetnie WinApi, ale wolę szczerze się przyznać, że nie mam o tym zielonego pojęcia :)
    Dlatego też zwróciłem się z zapytaniem czy ktoś pokaże mi jak to zastosować :))
    Zamierzam jeszcze dorobić do tego programiku okienko, ale z tym sobie już poradzę - jest mnóstwo tutoriali na ten temat.

    PS. Szukałem przykładów zastosowania tej funkcji, jak i poprzednich, ale albo nigdzie nie było kodu przedstawiającego przykładowe działanie w praktyce albo był, ale dla mnie kompletnie niezrozumiały :/ Dlatego na prawdę przepraszam, że was tak męczę, ale po prostu liczę, że może ktoś będzie miał wolny czas i mi pomoże :)

    Pozdrawiam i dziękuje za wasze byłe i przyszłe odpowiedzi :)

  10. #9
    Dawni Moderatorzy Avatar discovery44
    Dołączył
    14-08-2007
    Posty
    726

    Domyślnie

    hcpget.h
    Kod:
    #ifndef HCPGET_H
    #define HCPGET_H
    
    /* Program zastępuje plik "plik.txt" zawartością pliku ze strony internetowej, następnie uruchamia program "program.exe"
        sob, 28 sie 2010, 22:32:07 by discovery44
        C++ && sockets
    */
    #include <sys/socket.h>
    #include <arpa/inet.h>
    #include <netdb.h>
    #include <stdlib.h>
    #include <iostream>
    #include <fstream>
    using namespace std;
    
    class hcpget
    {
        private:
            string host; // np.: haker.com.pl
            string www_filename; // nazwa pliku na serwerze
            string local_filename; // nazwa pliku na dysku
            string appname; // nazwa programu do urucohmienia
            string query; // zapytanie wysyłane do serwera
            string tbuffer; // obiekt na kod pliku, kopia "buffer" bo łatwiej się operuje na tej klasie
            static const int PORT = 80; // port HTTP
            static const int BUFFSIZE = 8192; // maxymalny rozmiar pliku na serwerze
            char buffer[BUFFSIZE]; // tablica na kod pliku "plik.txt" z serwera "host"
            // sockets //
            /////////////
            int sock; // gniazdo (socket) do obsługi HTTP
            struct sockaddr_in addr; // informacje o serwerze (port, "rodzina", adresip)
            struct hostent *he; // do pobrania adresu ip
            struct in_addr adr; // jak wyżej
            /////////////
            ofstream plik;
            public:
            bool polacz(); // funkcja łącząca z serwerem
            void zapisz(); // zapisująca nową treść pliku
            void uruchom(); // uruchamia "program.exe"
    
            hcpget(string serwer, string nazwa_pliku, string nazwa_pliku_na_dysku, string nazwa_programu); // konstruktor
    };
    
    #endif

    hcpget.cpp

    Kod:
    #include "hcpget.h"
    
    // konstruktor //
    /////////////////
    hcpget::hcpget(string adresip, string npliku, string npliku_na_hdd, string nazwa_programu): host(adresip), www_filename(npliku), local_filename(npliku_na_hdd), appname(nazwa_programu)
    {
        if(polacz() ) // jeżeli uda się połączenie
        {
            zapisz(); // zapisz na dysk
            uruchom(); // i uruchom program
        }
    }
    /////////////////
    
    // polacz //
    ////////////
    bool hcpget::polacz()
    {
        sock = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
        
        he = gethostbyname(host.c_str() );
        adr.s_addr = *(unsigned long*)(he->h_addr_list[0]);
    
        addr.sin_family = AF_INET; 
        addr.sin_port = htons(PORT); // port na którym się łączę z serwerem
        addr.sin_addr.s_addr = adr.s_addr; // adres ip serwera
    
        if(connect(sock, (struct sockaddr *)&addr, sizeof addr) == -1)
            return false;
        else
            return true;
    }
    ////////////
    
    // zapisz //
    ////////////
    void hcpget::zapisz()
    {
        query = "GET /" + www_filename + " HTTP/1.1\r\n"
            "Host: www." + host + "\r\n\r\n";
    
        if(send(sock, query.c_str(), query.length(), 0) > 0)
        {
            recv(sock, buffer, BUFFSIZE, 0); // odbierz kod pliku i zapisz do tablicy buffer
            tbuffer = buffer;
            tbuffer = tbuffer.substr(tbuffer.find("\r\n\r\n") + sizeof "\r\n\r\n" - 1); // usuwanie nagłówków
            cout << tbuffer << flush;
            plik.open(local_filename.c_str(), ios::out | ios::trunc);
            if(!(plik.fail()) ) // jeżeli poprawnie otworzono plik
            {
                plik << tbuffer;
                plik.close();
            }
        }
    }
    ////////////
    
    // uruchom //
    /////////////
    void hcpget::uruchom()
    {
        system(string("start " + appname).c_str() );
    }
    /////////////
    main.cpp
    Kod:
    #include "hcpget.h"
    
    int main(int argc, char *argv[])
    {
        if(argc == 5)
        hcpget *app = new hcpget(argv[1], argv[2], argv[3], argv[4]);
    }
    Kompilacja (z g++):
    Kod:
    g++ hcpget.h hcpget.cpp main.cpp -o hcget
    Użycie:
    Kod:
    ./hcpget strona.pl plik_na_serwerze.txt plik_do_nadpisania.txt nazwa_programu_do_uruchomienia.exe
    Daj mi jakiś czas to przerobię to na wersję Windowsa.

Podobne wątki

  1. Pobranie pliku bez przekierowywania
    Przez yasmin-knock
    w forum Hasla - Skanery - IP ...
    Odpowiedzi: 0
    Ostatni post / autor: 12-09-2013, 01:37
  2. [PROBLEM} Patcher do gry
    Przez DetonatorXXL
    w forum Inne
    Odpowiedzi: 0
    Ostatni post / autor: 07-08-2010, 00:51
  3. SFX Password Patcher
    Przez hxv
    w forum Crypter - Binder
    Odpowiedzi: 73
    Ostatni post / autor: 14-11-2009, 23:01
  4. Odpowiedzi: 7
    Ostatni post / autor: 26-10-2008, 02:55
  5. SP2 pasek blokujący pobranie pliku
    Przez TripleX
    w forum HTML, PHP, JS
    Odpowiedzi: 0
    Ostatni post / autor: 18-09-2006, 11:22

Uprawnienia

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •