1. Си / Говнокод #8346

    +132

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    int LoadFunctions() {
        HINSTANCE kernel;
        decrypt(krn);
        if((kernel = LoadLibraryA(decb)) == NULL) {
            return 1;
        } else {
            decrypt(crf);
            if((CreateFile = (CreateFileP) GetProcAddress(kernel, decb)) == NULL) return 1;
            decrypt(sfpe);
            if((SetFilePointerEx = (SetFilePointerExP) GetProcAddress(kernel, decb)) == NULL) return 1;
            decrypt(wf);
            if((WriteFile = (WriteFileP) GetProcAddress(kernel, decb)) == NULL) return 1;
            decrypt(ch);
            if((CloseHandle = (CloseHandleP) GetProcAddress(kernel, decb)) == NULL) return 1;
            decrypt(ffb);
            if((FlushFileBuffers = (FlushFileBuffersP) GetProcAddress(kernel, decb)) == NULL) return 1;
        }
        HANDLE user;
        decrypt(us);
        if((user = LoadLibraryA(decb)) == NULL) {
            return 1;
        } else {
            decrypt(mba);
            if((MessageBoxA = (MessageBoxAP) GetProcAddress(user, decb)) == NULL) {
                return 1; // ну зачем?
            }
        }
    
        return 0;
    }

    Бида-бида, MessageBox не загрузилась - повод завершить выполнение. Хотя все важнейшие функции уже на месте.

    Запостил: danilissimus, 28 Октября 2011

    Комментарии (8) RSS

    • если все претензии к этому коду у вас сводятся только к строчке "// ну зачем", то у меня для вас плохие новости
      Ответить
    • а по-моему круто возращать труъ, если обломались
      ну и школокриптография тоже
      Ответить
      • Здесь наоборот. Тру если зафейлились. Фолс если все прошло упешно.
        Ответить
        • все правильно - этот код скорее ожидается быть нерабочим, нежели рабочим
          Ответить
      • "Правда всегда одна, это сказал фараон..." Ошибки-то могут быть разными.

        Круто прибивать 0 и тру друг к другу.
        Ответить
    • else для if лишнее
      остальное в норме имхо, т.к. по ошибке лучше сразу прерывать исполнение кода, лишая его "структурности" дополнительными else
      чем "площе" код, тем проще
      Ответить
      • с другой стороны зачем делать очередной декрипт, если на очередном шаге все может поломаться?
        а с третьей стороны, пока хакер доберется до последнего декрипта (иначе зачем декрипты нужны) - невозможно будет узнать наверняка, для чего разраб придумал именно такую последовательность действий
        в общем суть претензии к коду непонятна в виду отсутствия понимания контекста, в котором код используется
        Ответить
    • показать все, что скрытоvanished
      Ответить

    Добавить комментарий