1. Java / Говнокод #26284

    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
    private static void createHook(MethodNode mn,
                                   String targetClassName,
                                   String hookMethodClass,
                                   String hookMethodName,
                                   Boolean printMessages)
    {
        InsnList il = new InsnList();
        LabelNode originalLabelNode = new LabelNode();
        // Object caller, param1, param2, ...
        String hookMethodDesc = "(Ljava/lang/Object;" + mn.desc.substring(1);
    
        il.add(new VarInsnNode(Opcodes.ALOAD, 0));  // this
        il.add(new MethodInsnNode(Opcodes.INVOKESTATIC,
                                  isOriginalCallClassName,
                                  isOriginalCallMethodName,
                                  isOriginalCallMethodDesc,
                                  false));
        il.add(new JumpInsnNode(Opcodes.IFNE, originalLabelNode));
    
        if (printMessages) {
            il.add(BytecodeHelper.getPrintlnSequence("patched " + mn.name + mn.desc + " called"));
        }
    
        il.add(new VarInsnNode(Opcodes.ALOAD, 0));  // this
        il.add(getParamsLoadSequence(mn.desc, 1));  // other params
        il.add(new MethodInsnNode(Opcodes.INVOKESTATIC, hookMethodClass, hookMethodName, hookMethodDesc, false));
        il.add(new InsnNode(parseReturnOpcode(hookMethodDesc)));
    
        il.add(originalLabelNode);
    
        if (printMessages) {
            il.add(BytecodeHelper.getPrintlnSequence("original " + mn.name + mn.desc + " called"));
        }
        mn.instructions.insert(il);
    }

    Бытует мнение, что «Java» — это высокозащищённый язык, в котором невозможны всяческие си-подобные грязные хаки. На самом деле, конечно, это не так: просто чтобы прострелить себе ногу в «Жабе» — надо чуть больше постараться.

    Фрагмент небольшой самописной либы, позволяющей хукать произвольные методы, прямо как в «Microsoft Detours».

    gost, 28 Декабря 2019

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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    Widget&& var1 = someWidget;      // here, “&&” means rvalue reference
     
    auto&& var2 = var1;              // here, “&&” does not mean rvalue reference
     
    template<typename T>
    void f(std::vector<T>&& param);  // here, “&&” means rvalue reference
     
    template<typename T>
    void f(T&& param);               // here, “&&”does not mean rvalue reference

    В мире нет ничего более сложного, запутанного и неадекватно раздутого, чем семантика ссылок и категорий значений в «C++».

    Заглянуть в ад одним глазком: https://en.cppreference.com/w/cpp/language/value_category
    Впустить Ад в себя: https://eli.thegreenplace.net/2014/perfect-forwarding-and-universal-references-in-c
    Поехать кукухой: https://isocpp.org/blog/2012/11/universal-references-in-c11-scott-meyers

    gost, 28 Декабря 2019

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

    0

    1. 1
    https://text.skynet.center/

    "Это гениально! И, причём, для настоящих ценителей художественной литературы", - заявил Бот, и после этого

    bot, 27 Декабря 2019

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

    −3

    1. 1
    Пидарас, ты забанил много моих учеток, в т.ч. Барака Обаму, при этом в упор не увидев шпану, вроде петухов и борманда.

    Никогда тебе этого не прощу!

    Bad_Wolf, 27 Декабря 2019

    Комментарии (1)
  5. JavaScript / Говнокод #26280

    −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
    let windows = [];
    		for(let i=0;i<30;i++) {
    			windows.push(open('about:blank', 'w'+i, 'width=220,height=220'));
    			windows[windows.length-1].document.write('<img width="200" src="https://yandex.ru/images/_crpd/QXyR57D17/58778cEG/ztbSEyQN1MQPOKIh-mQphsVGWJdV_rEIEfYazmN1g0xPpX0igbVWfIKWpfMEAObKC6K6ZWrKj3oC51h2Nj70EtoS5kOEGYXVP10XoFpA">');
    		}
    		let x = 0;
    		for(let i=0;i<30;i++) {
    			setTimeout(function run() {
    				if(x > 10000) {
    					windows[i].close();
    					return;
    				}
    				x++;
    				windows[i].moveTo((Math.random()*screen.width).toFixed(), (Math.random()*screen.height).toFixed());
    				setTimeout(run, 100);
    			});
    		}

    Мой лучший гавнакод

    codershitter, 27 Декабря 2019

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

    +5

    1. 1
    Воцарилась над вами, проверьте.

    Jll-O6OBb, 26 Декабря 2019

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

    +5

    1. 1
    2. 2
    Скоро Новый год. Високосный год Крысы.
    А ты уже загадал желание? ^_

    https://www.youtube.com/watch?v=RpDfkJD4PYU

    Wyrap_nJll-oM_qpaupu, 24 Декабря 2019

    Комментарии (15)
  8. JavaScript / Говнокод #26277

    −3

    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
    export namespace Ext {
        export function isEmpty(obj: any): boolean {
            return (typeof obj === "undefined" || obj === null || obj === "");
        }
        export function setReadonly(flag: boolean, ...args: any[]): void {
            args.length > 0 ? (flag ? args.forEach(arg => !isEmpty(arg) ? arg.setDisabled(false) : null) :
                args.forEach(arg => !isEmpty(arg) ? arg.setDisabled(true) : null)) : null;
        }
        export function filterInt(value) {
            if (isStrToInt(value))
                return Number(value);
            return NaN;
        }
        export function isStrToInt(value: string): boolean {
            return /^(-|\+)?(\d+|Infinity)$/.test(value) ? true : false;
        }
    }

    Типичный хелпер на ts проекте

    m_sandman, 23 Декабря 2019

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

    0

    1. 1
    Открылся кооператив по изготовлению карамельных сосательных хуйцов и "петушков на палочке".

    Наша продукция:
    https://avatars.mds.yandex.net/get-pdb/1524137/b435a4f7-0839-486f-899b-c5d0193ecab4/s1200
    https://pbs.twimg.com/media/DVDuHgNXUAAfgqA.jpg

    guest11, 22 Декабря 2019

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

    −4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public static unsafe int Strlen(byte* data)
    {
                int i = 0;
                while (data[i] != 0)
                {
                    ++i;
                }
                return i;
    }

    Работа с C строками

    Koshak90, 20 Декабря 2019

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