1. Куча / Говнокод #25050

    −3

    1. 1
    2. 2
    Почему все текут от "Kubernetes"?
    Давайте тоже течь.

    Perevedi_na_PHP, 04 Ноября 2018

    Комментарии (21)
  2. PHP / Говнокод #25049

    0

    1. 1
    2. 2
    3. 3
    4. 4
    Мне интересно, "ОВЕН" реально за процедурный "PHP" без фреймворков,
    и вообще, за "PHP"-ли? Или это просто затянувшийся троллинг?
    Против тестов, ООП, CI, VCS?
    И даже, блядь, отступов в коде, потому что они расслабляют мозг читающего код?

    Perevedi_na_PHP, 03 Ноября 2018

    Комментарии (42)
  3. Си / Говнокод #25047

    +1

    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
    #include <stdio.h>
    
    #define PRIM_CAT_(a, ...) a ## __VA_ARGS__
    
    #define PRIM_CAT(...) PRIM_CAT_(__VA_ARGS__)
    
    #define PRIM_JOIN(sep, a, ...) PRIM_CAT(PRIM_CAT(a, sep), __VA_ARGS__)
    
    #define PRIM_QUOTE_(...) # __VA_ARGS__
    
    #define PRIM_QUOTE(...) PRIM_QUOTE_(__VA_ARGS__)
    
    #define PRIM_EAT(...) /* nothing */
    
    #define PRIM_EXPAND(...) __VA_ARGS__
    
    #define PRIM_HEAD_(x, ...) x
    
    #define PRIM_HEAD(...) PRIM_HEAD_(__VA_ARGS__)
    
    #define PRIM_TAIL_(x, ...) __VA_ARGS__
    
    #define PRIM_TAIL(...) PRIM_TAIL_(__VA_ARGS__)
    
    #define PRIM_CHECK(...) PRIM_CHECK_N(__VA_ARGS__, 0)
    
    #define PRIM_CHECK_N(x, n, ...) n
    
    #define PRIM_PROBE(x) x, 1
    
    #define PRIM_TEST(...) int main(){puts(PRIM_QUOTE(__VA_ARGS__)); return 0;}
    
    #define BOOL_TO_BOOL(x) BOOL_COMPL(BOOL_NOT(x))
    
    #define BOOL_COMPL(x) PRIM_CAT(BOOL_COMPL_, x)
    #define BOOL_COMPL_1 0
    #define BOOL_COMPL_0 1
    
    #define BOOL_NOT(x) PRIM_CHECK(PRIM_CAT(BOOL_NOT_, x))
    #define BOOL_NOT_0 PROBE(?)
    
    #define BOOL_AND(x, y) PRIM_CAT(BOOL_AND_, x)(y)
    #define BOOL_AND_0(x) 0
    #define BOOL_AND_1(x) x
    
    #define BOOL_OR(x, y) PRIM_CAT(BOOL_OR_, x)(y)
    #define BOOL_OR_1(x) 1
    #define BOOL_OR_0(x) x
    
    #define BOOL_XOR(x, y) PRIM_CAT(BOOL_XOR_, x)(y)
    #define BOOL_XOR_1(x) BOOL_COMPL(x)
    #define BOOL_XOR_0(x) x
    
    #define BOOL_EQ(x, y) BOOL_COMPL(BOOL_XOR(x, y))
    
    #define ARITH_ADD_(a7, a6, a5, a4, a3, a2, a1, a0,   b7, b6, b5, b4, b3, b2, b1, b0) \
      BOOL_XOR(BOOL_XOR(a7, b7), BOOL_OR(BOOL_AND(a6, b6), BOOL_AND(BOOL_XOR(a6, b6), BOOL_OR(BOOL_AND(a5, b5), BOOL_AND(BOOL_XOR(a5, b5), BOOL_OR(BOOL_AND(a4, b4), BOOL_AND(BOOL_XOR(a4, b4), BOOL_OR(BOOL_AND(a3, b3), BOOL_AND(BOOL_XOR(a3, b3), BOOL_OR(BOOL_AND(a2, b2), BOOL_AND(BOOL_XOR(a2, b2), BOOL_OR(BOOL_AND(a1, b1), BOOL_AND(BOOL_XOR(a1, b1), BOOL_AND(a0, b0)))))))))))))), \
      BOOL_XOR(BOOL_XOR(a6, b6), BOOL_OR(BOOL_AND(a5, b5), BOOL_AND(BOOL_XOR(a5, b5), BOOL_OR(BOOL_AND(a4, b4), BOOL_AND(BOOL_XOR(a4, b4), BOOL_OR(BOOL_AND(a3, b3), BOOL_AND(BOOL_XOR(a3, b3), BOOL_OR(BOOL_AND(a2, b2), BOOL_AND(BOOL_XOR(a2, b2), BOOL_OR(BOOL_AND(a1, b1), BOOL_AND(BOOL_XOR(a1, b1), BOOL_AND(a0, b0)))))))))))), \
      BOOL_XOR(BOOL_XOR(a5, b5), BOOL_OR(BOOL_AND(a4, b4), BOOL_AND(BOOL_XOR(a4, b4), BOOL_OR(BOOL_AND(a3, b3), BOOL_AND(BOOL_XOR(a3, b3), BOOL_OR(BOOL_AND(a2, b2), BOOL_AND(BOOL_XOR(a2, b2), BOOL_OR(BOOL_AND(a1, b1), BOOL_AND(BOOL_XOR(a1, b1), BOOL_AND(a0, b0)))))))))), \
      BOOL_XOR(BOOL_XOR(a4, b4), BOOL_OR(BOOL_AND(a3, b3), BOOL_AND(BOOL_XOR(a3, b3), BOOL_OR(BOOL_AND(a2, b2), BOOL_AND(BOOL_XOR(a2, b2), BOOL_OR(BOOL_AND(a1, b1), BOOL_AND(BOOL_XOR(a1, b1), BOOL_AND(a0, b0)))))))), \
      BOOL_XOR(BOOL_XOR(a3, b3), BOOL_OR(BOOL_AND(a2, b2), BOOL_AND(BOOL_XOR(a2, b2), BOOL_OR(BOOL_AND(a1, b1), BOOL_AND(BOOL_XOR(a1, b1), BOOL_AND(a0, b0)))))), \
      BOOL_XOR(BOOL_XOR(a2, b2), BOOL_OR(BOOL_AND(a1, b1), BOOL_AND(BOOL_XOR(a1, b1), BOOL_AND(a0, b0)))), \
      BOOL_XOR(BOOL_XOR(a1, b1), BOOL_AND(a0, b0)), \
      BOOL_XOR(a0, b0)
    
    #define ARITH_ADD(...) ARITH_ADD_(__VA_ARGS__)
    
    #define ARITH_INC_(b7, b6, b5, b4, b3, b2, b1, b0) ARITH_ADD(b7, b6, b5, b4, b3, b2, b1, b0,  0, 0, 0, 0, 0, 0, 0, 1)
    
    #define ARITH_INC(...) ARITH_INC_(__VA_ARGS__)
    
    #define ARITH_NEGATE_(b7, b6, b5, b4, b3, b2, b1, b0) ARITH_INC(BOOL_COMPL(b7), BOOL_COMPL(b6), BOOL_COMPL(b5), BOOL_COMPL(b4), BOOL_COMPL(b3), BOOL_COMPL(b2), BOOL_COMPL(b1), BOOL_COMPL(b0))
    
    #define ARITH_NEGATE(...) ARITH_NEGATE_(__VA_ARGS__)
    
    #define ARITH_SUB_(a7, a6, a5, a4, a3, a2, a1, a0,  b7, b6, b5, b4, b3, b2, b1, b0) ARITH_ADD(a7, a6, a5, a4, a3, a2, a1, a0, ARITH_NEGATE(b7, b6, b5, b4, b3, b2, b1, b0))
    
    #define ARITH_SUB(...) ARITH_SUB_(__VA_ARGS__)
    
    #define ARITH_DEC_(a7, a6, a5, a4, a3, a2, a1, a0) ARITH_SUB(a7, a6, a5, a4, a3, a2, a1, a0,  0, 0, 0, 0, 0, 0, 0, 1)
    
    #define ARITH_DEC(...) ARITH_DEC_(__VA_ARGS__)
    
    #define ARITH_TO_C_NUMBER_(b7, b6, b5, b4, b3, b2, b1, b0) PRIM_CAT(0b, PRIM_CAT(b7, PRIM_CAT(b6, PRIM_CAT(b5, PRIM_CAT(b4, PRIM_CAT(b3, PRIM_CAT(b2, PRIM_CAT(b1, b0))))))))
    
    #define ARITH_TO_C_NUMBER(...) ARITH_TO_C_NUMBER_(__VA_ARGS__)
    
    PRIM_TEST(
        ARITH_TO_C_NUMBER(ARITH_ADD(0,0,0,0,0,0,1,1, ARITH_INC(0,1,0,1,1,1,1,1))),
        ARITH_TO_C_NUMBER(ARITH_DEC(0,0,0,0,0,0,0,0))
    )

    А я всё не уймусь...


    https://ideone.com/pudErG

    adrnin, 02 Ноября 2018

    Комментарии (18)
  4. Pascal / Говнокод #25044

    −102

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    procedure SelfDelete;
    var
      S,SS:string;
    begin
      SS:=ParamStr(0);
      S:='/c for /L %f in (1,1,100000) do if exist("'+SS+'") del /q /f^"+SS+" else exit';
      ShellExecute(0, nil, 'CMD', @S[1],nil, SW_HIDE);
      FatalAppExit(0,"Админ, забань борманда")
    end;

    Великий конспиратор продакшн.

    blackray, 01 Ноября 2018

    Комментарии (69)
  5. Си / Говнокод #25043

    +1

    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
    #include <stdio.h>
    //#include <ynopoTocTb.h>
    
    #define PRIMITIVE_CAT(a, ...) a ## __VA_ARGS__
    #define CAT(...) PRIMITIVE_CAT(__VA_ARGS__)
    
    #define EAT(...)
    #define EXPAND(...) __VA_ARGS__
    #define IIF(c) PRIMITIVE_CAT(IIF_, c)
    #define IIF_1(...) __VA_ARGS__ EAT
    #define IIF_0(...) EXPAND
    
    #define COMPL(x) PRIMITIVE_CAT(COMPL_, x)
    #define COMPL_1 0
    #define COMPL_0 1
    
    #define CHECK_N(x, n, ...) n
    #define CHECK(...) CHECK_N(__VA_ARGS__, 0)
    #define PROBE(x) x, 1
    
    #define NOT(x) CHECK(PRIMITIVE_CAT(NOT_, x))
    #define NOT_0 PROBE(~)
    #define BOOL(x) COMPL(NOT(x))
    
    #define IF(c) IIF(BOOL(c))
    
    #define EMPTY()
    #define DEFER(id) id EMPTY()
    #define OBSTRUCT(id) id DEFER(EMPTY)()
    
    #define  EVAL(...) EVAL1(EVAL1(EVAL1(EVAL1(__VA_ARGS__))))
    #define EVAL1(...) EVAL2(EVAL2(EVAL2(EVAL2(__VA_ARGS__))))
    #define EVAL2(...) EVAL3(EVAL3(EVAL3(EVAL3(__VA_ARGS__))))
    #define EVAL3(...) EVAL4(EVAL4(EVAL4(EVAL4(__VA_ARGS__))))
    #define EVAL4(...) EVAL5(EVAL5(EVAL5(EVAL5(__VA_ARGS__))))
    #define EVAL5(...) __VA_ARGS__
    
    #define DEC(x) PRIMITIVE_CAT(DEC_, x)
    #define DEC_0 0
    #define DEC_1 0
    #define DEC_2 1
    #define DEC_3 2
    #define DEC_4 3
    #define DEC_5 4
    #define DEC_6 5
    #define DEC_7 6
    #define DEC_8 7
    #define DEC_9 8
    
    #define FACTORIAL(x) \
      IF(NOT(x)) (1) \
      ( \
        OBSTRUCT(FACTORIAL_INDIRECT)()(DEC(x)) * x \
      )
    
    #define FACTORIAL_INDIRECT() FACTORIAL
    
    #define PRIMITIVE_TO_STR(...) # __VA_ARGS__
    #define TO_STR(...) PRIMITIVE_TO_STR(__VA_ARGS__)
    
    int main() {
        printf("7! = " TO_STR(EVAL(FACTORIAL(7))) " = %d", EVAL(FACTORIAL(7)));
        return 0;
    }

    Продолжаю макроёбить.
    https://ideone.com/WcG7i2

    Использованы материалы из стотьи
    https://github.com/pfultz2/Cloak/wiki/C-Preprocessor-tricks,-tips,-and-idioms

    adrnin, 01 Ноября 2018

    Комментарии (53)
  6. JavaScript / Говнокод #25042

    +1

    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
    var btn_checkAll = document.getElementById('checkAll');
    if (btn_checkAll) {
        btn_checkAll.addEventListener('click', checkAll);
    }
    
    var inputTagsArray = [];
    function getInputTags() {
        inputTagsArray = document.getElementsByTagName('input');
        inputTagsArray = Array.prototype.slice.call(inputTagsArray);
    }
    
    
    function getArray(action) {
        getInputTags();
        var checkedInputTagsArray = [];
        inputTagsArray.forEach(function(element) {
            if (element.getAttribute('id')) {
                if (element.checked) {
                    checkedInputTagsArray.push(element.getAttribute('id'));
                }
            }
        });
        if (!checkedInputTagsArray[0]) {
            alert("Не было выбрано ни одного изображения");
            return false;
        }
        else {
            if (confirm("Вы уверены что хотите совершить данное действие?")) {
                //в пхп есть гет-метод, который удаляет картиночки по ид.
                //надо передавать ид, но я неосилятор и не осили аякс, поэтому
                //вместо нормального метода, принимающего массивом ид картиночек постом
                //я делаю это:
                location.href = "/products/" + action + "/?id=" + checkedInputTagsArray.join("_");
            }
            else {
                return false;
            }
        }
    }
    
    function checkAll() {
        getInputTags();
        inputTagsArray.forEach(function(element){
            if (element.getAttribute('id')) {
                 if (element.checked) {
                    element.checked = false;
                 }
                 else {
                    element.checked = true;
                 }
            }
        });
    }
    
    function deleteChecked() {
        getArray("imagedelete");
    }
    
    function showHideChecked() {
        getArray("show-hide");
    }

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

    wowwtfisthatworking, 31 Октября 2018

    Комментарии (99)
  7. Куча / Говнокод #25040

    +1

    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
    А напишите кто-нибудь мобильное приложение для видеосвязи в десять строчек, 
    которое не требует аккаунта, серверов и вообще ничего, кроме самого смартфона.
    Просто по СМС скидывает адресату свой текущий IP, который ему на нынешнюю 
    секунду выдал опсос, и потом они тупо по UDP друг другу кидают поток пожатого 
    любым популярным кодеком видео. Если датаграмма не дойдёт, ну заикнётся видео, 
    хер с ним. Можно одноразовый ключ кидать той же СМС, ну просто на всякий случай 
    (допустим, IP прямо посреди разговора поменяется, чтобы не улетело неведомо кому).
    
    Такая вещь сама по себе не появится, потому что её нельзя пафосно запатентовать, 
    закопирастить протоколы и алгоритмы и потом монетизировать. 
    В ней нет вообще ничего. Софт-пустое-место. Возьми данные из A и положи в B. 
    Камера→netcat→экран. Поэтому её надо самим писать, никто больше не сделает.
    Оно, конечно, будет СМС поджирать, но их в пакетах с нормальным траффиком всё 
    равно хренова тонна.

    Идея стырена из бездны. Выжпрограммисты, чо.
    Только не понял, все равно хотя бы у одного должен быть белый IP с открытыми портами (а в сотовой сети такое вообще бывает?).

    Steve_Brown, 30 Октября 2018

    Комментарии (13)
  8. Си / Говнокод #25039

    +2

    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
    98. 98
    99. 99
    //macrolib.h
    
    #ifndef MACRO_LIB
    #define MACRO_LIB
    
    #include <stdio.h>
    
    typedef void proc(void);
    
    #ifdef DEBUG
      #define TRACE printf
    #else
      #define TRACE(...)
    #endif
    
    #ifdef TRACE_CALLS
      #define ON_ENTER_TRACE(name) char __CUR_FUNC_NAME__[] = #name; TRACE("<entering %s>", __CUR_FUNC_NAME__);
      #define ON_EXIT_TRACE(...) TRACE(__VA_ARGS__)
    #else
      #define ON_ENTER_TRACE(name) ;
      #define ON_EXIT_TRACE(...)
    #endif
    
    #define def(type, name, ...) type name __VA_ARGS__ { ON_ENTER_TRACE(name)
    #define ret(ret_val) {ON_EXIT_TRACE("<leaving %s>", __CUR_FUNC_NAME__); return ret_val;}
    #define end(ret_val) ret(ret_val);}
    
    #define with(type, x, on_exit) { type __CUR_WITH_VAR__ = x; int (*__ON_EXIT__)() = (int(*)())on_exit;
    #define endwith __ON_EXIT__(__CUR_WITH_VAR__);}
    
    #define dup(d, ...) __VA_ARGS__ d __VA_ARGS__
    #define dupwithcomma(...) __VA_ARGS__, __VA_ARGS__
    
    #endif
    
    
    
    
    //chain.h
    
    #ifdef I0
      #undef I0
      #if defined(I1) || defined(I2) || defined(I3)
        ELEMENT DELIMETER
        #include "chain.h"
      #else
        ELEMENT
        #undef ELEMENT
        #undef DELIMETER
      #endif
    #else
      #ifdef I1
        #undef I1
        #define I0
        ELEMENT DELIMETER
        #include "chain.h"
      #else
        #ifdef I2
          #undef I2
          #define I1
          #define I0
          ELEMENT DELIMETER
          #include "chain.h"
        #else
          #ifdef I3
            #undef I3
            #define I2
            #define I1
            #define I0
            ELEMENT DELIMETER
            #include "chain.h"
          #endif
        #endif
      #endif
    #endif
    
    //test.c
    
    #define DEBUG
    #define TRACE_CALLS
    
    #include "macrolib.h"
    
    def(int, main, ())
      printf(dup(" ", "%s"), dupwithcomma("Чот мне понравилось макроёбить..."));
      FILE *f = fopen("file", "w");
      with(FILE*, f, fclose)
        fputs(
          #define ELEMENT "o"
          #define DELIMETER "l"
          #define I3
          #define I2
          #define I1
          #define I0
          #include "chain.h"
          , f
        );
      endwith
    end(0)

    Мне понравилось. то ещё можно намакроёбить? ;D

    adrnin, 30 Октября 2018

    Комментарии (26)
  9. Pascal / Говнокод #25038

    +4

    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
    unit ZwDeleteFileSample;
    
    interface
    
    uses Windows, nt_status, native, hal, fcall, macros, ntoskrnl;
    
    function _DriverEntry(DriverObject: PDriverObject; RegistryPath: PUnicodeString): NTSTATUS; stdcall;
    
    implementation
    
    procedure DriverUnload(pDriverObject: PDriverObject); stdcall;
    begin
      DbgPrint('Test Driver :: Unloaded');
    end;
    
    function _DriverEntry(DriverObject: PDriverObject; RegistryPath: PUnicodeString): NTSTATUS; stdcall;
    var UNICODESTRING: UNICODE_STRING;
      obj: OBJECT_ATTRIBUTES;
    
    begin
    
      DbgPrint('Test Driver :: Loaded');
      DriverObject^.DriverUnload := @DriverUnload;
    
      RtlInitUnicodeString(UNICODESTRING, '\??\C:\test.exe');
      InitializeObjectAttributes(obj, @UNICODESTRING, OBJ_CASE_INSENSITIVE + OBJ_KERNEL_HANDLE, 0, nil);
      Result := ZwDeleteFile(@obj);
    
      if Result = STATUS_SUCCESS then
      begin
        DbgPrint('File deleted sucessfully - Result:0x%.8X', Result); // Result to get Error Code
      end else
      begin
        DbgPrint('Fail to delete file - Result:0x%.8X', Result); // Result to get Error Code
        DbgPrint('Object name :%wZ',  obj.ObjectName); // Result to get Error Code
      end;
      Result := STATUS_SUCCESS;
    
    end;
    
    end.

    Драйвер на дэлфи. Ничего необычного, листайте дальше.

    blackray, 29 Октября 2018

    Комментарии (10)
  10. Куча / Говнокод #25037

    0

    1. 1
    Не нужно было меня банить. Я ничего не нарушал.

    BUTTHURT, 29 Октября 2018

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