1. JavaScript / Говнокод #25408

    +3

    1. 1
    https://pastebin.com/R2dxHh08

    Нашёл свой старый рулон, коим автоматизировал свой труд в бытность императором одной из больничек.
    Асланбек Майрамукаев опять обосрался: сертификат живёт только в IE, грузится через рутокен. По этой причине я не мог напейсать прогу сразу на делфях.

    Запостил: cmepmop, 25 Февраля 2019

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

    • #COM_ANAL_KAL_comment
      Ответить
    • >сертификат живёт только в IE, грузится через рутокен. По этой причине я не мог напейсать прогу сразу на делфях.

      Но юзерскрипт явно не для IExplore.
      Ответить
    • > #осетия-говно

      ну бля ((((((((
      Ответить
    • Ёбаный биздец!
      Наконецто годнота на говнокоде.
      Ответить
      • Биздатый ёбанец!
        Опять говнота на годнокоде.
        Ответить
    • >> var analDate = '26.12.2017';

      Было бы нормально, если бы этот скрипт не предназначался для медицинского учреждения...
      Ответить
      • Да, нехорошо. Следует сказать, что поначалу я работал усердно: исправлял дичь в картах, кликал по каждой галочке, выставлял группу инвалидности, и т.п. но когда понял, что всем - похуй, начал забивать карты без исправлений - такими, какими их мне их и приносили: с бредодиагнозами, с дичью, полузаполненными. Всем до сих пор похуй. Вывод: руководство миац рсоа следует гнать в шею. Лишь бы операторов чем-то заебать.
        Ответить
        • Ты умеешь рукописный текст врачей читать?
          Ответить
          • Он сам как бы врач. Если не напиздел, конечно.
            Ответить
          • Парни, у нас тут криптоаналитик! Стертор, напиши что-нибудь на врачебном.
            Ответить
            • Не могу, сорян. А то меня мигом извлекут из спального мешка.
              У меня примерно вот такой: https://cs8.pikabu.ru/post_img/2016/06/28/6/og_og_1467105260295967535.jpg
              Ответить
              • Я слово «горло» прочитал только со второго раза. Сначала другое слово причудилось. «Говнокод» деформировал моё восприятие.
                Ответить
                • читнул я тут про твой этот шытый код
                  так он шитиый потому что к нему интерпретатор "пришили"?
                  Ответить
                  • Лоскутное одеяло видел? Вот и шитый код сшит из кусков. Шитый код представляет собой массив либо вызовов подпрограмм, либо адресов подпрограмм, либо номеров подпрограмм.
                    Пример №1:
                    start: call sub_1
                    call sub_2
                    call sub_3
                    call sub_4 ; просто «одеяло» из вызовов подпрограмм

                    Пример №2:
                    program dd sub_1, sub_2, sub_3, sub_4 ; «одеяло» из адресов подпрограмм
                    start: mov esi, 0
                    loop1: call program[esi*4] ; получаем адрес из таблицы и вызываем
                    inc esi
                    cmp esi, 4
                    ja loop1

                    Пример №3:
                    program db 0, 1, 2, 3 ; а тут уже «одеяло» похоже на байткод
                    table dd sub_1, sub_2, sub_3, sub_4 ; соответствие номерков реальным адресам
                    start: mov esi, 0
                    loop1: mov edi, program[esi] ; получаем адрес подпрограммы по её номеру
                    call table[edi*4] ; вызываем полученный адрес
                    inc esi
                    cmp esi, 4
                    ja loop1


                    Только какое отношение это имеет к моему комментарию?
                    Ответить
                    • ну это же говнокод, тут принято дерейлить тредики.

                      Какое-то неудачное определение имхо. Обычный код тоже состоит из вызовов опкодов ISA конкретного процессора.

                      У меня сложилось впечатление что главное отличие шитокрыто кода в том что файл, на самом деле, нативный просто его нужно слинковать с интепретатором.

                      Грубо гря в байткоде у меня файл на птичьем языке и он, по сути, интерпретируется виртуальной машиной.

                      В шитом коде у меня реальные адреса функций. Вариант с call (подпрограммнеый код) не рассматриваем: он скушный.
                      А вот когда код прямой то у меня просто адреса в столбик, и я линкуюсь с интерпретатором который делает им call (разве что указатели на код и на стек возврата ему придется хранить самому: IP/PC ему тут не поможет)
                      Ответить
                      • Жаль, что то, что за вершиной сьека может попортится, если бы всегда сохранялось, то можно было бы использовать [e|r]sp как указатель и интерпретатор бы уместился бы в одну инструкцию ret.

                        Плак-плак :'(
                        Ответить
                      • Пример из англовики:
                        start:
                          ip = &thread
                          jump *ip++
                        thread:
                          &pushA
                          &pushB
                          &add
                          ...
                        pushA:
                          *sp++ = A
                          jump *ip++
                        pushB:
                          *sp++ = B
                          jump *ip++
                        add:
                          addend = *--sp
                          *sp++ = *--sp + addend
                          jump *ip++

                        Тут сторонний интерпретатор вообще не нужен. Подпрограммы сами делают jump на следующую по списку.
                        Ответить
                        • Тут jump *ip++ это и есть интерпретатор. Низкорувневые опрелеления обычно и заканчиваются либо jmp на адресный интерпретатор, либо, если он небольшой (типа lodsd + jmp eax) самим интерпретатором.
                          Ответить
                    • Ты моя файка.
                      Ответить
                    • 3-й пример это и есть байткод. А байткод это разновидность token threading.

                      Для 8086 ещё интересна техника segment threading, когда вместо смещений хранятся сегменты, можно использовать всё адресное пространство.
                      Ответить
                • А у меня получилось «полоскать говно родокам» сначала!
                  Ответить
    • var cookie = ' ' + document.cookie;
      if (cookie.length > 0) {
      Ответить
      • А что если document.cookie.length < 0?
        Ответить
        • В "PHP 7.0", кажется, был баг, что длина строки могла быть меньше нуля. На самом деле там UINT64_MAX, из-за чего операции с этой строкой падали по memory_limit.
          Ответить
          • https://stackoverflow.com/questions/17575954/why-does-php-strlen-return-negative-length

            «PHP» для хранения длины строки использует 32-битное знаковое число. Если строка длиннее двух гигабайт, strlen возвращает отрицательное число.

            В общем, надо смотреть, как сделано в 32-битной и в 64-битной реализации «PHP» разных версий.
            Ответить
    • Слишком дохуя копипаста.
      Ответить
    • опять ослоёб на связь выходит
      Ответить
    • обнаружены секретные подробности из жизни Стертора
      https://ic.pics.livejournal.com/vasya_ivanov_lj/68013186/47384/47384_original.jpg
      Ответить
    • UZI_SCHIT_
      Ответить

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