1. C# / Говнокод #3274

    +136

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    enum Bool
    {
        True,
        False,
        FileNotFound
    };

    Как оказывается Boolean может быть не только long, но и FileNotFound.

    Нашел зде©ь http://thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx

    HyperGeek, 19 Мая 2010

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

    +113

    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
    private static void assertNoReflection()
    {
        foreach (StackFrame stackFrame in new StackTrace().GetFrames())
        {
            if (stackFrame.GetMethod().DeclaringType.Namespace == "System.Reflection")
            {
                throw new MethodAccessException();
            }
        }
    }
    
    internal static string GetKey()
    {
        assertNoReflection();
    
    // ...
    }

    Вот так вот приходится говнить, потому что в дотнете рефлексией можно спокойно вызывать internal- и private- методы.
    assertNoReflection(); проверяет, что вверх по стеку вызовов никто не балуется рефлексией.
    После assertNoReflection(); из нативной длл получаем обфусцированную (вручную, лол) строку, которая далее с помощью запутанных алгоритмов (некоторые параметры для "расшифровки" опять берутся из нативной длл) приводит её в вид пароля (для доступа к запароленному архиву).
    Софт не прямо уж суперсекретный, просто нужно скрыть ресурсы хотя бы для приличия. Пароль через подключение к серверу не катит.
    Ко всему этому оно собрано в одно exe моновским mkbundle'ом (рефлектор не может открыть!) и поверх upx'ом. В общем, большое количество кулхацкеров отсекается (должны знать ассемблер и MSIL).
    Чувствую, что говнорешение, но не могу придумать что-то более умное. Обфускаторы тоже не очень катят, ибо плохо дружат с моно.

    cfdev, 18 Мая 2010

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

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    public bool Inverse(bool value){
       if(value.ToString().Length == 4)
          return false;
       else return true;
    }

    было дело...

    tazakara, 17 Мая 2010

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

    +119

    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
    private static bool TryDeleteFile(string path)
            {
                try
                {
                    File.Delete(path);
                    return true;
                }
                catch (IOException e)
                {
                    return false;
                }
                catch (UnauthorizedAccessException e)
                {
                    return false;
                }
                catch (ArgumentException ae)
                {
                    return false;
                }
                catch (NotSupportedException e)
                {
                    return false;
                }
            }

    Простое удаление файла. Простая проверка в MSDN показывает, что перехватываются все возможные исключения

    gopher, 14 Мая 2010

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

    +109

    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
    private void timer1_Tick(object sender, EventArgs e)
    
            {
    
                Process[] myP = Process.GetProcessesByName("TASKMGR");
    
                foreach (Process p in myP)
    
                {
    
                    p.CloseMainWindow();
    
                }
    
            }

    Защита! Чтобы студенты не махлевали. Программа закрывается только вводом пароля. Таймер хуярит форму все время поверх всех окон и люто ненавидит все, что похоже на "диспетчер задач"...

    Anderson, 13 Мая 2010

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

    +118

    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
    #region копирование в буфер
            private void copia_Click(object sender, EventArgs e)
            {
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < listBox1.Items.Count; i++)
                {
                    sb.Append(listBox1.Items[i].ToString());//Добавляем строчку из листБокса
                    sb.Append((char)13);//Перенос строки
                    sb.Append((char)10);//Перевод каретки
                }
                Clipboard.SetText(sb.ToString());//Отправляем всё в КлипБорд
            }
            #endregion
    
            #region Сохранить в файл
    
            private void save_Click(object sender, EventArgs e)
            {
                saveFileDialog1.DefaultExt = ".txt";
                saveFileDialog1.OverwritePrompt = true;
                saveFileDialog1.Title = "Координаты";
                saveFileDialog1.Filter = "Text Files|*.txt";
    
                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    StreamWriter sw = new StreamWriter(saveFileDialog1.FileName);
                    StringBuilder sb = new StringBuilder();
                    for (int i = 0; i < listBox1.Items.Count; i++)
                    {
                        sb.Append(listBox1.Items[i].ToString());//Добавляем строчку из листБокса
                        sb.Append((char)13);//Перенос строки
                        sb.Append((char)10);//Перевод каретки
                    }
                    sw.WriteLine(sb);
                    sw.Flush();
                    sw.Close();
                }
            }
            #endregion

    L5D, 12 Мая 2010

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

    +103

    1. 1
    2. 2
    3. 3
    4. 4
    private ListBoxItem FindItem(string guid)
    {
            return _userlist.Items.Cast<ListBoxItem>().FirstOrDefault(item => ((TextBlock) ((StackPanel) item.Content).Children[1]).Text == guid);
    }

    Функция поиска элемента в ListBox по значению Guid в одну строку. Наговнокодил ReSharper.

    botinko, 09 Мая 2010

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

    +112

    1. 1
    2. 2
    3. 3
    4. 4
    public List<string> GetAllowedActionsOnHistory(UserInfo info, string objectName, string action, bool def) {
          UserManager.Instance.Register(info);
          return StaticFunctions.GetAllowedActions(new ObjectTypesWorker().GetByName("История сотрудника"));
    }

    Получение каких-то прав :-D

    User123, 07 Мая 2010

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

    +114

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    if (this.orderMode == 'alphabetically') {
        Element.writeAttribute(butSortByName, 'disabled');
        Element.addClassName(butSortByName, 'current_state');
       }
       if (this.orderMode == 'bygroup') {
        Element.writeAttribute(butSortByGroups, 'disabled');
        Element.addClassName(butSortByGroups, 'current_state');
       }
       if (this.orderMode == 'byvalue') {
        Element.writeAttribute(butSortByValues, 'disabled');
        Element.addClassName(butSortByValues, 'current_state');
       }

    ну вот разве это нормально ? ... (c) Valery

    dimas_art, 06 Мая 2010

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

    +121

    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
    [SecuritySafeCritical]
    public ObjectHandle CreateInstance(string assemblyName, string typeName)
    {
        if (this == null) // WTF?
        {
            throw new NullReferenceException();
        }
        if (assemblyName == null)
        {
            throw new ArgumentNullException("assemblyName");
        }
        return Activator.CreateInstance(assemblyName, typeName);
    }

    mscorlib 4.0
    System.AppDomain

    alexeykuptsov, 30 Апреля 2010

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