1. C++ / Говнокод #28203

    0

    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
    bool addPlayer(const Addr & addr,
        Poco::Nullable<const std::string> serverAddr,
        Poco::Nullable<bool> isKeyReceived,
        Poco::Nullable<std::string> key,
        Poco::Nullable<time_t> lastHashCheck,
        Poco::Nullable<std::string> digest)
    {
        bool isPlaying = !serverAddr.isNull();
        bool isKeyReceivedReal = isKeyReceived.isNull();
        time_t lastHashCheckReal = lastHashCheck.isNull() ? time(0) : lastHashCheck.value();
        std::string keyReal(key.isNull() ? "" : key.value());
        std::string playerAddr = addr.getHost();
        std::string serverAddrReal(serverAddr.isNull() ? "" : serverAddr.value());
        std::string digestReal = digest.isNull() ? "" : digest.value();
    
        Statement insert(*playersSession);
        insert << "INSERT INTO Players VALUES(?, ?, ?, ?, ?, ?, ?)",
            use(playerAddr),          // Addr
            use(serverAddrReal),      // Server
            use(isPlaying),
            use(isKeyReceivedReal),
            use(keyReal),             // Key
            use(lastHashCheckReal),
            use(digestReal);
        insert.execute();
    
        return true;
    }

    ISO, 03 Июня 2022

    Комментарии (20)
  2. C++ / Говнокод #28201

    0

    1. 1
    2. 2
    3. 3
    4. 4
    #define MIRAGE_COFU(T, name, ...) \
             inline struct _##name##cofu { T instance{ __VA_ARGS__ }; T& operator()(void) { return instance; }; \
             static bool destructed; ~_##name##cofu(void) { destructed = true; } static bool isDestructed(void) \
             { return destructed; } } name; inline bool _##name##cofu::destructed = false

    кофу

    kcalbCube, 01 Июня 2022

    Комментарии (41)
  3. C++ / Говнокод #28198

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    #include <stdio.h>
    
    int main() {
        char* pituh;
        puts(pituh);
        pituh = "kokoko";
        return 0;
    }

    Угадайте что выведет код?
    ISO и прочим скилловикам просьба воздержаться.

    https://ideone.com/sYrqiB

    3_dar, 29 Мая 2022

    Комментарии (73)
  4. C++ / Говнокод #28197

    0

    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
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    template<int I> struct Tag {};
    
    template<int I>
    struct StaticMock : mirage::ecs::Component<StaticMock<I>>
    {
    	static bool initializeds;
    	void initialize(void)
    	{
    		initializeds = true;
    	}
    };
    
    template<>
    struct StaticMock<2> : mirage::ecs::Component<StaticMock<2>>
    {
    	static bool initializeds;
    	void initialize(Tag<2>&)
    	{
    		initializeds = true;
    	}
    };
    
    template<int I>
    inline bool StaticMock<I>::initializeds = false;
    inline bool StaticMock<2>::initializeds = false;
    
    using Tag1 = Tag<1>;
    using StaticMock1 = StaticMock<1>;
    using Tag2 = Tag<2>;
    using StaticMock2 = StaticMock<2>;
    
    MIRAGE_CREATE_ON_STARTUP(StaticMock<0>, staticOnStartMock);
    MIRAGE_CREATE_ON_EVENT(Tag1, StaticMock1);
    MIRAGE_CREATE_WITH_EVENT(Tag2, StaticMock2);
    
    TEST(Ecs, StaticOnStart)
    {
    	EXPECT_EQ(StaticMock<0>::initializeds, true);
    }
    
    TEST(Ecs, StaticOnEvent)
    {
    	EXPECT_NE(StaticMock1::initializeds, true);
    	mirage::event::enqueueEvent<Tag1>();
    	std::this_thread::sleep_for(std::chrono::milliseconds(
    		mirage::ecs::processing::EventDispatcherProcessing::updatePeriod * 2));
    	EXPECT_EQ(StaticMock1::initializeds, true);
    }
    
    TEST(Ecs, StaticWithEvent)
    {
    	EXPECT_NE(StaticMock2::initializeds, true);
    	mirage::event::enqueueEvent<Tag2>();
    	std::this_thread::sleep_for(std::chrono::milliseconds(
    		mirage::ecs::processing::EventDispatcherProcessing::updatePeriod * 2));
    	EXPECT_EQ(StaticMock2::initializeds, true);
    }

    kcalbCube, 29 Мая 2022

    Комментарии (0)
  5. C++ / Говнокод #28195

    0

    1. 1
    2. 2
    3. 3
    4. 4
    try
    {
    }
    catch(...) { /*um, nice weather!*/}

    kcalbCube, 27 Мая 2022

    Комментарии (5)
  6. C++ / Говнокод #28192

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    #include <iostream>
    
    int main() {
        const char* pituh = {};
        std::cout << pituh;
    }

    Нахуя?

    3_dar, 26 Мая 2022

    Комментарии (7)
  7. C++ / Говнокод #28187

    0

    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
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    #define _CRT_SECURE_NO_WARNINGS
    #pragma comment(lib, "ntdll.lib")
    
    #include <Windows.h>
    #include <string>
    
    #define FLG_HEAP_ENABLE_TAIL_CHECK 0x10
    #define FLG_HEAP_ENABLE_FREE_CHECK 0x20
    #define FLG_HEAP_VALIDATE_PARAMETERS 0x40
    #define NT_GLOBAL_FLAG_DEBUGGED (FLG_HEAP_ENABLE_TAIL_CHECK | FLG_HEAP_ENABLE_FREE_CHECK | FLG_HEAP_VALIDATE_PARAMETERS)
    
    typedef NTSTATUS(NTAPI* pfnNtSetInformationThread)(
    	_In_ HANDLE	ThreadHandle,
    	_In_ ULONG ThreadInformationClass,
    	_In_ PVOID ThreadInformation,
    	_In_ ULONG ThreadInformationLenght);
    
    const ULONG ThreadHideFromDebugger = 0x11;
    
    typedef NTSTATUS(NTAPI* pfnNtQueryInformationProcess)(
    	_In_ HANDLE	ProcessHandle,
    	_In_ ULONG ProcessInformationClass,
    	_In_ PVOID ProcessInformation,
    	_In_ ULONG ProcessInformationLenght,
    	_Out_opt_ PULONG ReturnLenght);
    
    const UINT ProcessDebugPort = 7;
    
    void HideFromDebugger()
    {
    	HMODULE hNtDll = LoadLibrary("ntdll.dll");
    
    	if (!hNtDll)
    		throw std::exception("can't load kernel");
    
    	pfnNtSetInformationThread NtSetInformatioThread = (pfnNtSetInformationThread)
    		GetProcAddress(hNtDll, "NtSetInformationThread");
    
    	NTSTATUS status = NtSetInformatioThread(GetCurrentThread(), ThreadHideFromDebugger, NULL, NULL);
    }
    
    PVOID GetPEB()
    {
    	return (PVOID)__readfsword(0x0C * sizeof(PVOID));
    }
    
    int main()
    {
    	pfnNtQueryInformationProcess NtQueryInformationProcess = nullptr;
    	NTSTATUS status;
    	DWORD IsDebuggerPresent = 0;
    	HMODULE hNtDll = LoadLibrary("ntdll.dll");
    
    	if (!hNtDll)
    		throw std::exception("can't load kernel");
    	
    	NtQueryInformationProcess = (pfnNtQueryInformationProcess)GetProcAddress(hNtDll, "NtQueryInformationProcess");
    	void HideFromDebugger();
    
    	while (true)
    	{
    		PVOID pPEB = GetPEB();
    		DWORD offsetNtGlobalFlag = 0x68;
    		DWORD NtGlobalFlag = (DWORD)((PBYTE)pPEB + offsetNtGlobalFlag);
    
    		NTSTATUS stat = NtQueryInformationProcess(GetCurrentProcess(), ProcessDebugPort,
    			&IsDebuggerPresent, sizeof(DWORD), NULL);
    
    		if ((NtGlobalFlag & NT_GLOBAL_FLAG_DEBUGGED) || (stat == 0x00000000 && IsDebuggerPresent != 0))
    		{
    			MessageBox(NULL, "Close your fucking debuger!", "FUCK YOU", MB_OK);
    			return -1;
    		}
    	}
    
    	return 0;
    }

    PVOID, 23 Мая 2022

    Комментарии (26)
  8. C++ / Говнокод #28181

    0

    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
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    class Memory 
     { 
     public: 
             Memory() : hProcess{ nullptr }, pID{ 0 } {} 
             ~Memory() { SafeCloseHandle(hProcess); } 
      
             bool Attach(const char* _Process, DWORD rights) 
             { 
                     HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); 
      
                     if (hSnap == INVALID_HANDLE_VALUE) 
                             return false; 
      
                     PROCESSENTRY32 pe{ sizeof(PROCESSENTRY32) }; 
      
                     while (Process32Next(hSnap, &pe)) 
                             if (!strcmp(pe.szExeFile, _Process)) 
                             { 
                                     SafeCloseHandle(hSnap); 
                                     pID = pe.th32ProcessID; 
      
                                     hProcess = OpenProcess(rights, 0, pe.th32ProcessID); 
      
     #ifdef _DEBUG || DEBUG 
                                     if (hProcess) // Ok 
                                     { 
                                             std::cout << "Attaching to process: " << _Process << " -> "; 
                                             ColoredMessage("OK!", LGREEN, true); 
                                     } 
     #endif // DEBUG 
      
                                     return true; 
                             } 
      
     #ifdef _DEBUG || DEBUG 
                     std::cout << "Attaching to process: " << _Process << " -> "; 
                     ColoredMessage("FAIL!", LRED, true); 
     #endif // DEBUG 
      
                     SafeCloseHandle(hSnap); 
                     return false; 
             } 
      
             PModule GetModule(const char* _Module) 
             { 
                     HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pID); 
      
                     if (hSnap == INVALID_HANDLE_VALUE) 
                             return PModule{ 0, 0 }; 
      
                     MODULEENTRY32 mEntry{ sizeof(MODULEENTRY32) }; 
      
                     while (Module32Next(hSnap, &mEntry)) 
                             if (!strcmp(mEntry.szModule, _Module)) 
                             { 
                                     SafeCloseHandle(hSnap); 
      
                                     return PModule{ (DWORD)mEntry.hModule, mEntry.modBaseSize }; 
                             } 
      
     #ifdef _DEBUG || DEBUG 
                     std::cout << "Getting module: "; ColoredMessage("FAIL!", LRED, true); 
     #endif // DEBUG 
      
      
                     SafeCloseHandle(hSnap); 
                     return PModule{ 0, 0 }; 
             } 
      
             template <class _Ty> 
             _Ty read(DWORD _Addr) 
             { 
                     DWORD _dwRead; 
                     _Ty _Val; 
      
     #ifdef _DEBUG || DEBUG  
                     if (!ReadProcessMemory(hProcess, (LPCVOID)_Addr, &_Val, sizeof(_Ty), &_dwRead)) 
                     { 
                             std::cout << "Reading the memory: "; 
                             ColoredMessage("FAIL!", LRED, true); 
                     } 
     #else // DEBUG  
                     ReadProcessMemory(hProcess, (LPCVOID)_Addr, &_Val, sizeof(_Ty), &_dwRead) 
     #endif 
                             return _Val; 
             } 
      
             template <class _Ty> 
             void write(DWORD _Addr, _Ty _Val) 
             { 
                     DWORD _dwWrite; 
      
     #ifdef _DEBUG || DEBUG  
                     if (!WriteProcessMemory(hProcess, (LPVOID)_Addr, &_Val, sizeof(_Ty), &_dwWrite)) 
                     { 
                             std::cout << "Writing the memory: "; 
                             ColoredMessage("FAIL!", LRED, true);

    Ладно.

    Ddddddddd, 22 Мая 2022

    Комментарии (17)
  9. C++ / Говнокод #28158

    0

    1. 1
    #define $(x) [&](void)->auto{try{return (x);}catch(...){return decltype(x){};}}()

    Собачка

    kcalbCube, 09 Мая 2022

    Комментарии (9)
  10. C++ / Говнокод #28153

    0

    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
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    #include <iostream>
    #include <vector>
    #include <string>
    
    int main()
    {
        int n = 6;
        std::vector<int> vec;
    
        for (int i = 0; i < n; i++)
        {
            if ((i % 2) == 0)
            {
                std::reverse(vec.begin(), vec.end());
            }
    
            vec.push_back(i);
    
            if ((i % 2) != 0)
            {
                std::reverse(vec.begin(), vec.end());
            }
    
            for (int j = 0; j < vec.size(); j++)
            {
                std::cout << vec[j] + 1;
                if (j != vec.size() - 1)
                {
                    std::cout << "-";
                }
            }
            std::cout << "\n";
    
        }
    }

    Цель напечатать на экране следующее:
    1
    2-1
    1-2-3
    4-3-2-1
    1-2-3-4-5
    6-5-4-3-2-1

    насколько это говнокод от 0 до 10?

    pistael, 05 Мая 2022

    Комментарии (28)