Исходник HWID loader C++

Начинающий
Статус
Оффлайн
Регистрация
18 Сен 2024
Сообщения
33
Реакции[?]
0
Поинты[?]
0

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

хвид для лоадера (хвид с гитхаба по сссылке)


main.cpp:
#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
#include <vector>
#include <openssl/sha.h>
#include <curl/curl.h>
#include <cstdlib>

std::string getHardwareID() {
    std::string volumeSerial;
    FILE* pipe = popen("vol C:", "r");
    if (!pipe) return "ERROR";

    char buffer[128];
    while (fgets(buffer, sizeof(buffer), pipe) != nullptr) {
        volumeSerial = buffer;
    }
    pclose(pipe);

    unsigned char hash[SHA256_DIGEST_LENGTH];
    SHA256((unsigned char*)volumeSerial.c_str(), volumeSerial.size(), hash);

    std::ostringstream oss;
    for (int i = 0; i < SHA256_DIGEST_LENGTH; ++i) {
        oss << std::hex << (int)hash[i];
    }
    return oss.str();
}

size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* userp) {
    size_t totalSize = size * nmemb;
    userp->append((char*)contents, totalSize);
    return totalSize;
}

bool checkHardwareID(const std::string& userHwid) {
    std::string url = "ССЫЛКА НА РАВ ФАЙЛА С ХВИДАМИ";
 
    CURL* curl;
    CURLcode res;
    std::string readBuffer;

    curl_global_init(CURL_GLOBAL_DEFAULT);
    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
        res = curl_easy_perform(curl);
        curl_easy_cleanup(curl);
     
        if (res != CURLE_OK) {
            std::cerr << "Error: " << curl_easy_strerror(res) << std::endl;
            return false;
        }

        std::istringstream responseStream(readBuffer);
        std::string line;
        while (std::getline(responseStream, line)) {
            if (line == userHwid) {
                std::cout << "\nещкере" << std::endl;
                return true;
            }
        }
        std::cout << "\nті хакєр что лі?" << std::endl;
        return false;
    }
    return false;
}

int main() {
    std::string userHwid = getHardwareID();
    checkHardwareID(userHwid);
    return 0;
}
Получение HWID

HWID:
#include <iostream>
#include <string>
#include <sstream>
#include <openssl/sha.h>
#include <cstdlib>

std::string getHWID() {
    std::string volumeSerial;
    FILE* pipe = popen("vol C:", "r");
    if (!pipe) return "ERROR";

    char buffer[128];
    while (fgets(buffer, sizeof(buffer), pipe) != nullptr) {
        volumeSerial = buffer;
    }
    pclose(pipe);

    unsigned char hash[SHA256_DIGEST_LENGTH];
    SHA256((unsigned char*)volumeSerial.c_str(), volumeSerial.size(), hash);

    std::ostringstream oss;
    for (int i = 0; i < SHA256_DIGEST_LENGTH; ++i) {
        oss << std::hex << (int)hash[i];
    }
    return oss.str();
}

int main() {
    std::string hwid = getHWID();
    std::cout << "HWID: " << hwid << std::endl;
    std::cin.get();
    return 0;
}
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
18 Сен 2024
Сообщения
33
Реакции[?]
0
Поинты[?]
0
котопушка не одобрил
 
Последнее редактирование:
Забаненный
Статус
Оффлайн
Регистрация
16 Окт 2024
Сообщения
76
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
чат гпт кодер
 
expenis 3.1 paster
Пользователь
Статус
Оффлайн
Регистрация
20 Апр 2021
Сообщения
1,458
Реакции[?]
34
Поинты[?]
46K
хвид для лоадера (хвид с гитхаба по сссылке)


main.cpp:
#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
#include <vector>
#include <openssl/sha.h>
#include <curl/curl.h>
#include <cstdlib>

std::string getHardwareID() {
    std::string volumeSerial;
    FILE* pipe = popen("vol C:", "r");
    if (!pipe) return "ERROR";

    char buffer[128];
    while (fgets(buffer, sizeof(buffer), pipe) != nullptr) {
        volumeSerial = buffer;
    }
    pclose(pipe);

    unsigned char hash[SHA256_DIGEST_LENGTH];
    SHA256((unsigned char*)volumeSerial.c_str(), volumeSerial.size(), hash);

    std::ostringstream oss;
    for (int i = 0; i < SHA256_DIGEST_LENGTH; ++i) {
        oss << std::hex << (int)hash[i];
    }
    return oss.str();
}

size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* userp) {
    size_t totalSize = size * nmemb;
    userp->append((char*)contents, totalSize);
    return totalSize;
}

bool checkHardwareID(const std::string& userHwid) {
    std::string url = "ССЫЛКА НА РАВ ФАЙЛА С ХВИДАМИ";

    CURL* curl;
    CURLcode res;
    std::string readBuffer;

    curl_global_init(CURL_GLOBAL_DEFAULT);
    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
        res = curl_easy_perform(curl);
        curl_easy_cleanup(curl);
   
        if (res != CURLE_OK) {
            std::cerr << "Error: " << curl_easy_strerror(res) << std::endl;
            return false;
        }

        std::istringstream responseStream(readBuffer);
        std::string line;
        while (std::getline(responseStream, line)) {
            if (line == userHwid) {
                std::cout << "\nещкере" << std::endl;
                return true;
            }
        }
        std::cout << "\nті хакєр что лі?" << std::endl;
        return false;
    }
    return false;
}

int main() {
    std::string userHwid = getHardwareID();
    checkHardwareID(userHwid);
    return 0;
}
Получение HWID

HWID:
#include <iostream>
#include <string>
#include <sstream>
#include <openssl/sha.h>
#include <cstdlib>

std::string getHWID() {
    std::string volumeSerial;
    FILE* pipe = popen("vol C:", "r");
    if (!pipe) return "ERROR";

    char buffer[128];
    while (fgets(buffer, sizeof(buffer), pipe) != nullptr) {
        volumeSerial = buffer;
    }
    pclose(pipe);

    unsigned char hash[SHA256_DIGEST_LENGTH];
    SHA256((unsigned char*)volumeSerial.c_str(), volumeSerial.size(), hash);

    std::ostringstream oss;
    for (int i = 0; i < SHA256_DIGEST_LENGTH; ++i) {
        oss << std::hex << (int)hash[i];
    }
    return oss.str();
}

int main() {
    std::string hwid = getHWID();
    std::cout << "HWID: " << hwid << std::endl;
    std::cin.get();
    return 0;
}
какой позор блять кто тебя нахуй просил?
ахфыхвхыфвфы блять что это?
main.cpp:
std::string getHardwareID() {
    std::string volumeSerial;
    FILE* pipe = popen("vol C:", "r");
    if (!pipe) return "ERROR";

    char buffer[128];
    while (fgets(buffer, sizeof(buffer), pipe) != nullptr) {
        volumeSerial = buffer;
    }
    pclose(pipe);

    unsigned char hash[SHA256_DIGEST_LENGTH];
    SHA256((unsigned char*)volumeSerial.c_str(), volumeSerial.size(), hash);

    std::ostringstream oss;
    for (int i = 0; i < SHA256_DIGEST_LENGTH; ++i) {
        oss << std::hex << (int)hash[i];
    }
    return oss.str();
}
[I]
 
ппоршень
Пользователь
Статус
Оффлайн
Регистрация
15 Фев 2020
Сообщения
278
Реакции[?]
49
Поинты[?]
38K
какой позор блять кто тебя нахуй просил?
ахфыхвхыфвфы блять что это?
std::string getHardwareID() {
std::string volumeSerial;
FILE* pipe = popen("vol C:", "r");
if (!pipe) return "ERROR";

char buffer[128];
while (fgets(buffer, sizeof(buffer), pipe) != nullptr) {
volumeSerial = buffer;
}
pclose(pipe);

unsigned char hash[SHA256_DIGEST_LENGTH];
SHA256((unsigned char*)volumeSerial.c_str(), volumeSerial.size(), hash);

std::ostringstream oss;
for (int i = 0; i < SHA256_DIGEST_LENGTH; ++i) {
oss << std::hex << (int)hash;
}
return oss.str();
}
напомнить тебе кто не осилил спарсить директорию в джаве?
хвид для лоадера (хвид с гитхаба по сссылке)


main.cpp:
#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
#include <vector>
#include <openssl/sha.h>
#include <curl/curl.h>
#include <cstdlib>

std::string getHardwareID() {
    std::string volumeSerial;
    FILE* pipe = popen("vol C:", "r");
    if (!pipe) return "ERROR";

    char buffer[128];
    while (fgets(buffer, sizeof(buffer), pipe) != nullptr) {
        volumeSerial = buffer;
    }
    pclose(pipe);

    unsigned char hash[SHA256_DIGEST_LENGTH];
    SHA256((unsigned char*)volumeSerial.c_str(), volumeSerial.size(), hash);

    std::ostringstream oss;
    for (int i = 0; i < SHA256_DIGEST_LENGTH; ++i) {
        oss << std::hex << (int)hash[i];
    }
    return oss.str();
}

size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* userp) {
    size_t totalSize = size * nmemb;
    userp->append((char*)contents, totalSize);
    return totalSize;
}

bool checkHardwareID(const std::string& userHwid) {
    std::string url = "ССЫЛКА НА РАВ ФАЙЛА С ХВИДАМИ";
 
    CURL* curl;
    CURLcode res;
    std::string readBuffer;

    curl_global_init(CURL_GLOBAL_DEFAULT);
    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
        res = curl_easy_perform(curl);
        curl_easy_cleanup(curl);
     
        if (res != CURLE_OK) {
            std::cerr << "Error: " << curl_easy_strerror(res) << std::endl;
            return false;
        }

        std::istringstream responseStream(readBuffer);
        std::string line;
        while (std::getline(responseStream, line)) {
            if (line == userHwid) {
                std::cout << "\nещкере" << std::endl;
                return true;
            }
        }
        std::cout << "\nті хакєр что лі?" << std::endl;
        return false;
    }
    return false;
}

int main() {
    std::string userHwid = getHardwareID();
    checkHardwareID(userHwid);
    return 0;
}
Получение HWID

HWID:
#include <iostream>
#include <string>
#include <sstream>
#include <openssl/sha.h>
#include <cstdlib>

std::string getHWID() {
    std::string volumeSerial;
    FILE* pipe = popen("vol C:", "r");
    if (!pipe) return "ERROR";

    char buffer[128];
    while (fgets(buffer, sizeof(buffer), pipe) != nullptr) {
        volumeSerial = buffer;
    }
    pclose(pipe);

    unsigned char hash[SHA256_DIGEST_LENGTH];
    SHA256((unsigned char*)volumeSerial.c_str(), volumeSerial.size(), hash);

    std::ostringstream oss;
    for (int i = 0; i < SHA256_DIGEST_LENGTH; ++i) {
        oss << std::hex << (int)hash[i];
    }
    return oss.str();
}

int main() {
    std::string hwid = getHWID();
    std::cout << "HWID: " << hwid << std::endl;
    std::cin.get();
    return 0;
}
братан, я конечно все понимаю, переходный возраст, все дела, но это же бесполезная конская залупа, зачем ты это сюда выложил?
 
expenis 3.1 paster
Пользователь
Статус
Оффлайн
Регистрация
20 Апр 2021
Сообщения
1,458
Реакции[?]
34
Поинты[?]
46K
Начинающий
Статус
Оффлайн
Регистрация
11 Июл 2023
Сообщения
75
Реакции[?]
0
Поинты[?]
0
хвид для лоадера (хвид с гитхаба по сссылке)


main.cpp:
#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
#include <vector>
#include <openssl/sha.h>
#include <curl/curl.h>
#include <cstdlib>

std::string getHardwareID() {
    std::string volumeSerial;
    FILE* pipe = popen("vol C:", "r");
    if (!pipe) return "ERROR";

    char buffer[128];
    while (fgets(buffer, sizeof(buffer), pipe) != nullptr) {
        volumeSerial = buffer;
    }
    pclose(pipe);

    unsigned char hash[SHA256_DIGEST_LENGTH];
    SHA256((unsigned char*)volumeSerial.c_str(), volumeSerial.size(), hash);

    std::ostringstream oss;
    for (int i = 0; i < SHA256_DIGEST_LENGTH; ++i) {
        oss << std::hex << (int)hash[i];
    }
    return oss.str();
}

size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* userp) {
    size_t totalSize = size * nmemb;
    userp->append((char*)contents, totalSize);
    return totalSize;
}

bool checkHardwareID(const std::string& userHwid) {
    std::string url = "ССЫЛКА НА РАВ ФАЙЛА С ХВИДАМИ";
 
    CURL* curl;
    CURLcode res;
    std::string readBuffer;

    curl_global_init(CURL_GLOBAL_DEFAULT);
    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
        res = curl_easy_perform(curl);
        curl_easy_cleanup(curl);
     
        if (res != CURLE_OK) {
            std::cerr << "Error: " << curl_easy_strerror(res) << std::endl;
            return false;
        }

        std::istringstream responseStream(readBuffer);
        std::string line;
        while (std::getline(responseStream, line)) {
            if (line == userHwid) {
                std::cout << "\nещкере" << std::endl;
                return true;
            }
        }
        std::cout << "\nті хакєр что лі?" << std::endl;
        return false;
    }
    return false;
}

int main() {
    std::string userHwid = getHardwareID();
    checkHardwareID(userHwid);
    return 0;
}
Получение HWID

HWID:
#include <iostream>
#include <string>
#include <sstream>
#include <openssl/sha.h>
#include <cstdlib>

std::string getHWID() {
    std::string volumeSerial;
    FILE* pipe = popen("vol C:", "r");
    if (!pipe) return "ERROR";

    char buffer[128];
    while (fgets(buffer, sizeof(buffer), pipe) != nullptr) {
        volumeSerial = buffer;
    }
    pclose(pipe);

    unsigned char hash[SHA256_DIGEST_LENGTH];
    SHA256((unsigned char*)volumeSerial.c_str(), volumeSerial.size(), hash);

    std::ostringstream oss;
    for (int i = 0; i < SHA256_DIGEST_LENGTH; ++i) {
        oss << std::hex << (int)hash[i];
    }
    return oss.str();
}

int main() {
    std::string hwid = getHWID();
    std::cout << "HWID: " << hwid << std::endl;
    std::cin.get();
    return 0;
}
(Не бейте) можешь дать инструкцию как его забилдить и как что сделать, плс)
 
Начинающий
Статус
Оффлайн
Регистрация
4 Янв 2023
Сообщения
268
Реакции[?]
11
Поинты[?]
10K
говно
хвид для лоадера (хвид с гитхаба по сссылке)


main.cpp:
#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
#include <vector>
#include <openssl/sha.h>
#include <curl/curl.h>
#include <cstdlib>

std::string getHardwareID() {
    std::string volumeSerial;
    FILE* pipe = popen("vol C:", "r");
    if (!pipe) return "ERROR";

    char buffer[128];
    while (fgets(buffer, sizeof(buffer), pipe) != nullptr) {
        volumeSerial = buffer;
    }
    pclose(pipe);

    unsigned char hash[SHA256_DIGEST_LENGTH];
    SHA256((unsigned char*)volumeSerial.c_str(), volumeSerial.size(), hash);

    std::ostringstream oss;
    for (int i = 0; i < SHA256_DIGEST_LENGTH; ++i) {
        oss << std::hex << (int)hash[i];
    }
    return oss.str();
}

size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* userp) {
    size_t totalSize = size * nmemb;
    userp->append((char*)contents, totalSize);
    return totalSize;
}

bool checkHardwareID(const std::string& userHwid) {
    std::string url = "ССЫЛКА НА РАВ ФАЙЛА С ХВИДАМИ";

    CURL* curl;
    CURLcode res;
    std::string readBuffer;

    curl_global_init(CURL_GLOBAL_DEFAULT);
    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
        res = curl_easy_perform(curl);
        curl_easy_cleanup(curl);
    
        if (res != CURLE_OK) {
            std::cerr << "Error: " << curl_easy_strerror(res) << std::endl;
            return false;
        }

        std::istringstream responseStream(readBuffer);
        std::string line;
        while (std::getline(responseStream, line)) {
            if (line == userHwid) {
                std::cout << "\nещкере" << std::endl;
                return true;
            }
        }
        std::cout << "\nті хакєр что лі?" << std::endl;
        return false;
    }
    return false;
}

int main() {
    std::string userHwid = getHardwareID();
    checkHardwareID(userHwid);
    return 0;
}
Получение HWID

HWID:
#include <iostream>
#include <string>
#include <sstream>
#include <openssl/sha.h>
#include <cstdlib>

std::string getHWID() {
    std::string volumeSerial;
    FILE* pipe = popen("vol C:", "r");
    if (!pipe) return "ERROR";

    char buffer[128];
    while (fgets(buffer, sizeof(buffer), pipe) != nullptr) {
        volumeSerial = buffer;
    }
    pclose(pipe);

    unsigned char hash[SHA256_DIGEST_LENGTH];
    SHA256((unsigned char*)volumeSerial.c_str(), volumeSerial.size(), hash);

    std::ostringstream oss;
    for (int i = 0; i < SHA256_DIGEST_LENGTH; ++i) {
        oss << std::hex << (int)hash[i];
    }
    return oss.str();
}

int main() {
    std::string hwid = getHWID();
    std::cout << "HWID: " << hwid << std::endl;
    std::cin.get();
    return 0;
}
я такие лоудеры в 5 лет делал а щас тебе уже скорей 14 и ты такую хрень делаешь
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
12 Дек 2022
Сообщения
140
Реакции[?]
0
Поинты[?]
0
(Не бейте) можешь дать инструкцию как его забилдить и как что сделать, плс)
хд чел лучше на пайтоне лоадер спастить, он проще, тем более чел слил не лоадер а именно проверку хвида
 
Пользователь
Статус
Оффлайн
Регистрация
13 Сен 2021
Сообщения
633
Реакции[?]
117
Поинты[?]
44K
Возненавидели пользователя во имя ненависти, в чём смысл? Вам заняться нечем, дорогие люди?
 
onetap.su technology
Пользователь
Статус
Оффлайн
Регистрация
20 Июн 2020
Сообщения
391
Реакции[?]
111
Поинты[?]
4K
"чатгпт,напиши скрипт лоадера с++ что бы я высрал щитпост на югейме, типо таких лоадеров по пастбину никогда небыло."
 
Начинающий
Статус
Оффлайн
Регистрация
18 Сен 2024
Сообщения
33
Реакции[?]
0
Поинты[?]
0
Начинающий
Статус
Оффлайн
Регистрация
12 Дек 2022
Сообщения
53
Реакции[?]
4
Поинты[?]
4K
кубоголовый попросил чатгтп высрать недо хвид лоадер, что-бы что?
 
Начинающий
Статус
Оффлайн
Регистрация
7 Окт 2023
Сообщения
231
Реакции[?]
3
Поинты[?]
4K
Начинающий
Статус
Оффлайн
Регистрация
22 Авг 2023
Сообщения
307
Реакции[?]
17
Поинты[?]
15K
какой позор блять кто тебя нахуй просил?
ахфыхвхыфвфы блять что это?
main.cpp:
std::string getHardwareID() {
    std::string volumeSerial;
    FILE* pipe = popen("vol C:", "r");
    if (!pipe) return "ERROR";

    char buffer[128];
    while (fgets(buffer, sizeof(buffer), pipe) != nullptr) {
        volumeSerial = buffer;
    }
    pclose(pipe);

    unsigned char hash[SHA256_DIGEST_LENGTH];
    SHA256((unsigned char*)volumeSerial.c_str(), volumeSerial.size(), hash);

    std::ostringstream oss;
    for (int i = 0; i < SHA256_DIGEST_LENGTH; ++i) {
        oss << std::hex << (int)hash[i];
    }
    return oss.str();
}
[I]
тебе далеко до такого могущества, он Великий кодер
"чатгпт,напиши скрипт лоадера с++ что бы я высрал щитпост на югейме, типо таких лоадеров по пастбину никогда небыло."
скрипт :roflanEbalo:
 
Эксперт
Статус
Оффлайн
Регистрация
29 Мар 2021
Сообщения
1,605
Реакции[?]
607
Поинты[?]
48K
никак же не поменять в дата секции твою строку:
C++:
std::string url = "ССЫЛКА НА РАВ ФАЙЛА С ХВИДАМИ";
 
Начинающий
Статус
Оффлайн
Регистрация
8 Апр 2023
Сообщения
245
Реакции[?]
26
Поинты[?]
30K
никак же не поменять в дата секции твою строку:
C++:
std::string url = "ССЫЛКА НА РАВ ФАЙЛА С ХВИДАМИ";
Нуу а даже если и поменяешь, ты же не знаешь алгоритм получения, а даже если и знаешь то не проще просто пропатчить и не ебаться с подменой, хотя имхо это пустышка.
 
Начинающий
Статус
Оффлайн
Регистрация
27 Окт 2024
Сообщения
61
Реакции[?]
0
Поинты[?]
0
какой позор блять кто тебя нахуй просил?
ахфыхвхыфвфы блять что это?
main.cpp:
std::string getHardwareID() {
    std::string volumeSerial;
    FILE* pipe = popen("vol C:", "r");
    if (!pipe) return "ERROR";

    char buffer[128];
    while (fgets(buffer, sizeof(buffer), pipe) != nullptr) {
        volumeSerial = buffer;
    }
    pclose(pipe);

    unsigned char hash[SHA256_DIGEST_LENGTH];
    SHA256((unsigned char*)volumeSerial.c_str(), volumeSerial.size(), hash);

    std::ostringstream oss;
    for (int i = 0; i < SHA256_DIGEST_LENGTH; ++i) {
        oss << std::hex << (int)hash[i];
    }
    return oss.str();
}
[I]
бабку убей
 
Сверху Снизу