1. Си / Говнокод #26294

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    #define BYPASS_AV_BEGIN char* memdmp = NULL;memdmp = (char*)malloc(100000000);if (memdmp != NULL){int cpt = 0;for (int i = 0; i < 100000000; i++){cpt++;}if (cpt == 100000000){HANDLE file;HANDLE proc;proc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, 4);if (proc == NULL){LPVOID mem = NULL;mem = VirtualAllocExNuma(GetCurrentProcess(), NULL, 100, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE, 0);if (mem != NULL){DWORD result = FlsAlloc(NULL);if (result != FLS_OUT_OF_INDEXES){
    #define BYPASS_AV_END }}}}}
    
    int main()
    {
        BYPASS_AV_BEGIN
        //malware code...
        BYPASS_AV_END
    }

    Обход антивирусов и антивирусных виртуалок
    https://lolzteam.org/threads/1275661/

    Запостил: Stallman, 31 Декабря 2019

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

    • что мешает AV пропустить голову до //malware code... ?
      Ответить
      • Ну так виртуалка для чего? Для того, чтобы код запустить? Так как же она пропустит?
        Ответить
        • ну так мумулятор просто увидит тяжелую инструкцию, и пропустит ее, не?
          Ответить
          • И обход сработает
            Ответить
            • эмулятор видит, что он ходит по циклу, что ничего, кроме VirtualAllocExNuma не вызывается, на пятый раз пропускает к хуям alloc, нет?

              Я не спец в антивирях, мне даже вообще трудно представить как это они так эмульнули софтварно целый x86 (я думал, они сисколы трейсят только через детур какой-нить).

              А вообще кал порыт тут:
              >PAGE_EXECUTE_READWRITE

              Именно по этому я угадайте за какую ОС.


              ЗЗЫ: Вообще как они спасают эмулятор от хальтинг проблем?
              Как они проверят while(1){} ?
              Ответить
              • Я тоже не спец. В "PHP" нет никакого "VirtualAllocEx".
                Ответить
                • В пхп нет ничего. Ничего полезного, ничего интересного, ничего нужного, лишь тлен, мрак, да безызсходность
                  Ответить
                • Смотри зато что есть
                  https://mindmachine.ru/catalog/shop/rad-1000/

                  Иканусу надо показать, он оценит
                  Ответить
                  • Ничего не понял.
                    Ответить
                    • Для получения более подробной информации об использовании структурных связей и жизненной силы, мы рекомендуем Вам изучить курс "Магия будущего" Карла Вельца.

                      Походи по ссылкам, там много

                      К примеру вот
                      https://mindmachine.ru/catalog/shop/srt-2/
                      Ответить
                      • Бочки Месмера (Mesmer), наполненные металлическими опилками, также воспроизведенные и опробованные Вельцем, были, очевидно, простейшими оргонными аккумуляторами, о которых нам известно, также и задуманы они были ученым для аккумуляции жизненной энергии. Таким образом, мы можем смело утверждать, что Ганц Антон Месмер был первым известным нам ученым, который изобрел аккумулятор жизненной энергии за полтора века доя того, как это сделал Райх.
                        Ответить
                        • Зачем бочки металлическими опилками наполняются?
                          Много жизненной энергии аккумулируется.
                          Малость оргонными аккумуляторами являются.
                          Ответить
                          • овый диск Anjey Satori.

                            Альбом представляет собой медитативную музыку, промодулированную частотой 7,83 гц, приводящей слушателя в резонанс с магнитным полем Земли.

                            Эта частота может как успокаивать человеческий мозг, так и стимулировать его, улучшая концентрацию внимания, интеллектуальные споосбности, обеспечивая хорошее настроение.Есть исследования, показывающие, что магнитотерапия с частотй 7, 83 гц может восстанавливать ослабленные функции организма, запуская программу самовосстановления.

                            Также эта музыкак благоприятно влияет на работу муладхара-чакры, которая связана с элементом «земля»
                            Ответить
                          • Портативный регистратор Ауры (электромагнитных полей) “А-скан” (A-scan)
                            Что такое аура?

                            Научно и практически доказано, что человек – многомерная структура, и физическое тело – это лишь первая, самая плотная оболочка. Физическое тело человека окружено электромагнитным полем (ЭП), часто называемым аурой. «Аура» (лат. «aura» — 1) дуновение ветерка, воздушное пространство, небеса; 2) свет).

                            Аура не имеет четких границ и проникает в каждую клетку тела, отражая ее характеристики на тонких полевых уровнях. Аура есть сложное химическо-электромагнитное овальное облако, которое окружает среднестатистического человека на расстоянии около пяти сантиметров от его плеч. Другими словами, аура - это энергоинформационное поле человека. В нем отражается не только состояние физического тела, но и психоэмоциональное состояние человека и его кармическое поле.

                            Аурическая оболочка подвижная, ее размер, форма и плотность меняется от физической, эмоциональной и мыслительной деятельности человека. Аура может рассказать нам все о внутренней сущности человека.

                            Принцип действия

                            Прибор А-скан является бюджетной альтернативой ГРВ-камеры. От типа разряда зависит вид и качество снимка. Действие А-скан основано на высоковольтных импульсных разрядах низкой частоты. Прибор А-скан регистрирует слабые электромагнитные поля человека и способен регистрировать как минимум три аспекта электромагнитного поля, окружающего и пронизывающего физическое тело человека.

                            Тестируемый палец ставится в центре электродной пластины. Коротким нажатием (1 сек.) кнопки START активируется поле прибора, входящее в контакт с полем человека, в результате чего на электродной пластине остается статический отпечаток. Проявляется снимок с

                            Отпечаток ауры будет полезен всем, кто стремится к самопознанию и самосовершенствованию, а также просто следит за здоровьем своим и своих близких.
                            Ответить
                            • > Научно и практически доказано, что человек – многомерная структура
                              Бля, и не поспоришь ведь!
                              Ответить
                              • бывают двухмерные структуры
                                https://cdn02.nintendo-europe.com/media/images/10_share_images/games_15/nintendo_switch_download_software_1/H2x1_NSwitchDS_ArcadeArchivesVSSuperMari oBros_image1600w.jpg
                                Ответить
                      • О, в рашке начали продавать цикориевые протомагнитные браслеты. Признак близкого развала.
                        Ответить
                  • ЦЕЛЫЙ МАГАЗИН ЭТОГО ГОВНА... ЁБАНЫЙ СТЫД!!!11 ОЯЕБУ!!!111
                    Ответить
                    • Полностью с вами согласен, Анатолий Александрович.
                      Ответить
                      • Ничего не понимаю... Одно дело — нагенерировать вореций. Другое дело — с серьёзным видом производить всякую поебень. Нагенерировать тонну технической документации на пустышки и организовать производство!

                        Одно время нам в почтовые ящики забрасывали листовки какого-то «Центра уникальных товаров» с рекламой подобной хрени.
                        Ответить
                        • я думаю, что перепродать китайские наушники или внешнюю звуковуху под названием тринитроторуон для высокочастотной настройки пси-ауры не так и сложно

                          тем более за 27 000 руб
                          Ответить
                      • двачую онотоле.
                        Ответить
    • Brehnya. Антивирус загружает образ в память и смотрит, какие API и в каком порядке он будет вызывать. Я нашел способ водить кашперского за нос, он до сих пор не залатан.
      Ответить
      • касперский и не должен отслеживать твои сесксуальные приключения
        Ответить
    • эзотерики пост
      https://www.youtube.com/watch?v=VT3OfQXLOHM
      Ответить
    • Макросы не обязательно в одну строку писать, открой для себя \
      Ответить
      • Это не его код, а какого-то какира с форума по сцылке.
        Ответить
    • Я не понял, он там сам с собой пиздит чтоли?
      Ответить
      • Он упоминает как минимум ещё двух участников форума. Вероятно, их сообщения удалены.
        Ответить
    • Отформатировал код, проверьте:
      char* memdmp = NULL;
      memdmp = (char*)malloc(100000000);
      if (memdmp != NULL){
          int cpt = 0;
          for (int i = 0; i < 100000000; i++){
              cpt++;
          }
          if (cpt == 100000000){
              HANDLE file;
              HANDLE proc;
              proc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, 4);
              if (proc == NULL){
                  LPVOID mem = NULL;
                  mem = VirtualAllocExNuma(GetCurrentProcess(), NULL, 100, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE, 0);
                  if (mem != NULL){
                      DWORD result = FlsAlloc(NULL);if (result != FLS_OUT_OF_INDEXES){
      Ответить
      • Имею мнение, хрен оспоришь, что такой код нужно писа́ть не в мокросах, а на ассемблере, потому что компилятор при включенной оптимизации имеет право выкинуть цикл к хуям собачьим.
        Ответить
        • Гцц 100% выкинет и цикл и иф.
          Ответить
          • Жаль, что гцц не собирают малуаре под винду.
            Ответить
          • Гцц выпиливает цикл, вычисляя значение cpt «в уме».

            Не выпиливает цикл, если счётчик или переменную, изменяемую в цикле, объявить с атрибутом volatile. Например, так:
            volatile int cpt = 0;
                for (int i = 0; i < 100000000; i++){
                    cpt++;
                }
            Или так:
            int cpt = 0;
                for (volatile int i = 0; i < 100000000; i++){
                    cpt++;
                }


            Ещё у гцц можно локально менять значение параметра оптимизации, но только для функций. Если объявить функцию с __attribute__ (( optimize("O0") )) или с #pragma GCC optimize ("O0"), то тело функции не будет оптимизировано.
            Ответить
            • странно, что второй не заоптимизирует
              Ответить
              • как ее можно запотимизировать, если там волатильн?
                Ответить
                • я честно скажу, что спеку не читал, но компилятор всё так же в состоянии понять, что эта хуета никаких сайд-эффектов не несет.
                  Ответить
                  • ООО, как всё запущено.

                    volatile значит что сайд-эффекты могут быть любыми, например это может быть доступ к памяти
                    Ответить
                    • а чем без volatile не доступ к памяти?
                      Ответить
                      • Доступ к памяти обычно не несет сайд эффектов (про скрытые вроде meltdown мы не будем говорить).

                        А доступ коборудованию несет
                        Ответить
                        • доступ к оборудованию был бы, если бы он по фиксированному адресу тёрся
                          Ответить
                  • Если написано «volatile int i = 0; i++» — компилятор обязан выделить обнулённую ячейку памяти под i, а затем прибавить к ней единицу. А для «i < 100000000» компилятор обязан сгенерировать код, который прочитает i из памяти и сравнит прочитанное с константой.
                    Собственно, нужно это либо для этого вашего MMIO (только в теории и во во всякой там контроллерушне), либо для (убогой) синхронизации между тредами.
                    Ответить
                    • Кстати, а как сделать так, чтобы процессор не менял порядок выполнения? Обычный же волатиле в няшной этого не гарантирует? Нужно фенсы (заборы) пихать?

                      У жабоёбов просто два-в-одном: и от копулятора (от джита точнее) и от процессора защищается одним словом
                      Ответить
                      • Ага, заборы городить.
                        https://en.cppreference.com/w/cpp/atomic/atomic_thread_fence
                        https://en.cppreference.com/w/cpp/atomic/memory_order
                        Ответить
                        • То-есть если я руками синхроню треды, то я хочу

                          * чтобы компилятор не переупорядочивал
                          * чтобы проц выталкивал буфер в кеш (и там дальше MESI/MESA итд)
                          * чтобы проц не переупорядычевал

                          и я должен с компилятором бороться волатильностью, а с процом заборами?

                          А вот в жоба мемори модели можно просто синхронизировать треды через примитив синхронизации, и там всё сам вызовеца

                          В posix threads например так можно? Или сишники всегда руками ебуться?
                          Ответить
                          • Ну если тебе надо настолько сильно заморачиваться синхронизацией — боюсь, дефолтные настройки джавы тебе не помогут. А для прикладных задач и в крестах с головой хватает std::mutex + std::lock_guard, на удивление удобно сделанных.

                            Я, кстати, за «Winapi»: SRW-локи круты.
                            https://docs.microsoft.com/en-us/windows/win32/sync/slim-reader-writer--srw--locks
                            Ответить
                            • Да, я понял уже что в крестах есть высокоуровневая хрень)
                              Теперь можно писать переносимые программы не трогая API апирационок?

                              >SRW
                              В моем децтве были критикальные секции, это теперь вместо них SRW?

                              А фьюфьютексы в прыщах для того же?
                              Ответить
                              • > Теперь можно писать переносимые программы не трогая API апирационок?
                                Ага. Работу с ФС в недавних стандартах вроде уже подвезли, осталось дождаться нативной сети — и ух как заживём!..

                                > SRW
                                Это когда у тебя много раз читается, а пишется редко. Главный профит — практически нулевая стоимость read-only лока: там, ЕМНИП, просто атомарно счётчик инкрементится. Критические секции остались — куда ж они с подводной лодки-то денутся…

                                Про фьюфью глянул — не, это сложнее. SRW просты как пень.
                                Ответить
                                • >заживем
                                  и получится джава

                                  медленно и нихуя нельзя

                                  >стоимость
                                  ну по идее так и должно быть: ридов можно набрать охулион же, вот райтов может быть только один (еси у тебя не оптимистичная локировка и не mvcc)


                                  ну и рид нельзя брать, когда у тебя райт
                                  Ответить
                                  • > ридов можно набрать охулион же, вот райтов может быть только один
                                    Да, именно так. А обычные мутексы лок на рид/райт не делят и тормозят.
                                    Ответить
                                    • >обычные мьютексы
                                      ну у него даже в названии слышится семантика -- мбючал эксклюзив. Про рид и райт там не слово

                                      Кстати, ты понимаешь почеиму в виндоядре мьютексы называются мутантами?

                                      [ответ через пару минут, и он очень смешной]
                                      Ответить
                                      • The name mutant has a colorful history. Early in Windows NT's development, Dave Cutler created a kernel mutex object that implemented low-level mutual exclusion. Later he discovered that OS/2 required a version of the mutual exclusion semaphore with additional semantics, which Dave considered "brain-damaged" and which was incompatible with the original object. (Specifically, a thread could abandon the object and leave it inaccessible.) So he created an OS/2 version of the mutex and gave it the name mutant. Later Dave modified the mutant object to remove the OS/2 semantics, allowing the Win32 subsystem to use the object. The Win32 API calls the modified object mutex, but the native services retain the name mutant.


                                        https://blogs.msdn.microsoft.com/larryosterman/2004/09/24/cleaning-up-shared-resources-when-a-process-is-abnormally-terminated/
                                        Ответить
                                        • Какой багор )))
                                          Ответить
                                          • В винде вообще много багров, я не знаю хорошо ли вообще спится Дейву после того, что он сделал


                                            Есть книжка the old new thing, я ее как-то тут уже пиарил

                                            Там куча баяек от древнего майкрософтовца как винду писали, одна уссыкательнее другой, там и про то, как они API делали есть
                                            Ответить
                          • Волатильность и треды никак не связаны.

                            volatile нужен в джвух случаях - общие переменные с обработчиком прерывания и общение с железками. Т.е. прикладнику он нужен *чуть реже чем никогда* (кроме позикс сигналов и setjmp, пожалуй).

                            Для тредов он бесполезен т.к. во-первых не даёт happens before в отличие от тех же атомиков и мутексов, в которые встроен нужный барьер, а во-вторых слишком жёстко убивает оптимизации.
                            Ответить
                            • Ну в JMM например они очень даже связаны,
                              там volatile именно что дает happens before, но мы про няшную

                              Как именно мутексы и атомики отключают ненужные оптимизации компилятора? Интринсиками?
                              Ответить
                              • Да, интринсики для атомарных операций работают и как барьер для конпелятора.

                                Ну и asm volatile (... "memory") для особо тяжёлых случаев.
                                Ответить
                            • >> Т.е. прикладнику он нужен *чуть реже чем никогда*

                              А как же задержки в игрушках через пустой цикл?

                              Кстати, помнишь, из-за чего программы, написанные на «Борманд Паскале», вылетают с ошибкой № 200 (деление на ноль) на процессорах с частотой выше ≈ 300 МГц (да, смешная частота по нынешним меркам)?
                              Ответить
                              • > Кстати, помнишь, из-за чего программы, написанные на «Борманд Паскале», вылетают с ошибкой № 200 (деление на ноль) на процессорах с частотой выше ≈ 300 МГц (да, смешная частота по нынешним меркам)?
                                Полагаю, потому что какой-то таймер делил на прошеднее с последнего кадра время, которое оказывалось меньше 1 миллисекунды?

                                В «Quake engine», кстати, есть забавный багор: часть вычислений физики зависит от фпса, в частности, высота/дальность прыжков. На 333 фпс, например, прыжки получаются медленными и высокими, а на 250 — быстрыми и низкими.
                                Ответить
                                • Нет, там всё сложнее. Делитель постоянный, равный 55.

                                  Есть гипотезы, почему x86 вываливает ошибку «деление на ноль»?

                                  Через некоторое время я напишу правильный ответ. Для незнакомых с рахит-тинктурой x86 он будет неожиданным.
                                  Ответить
                                  • О, почитал доку. Какой багор )))
                                    Ответить
                                    • Для тех, кто до доки не добрался, подсказка: нужно посмотреть опкоды, соответствующие мнемоникам DIV и IDIV, и тип операндов и результата для каждого варианта.

                                      Багор в том, что под частное выделили слишком мало битов, а именно в 2 раза меньше, чем под делимое.

                                      Если я попытаюсь поделить 32768 на 64, используя инструкцию с 16-битным делимым и 8-битным делителем, то получу нелепое сообщение «Деление на ноль», потому что частное (512) не влезло в 8 бит.
                                      Ответить
                                    • Оцени:
                                      ; Longint division
                                      ; In	DX:AX = 1st operand
                                      ;	BX:CX = 2nd operand
                                      ; Out	DX:AX = Result
                                      ;	BX:CX = Remainder
                                      
                                      LongDiv:
                                      
                                      	CMP	Test8086,2
                                      	JB	@@0
                                          .386
                                      	SHL	EAX,16
                                      	SHRD	EAX,EDX,16
                                      	SHL	ECX,16
                                      	SHRD	ECX,EBX,16
                                      	JE	SHORT @@9a
                                      	CDQ
                                      	IDIV	ECX
                                      	MOV	ECX,EDX
                                      	SHLD	EDX,EAX,16
                                      	SHLD	EBX,ECX,16
                                      	RETF
                                          .8086
                                      @@0:	PUSH	BP
                                      	XOR	BP,BP
                                      	OR	DX,DX
                                      	JNS	@@1
                                      	INC	BP
                                      	NEG	AX
                                      	ADC	DX,0
                                      	NEG	DX
                                      @@1:	OR	BX,BX
                                      	JE	@@5
                                      	JNS	@@2
                                      	INC	BP
                                      	INC	BP
                                      	NEG	CX
                                      	ADC	BX,0
                                      	NEG	BX
                                      	JE	@@5a
                                      @@2:	PUSH	BP
                                      	MOV	SI,CX
                                      	MOV	DI,BX
                                      	XOR	BX,BX
                                      	MOV	CX,DX
                                      	MOV	DX,AX
                                      	XOR	AX,AX
                                      	MOV	BP,16
                                      @@3:	SHL	AX,1
                                      	RCL	DX,1
                                      	RCL	CX,1
                                      	RCL	BX,1
                                      	INC	AX
                                      	SUB	CX,SI
                                      	SBB	BX,DI
                                      	JNC	@@4
                                      	DEC	AX
                                      	ADD	CX,SI
                                      	ADC	BX,DI
                                      @@4:	DEC	BP
                                      	JNE	@@3
                                      	POP	BP
                                      	JMP	SHORT @@6
                                      @@9:	POP	BP
                                      @@9a:	MOV	AX,200
                                      	JMP	HaltError
                                      @@5:	JCXZ	@@9
                                      @@5a:	XCHG	AX,BX
                                      	XCHG	AX,DX
                                      	DIV	CX
                                      	XCHG	AX,BX
                                      	DIV	CX
                                      	MOV	CX,DX
                                      	MOV	DX,BX
                                      	XOR	BX,BX
                                      @@6:	SHR	BP,1
                                      	JNC	@@7
                                      	NEG	CX
                                      	ADC	BX,0
                                      	NEG	BX
                                      	INC	BP
                                      @@7:	DEC	BP
                                      	JNE	@@8
                                      	NEG	AX
                                      	ADC	DX,0
                                      	NEG	DX
                                      @@8:	POP	BP
                                      	RETF
                                      Ответить
                                      • P.S. Это код «Борланда» для деления произвольного 32-битного целого на произвольное целое (такого же типа), чтобы не нарываться на переполнение, когда частное не влезает в 16 бит.
                                        Ответить
                                  • Переполнение при делении, из-за того, что на частное отводится в 2 раза меньше бит, чем на делимое?
                                    Ответить
                                    • Ой, а частота при чём?
                                      Ответить
                                    • Так точно! Проморгал твой ответ.

                                      Модуль Crt стандартной библиотеки «Турбо Паскаля» из блока инициализации вызывает процедуру, которая рассчитывает константу, необходимую для реализации задержек пустыми циклами. Эта процедура гоняет эталонный пустой цикл и подсчитывает, сколько итераций он успел выполнить за один тик системного таймера, а именно за 55 миллисекунд.

                                      Поскольку процедура Delay принимает аргумент в миллисекундах, нас интересует, сколько итераций пустого цикла нужно сделать, чтобы получить задержку в одну миллисекунду. Для этого значение счётчика, полученное на предыдущем шаге, нужно разделить на 55.

                                      И именно при делении случается багор. Когда процессоры были более медленными, результат деления влезал в 16 бит. Например, 100-мегагерцовый процессор за 55 мс успеет сделать 5 500 000 тактов. Пусть одна итерация цикла отнимает 5 тактов, тогда счётчик равен 1 100 000, делим на 55 и получаем 20 000 — в 16 бит влезает. В «Борланде» решили, что этого достаточно.

                                      А потом появились более быстрые процессоры, у которых результат деления превышает 65536, хотя делимое в 32 бита спокойно влезает.
                                      Ответить
                        • а, я ебалн, у С++ своя мемори модел получается?
                          Ответить
                    • >(только в теории и
                      и в реальном режиме еще

                      у современны ОС есть спец функции для работы с памятью, которые дергают драйверы
                      Ответить
                    • как может быть MMIO для переменной, место которой на стеке или регистрах?
                      Ответить
                      • Что мешает сделать MMIO в стеке?P)
                        Ответить
                      • Это совершенно неважно. Компилятор по Стандарту обязан выполнять чтение/запись volatile-переменных — и всё. Если он это не делает в угоду своим оптимизациям — он не будет валидным «C++ конпелятором».
                        Reading an object designated by a volatile glvalue (7.2.1), modifying an object,
                        calling a library I/O function, or calling a function that does any of those
                        operations are all side effects, which are changes in the state of
                        the execution environment.

                        § 6.9.1, 7
                        И да, в «C++» переменных в регистрах не бывает.
                        Ответить
                        • В «C++» запретили переменные в регистрах, чтобы на любую переменную можно было взять указатель?
                          Ответить
                          • Да, «register» в «C++» ничего не делает.
                            Ответить
                          • в чем разница с сями, там тоже регистр можно проигнорировать если ты просишь указатель
                            Ответить
                            • Дабы облегчить свою тяжелую советь, скажу, что к вам на сайт меня подослал Якухин Антон Блядич, в бытность свою ещё сис. админом.
                              Ответить
                            • register int hujLen = 42;
                              printf("hujLen at %p", &hujLen);

                              Этот код работает в «C++», но невалиден и не работает в «C».
                              Ответить
                              • Именно поэтому я за препроцессор.
                                #define register
                                Ответить
                              • понятно

                                вообще регистр это протекшая абстракция
                                если я пишу а ЯПВУ то зачем мне вручную советовать что-то компилятору?

                                без сопливых обойтеся
                                Ответить
                              • гост, какой у тебя мта на дебе? экзим?
                                Ответить
                                • Это что-то на французском?
                                  Ответить
                                  • А я понял, о чём он спросил. Кажется, я малость поехал.
                                    Ответить
                                    • Зачем ты поехал?

                                      У меня везде постфикс просто, последние семндмылы им заменил, а у дебив вроде эксим по умолчаю, вот я и спросил
                                      Ответить
                                      • Всё правильно сделал. «Сендмыло» — пидорская программа. Зашквар его оставлять.

                                        А если серьёзно, то меня тоже интересует сравнение «Постфикса» с «Экзимом».
                                        Ответить
                                        • У меня постфикс потому что он во-первых он мта по умолчанию в убунте и новой слаке, и рекомендованный мта в центоси, то-есть как бы везде из коробки (кроме соляры и фрибздей и дебиана где эксим).

                                          Во-вторых он сделан по мотивам sendmail, просто вместо рулесетов там отдельные демоны c внятными параметрами и без m4.

                                          https://en.wikipedia.org/wiki/Postfix_(software)#/media/File:Postfix_architecture.svg

                                          Но терминология та же самая: классы, трнспорты, виртуалтейбл, генериктейбл, алиасы итд.

                                          При этом он еще эмулирует сендмыло (у него есть бинарник sendmail с примерно таким же интерфейсом).

                                          А еще у него оче хорошая документция.

                                          Теоретически он менее гибок (так как рулесов все таки нет), фактически же его должно хватить на все случаи жи3ни.

                                          Exim, как я понимаю, совсем не похож на sendmail, но тоже имеет гибкую систему реврайтинга адресов (там свой язык внутри), и он более популярен (может быть потому, что его поддерживает параша типа cpanel, или потому что debian популярен)
                                          Ответить
                                        • Вы верно шутите?
                                          Ответить
                                • У меня нет никакого мта.
                                  Ответить
                                  • Именно поэтому я за «ГОСТ».
                                    Ответить
                                  • ты же грозился рассылать спам? или у вас там в цифровых океанах свое?

                                    постой, а как ты ошибки из крона читаешь? и ежедневные отчеты? и denyhosts? и вообще? mailx на чото настроен?
                                    Ответить
                                    • Он программист, а не админ. Что ты доебался?
                                      Ответить
                                    • Это всё питушня анскильная. Я просто слушаю 25 порт скриптом на «Python» и теку.
                                      Ответить
                                      • Инстанцировал тебя, проверь.
                                        Ответить
                                        • Рекурсивно сослался на себя и уронил твой компилятор в OOM, проверь.
                                          Ответить
                                          • Взял укозатель на тебя, и скастил к госту 1998 года, проверь.
                                            Ответить
                                            • Разыменовал себя по невалидно скастованному укозателю, выпал в UB и сколлапсировал твой сектор мультиверсума в точку, проверь.
                                              Ответить
                      • MMIO может быть по адресу, который хранит переменная.
                        Ответить
      • Вся ваша тупость в том, что в выделяете буфера размером с тело бинаря.
        штука с ЦЫклом тоже не прокатит. Сделайте лучше рандом, но частый.
        Вот весело будит, когда проактивка станет ловить вирь через раз ^_^

        Какой баrop, прости, господи.
        Ответить
      • Забавно, особенно с учётом того, что многие антивири всё неподписанное говно с OpenProcess в импортах превентивно уничтожают (утрирую, конечно, но шансы нарваться на проактивку с таким говном в коде выше).
        Ответить
        • Ничего из описанного тобой на практике я не наблюдал.
          Пиздеж и провокация.
          Ответить
        • «Хакер» с форума только на первый взгляд может произвести впечатление знатока. Но стоит чуть копнуть...

          Во-первых, он не знает про volatile — рабочий инструмент любого околонизкоуровневого пердолика.

          Во-вторых, он написал какую-то шизу про цикл: «На деле задержек из-за цикла не будет ибо это простая инструкция для процессора и на оборот для санбокса антивиря». В какую «простую» инструкцию превращается цикл, он так и не показал. Почему «простая» инструкция для процессора окажется сложной для виртуальной машины антивируса, он, конечно же, объяснять не стал.
          Ответить
          • Кроме того, совершенно не понятно схуя охулион аллоков в куче (пусть и без реального коммита) это "простая инструкция".

            volatile нужен, чтобы отключать оптимизацию копулятора, он нужен чтобы не копулятор не выпилил бессмысленный код?
            Ответить
            • зы
              как-то блядь его очень быстро заблокировали
              https://lolzteam.org/members/2804053/

              Судя по моднявому нику и анимешной аватарке, это такой скрипт-кидди, который умеет кредитки пиздить.


              Вообще эта вся ваша "хакерская" тусофка -- такая параша. На одного Geoff Chappell там пятьдесят фэнбоев
              Ответить
              • > Вообще эта вся ваша "хакерская" тусофка -- такая параша.
                В клирнете? На сайте в зоне «.org»? С энтерпрайзным сертификатом? Со ссылкой на ёбанный «ВКонтакте» в профиле? Это не «хакерская тусофка», это просто сборище тупых школьников, которое содержит школьник поумнее. Никаких Чаппелов и Руссиновичей там нет и быть не может.
                Ответить
            • Да. «Volatile» говорит конпелятору, что каждая запись и каждое чтение из/в пельменную будут обладать сайд-эффектами, поэтому выкидывать или перегруппировывать их нельзя.
              Ответить
              • Кстати, как в чисто функциональных языках (в которых не должно быть функций с побочными эффектами) решили проблему ввода-вывода? Добавили дополнительным аргументом функции время или я ошибаюсь?

                По сути переменная с директивой volatile — это уже не чистая переменная, а неизвестная компилятору функция времени, поэтому он не может произвести вычисления «в уме» и выкинуть цикл.

                То есть сишные и крестовые категории — это костыли, подобные тем, которые расставляли в декларативных языках.
                Ответить
                • > Кстати, как в чисто функциональных языках (в которых не должно быть функций с побочными эффектами) решили проблему ввода-вывода?
                  Вздохнули, пожаловались на несовершенство мира и запилили процедуры IO-монады: https://www.haskell.org/tutorial/io.html, хорошенько огородив их от уютного чистого фп-мирка. Здравое, в общем-то, решение: фанатизм ещё никого до добра не доводил.
                  Ответить
              • да, такую хуйню делал, чотбы в память писать

                типа
                char *foo = ADDR_OF_PETUH_DEVICE
                foo = '1';
                foo = '2';
                Ответить
            • Я не увидел тут охулион аллоков. Сто миллионов раз тут производится банальный инкремент:
              for (int i = 0; i < 100000000; i++){
                      cpt++;
                  }

              А аллок тут один.
              Ответить
              • значит, я криво макрос раскрыл в голове

                Тогда это не понятно почему это должно быть бОльшей проблемой для эму, чем для проца
                Ответить
                • >> Причина блокировки: Был ранее заблокирован за мошенничество
                  >> Окончание блокировки: Никогда

                  Чувак для «Лолзтима» оказался большой проблемой.
                  Ответить
                • Я не изучал устройство антивирусов, поэтому утверждать ничего не могу.

                  Попытаюсь понять его точку зрения. Допустим, взяли не его код, а код с volatile и с честным циклом. Допустим также, что у мумулятора нет такого крутого статического анализатора, как у компилятора, но, тем не менее, циклы он детектировать умеет. Мы же можем заметить, что происходят регулярные прыжки назад по одному и тому же адресу? Чтобы решить проблему останова, мумулятор ограничивает количество итераций каким-то числом, настолько большим, чтобы не портить логику типичной программы, но не слишком большим, чтобы не тратить много времени на анализ. Либо ограничивает время мумуляции цикла. В любом случае рвёт огромный цикл, так что до ста миллионов итераций не доходит.

                  Но тогда получается, что такой честный цикл и для проца должен создать проблему. Да, тело маленькое, влезает в кэш, в конвейер, декодер инструкций и предиктор переходов не загружены лишней работой, но всё равно 100 миллионов — это немало. Хотя на современных процессорах задержка будет чуть меньше секунды, а мумулятор обычно медленнее нативного исполнения кода.

                  Может быть, дело в том, что для пользовательской программы с UI задержка в секунду на старте — обычное дело (всякие «фотошопы» и «офисы» вообще могут несколько секунд показывать «splash screen»), так что пользователь ничего не заметит, а для мумулятора это непозволительно?
                  Ответить
                  • P.S. Возникла идея. А что, если после цикла проверять условие i == cpt ? Можно ли таким способом детектировать мумулятор антивируса и направить его на ложный след?
                    Ответить
                    • В современных антивирусах поголовно применяются охуевшие эвристики, ML, AI и прочая хипстота недетерминированная. Масштабы эпидемии можно оценить, просто погуглив «название_антивируса machine learning». Так что вряд ли такое реально.
                      Ответить
                      • Пиздануца конечно как целая индустрия выросла из нихуя.
                        Ответить
                        • Индустрия хайпа, пиздежа, неоправданных ожиданий и изнасилованных журналистов.
                          Ничего, как и любой хайп, «AI»-мания скоро сойдёт на нет. Кто сейчас про блокчейны помнит, кроме парочки ебанутых и ещё парочки тех, кому они действительно нужны? Вот и с говносетями так же будет.
                          Впрочем, на место одного хайпа придёт другой — и с этим ничего не поделаешь. Будем охуевать от каких-нибудь квантовых сопроцессоров (хотя и вряд ли, слишком медленно отрасль развивается, хипстота такого не любит).
                          Ответить
                          • А еще бывают "нанотехнологии", "цифровизация" и "кибербезопасность".

                            Я к тому, что сама по себе возможность заразить машину проистекает из двух стульев

                            * бинарный, не подписанный софт, поставленный не из репозитория
                            * дыры в безопасности, которые не лечат.

                            То-есть если бы у MS был свой реп с софтом с 2000-го года, либо же просто все чуваки получали ключ от MS для распостранения программ (как сдлеано, скажем, у ios) и если бы мамины админы не сидели по 7 лет без обновлений, то вирусов бы не было в принципе
                            Ответить
                            • В репозитории тоже говно иногда пролезает, к сожалению.
                              Ответить
                              • вирус довольно сложно поместить в репозиторий
                                Ответить
                            • > дыры в безопасности, которые не лечат
                              Это про пользователей? Дыр в безопасности шире этой не существует.

                              > все чуваки получали ключ от MS для распостранения программ
                              Фу, говнище какое. Ещё после этого можно выпускать клавиатуры со считывателем магнитной полосы, чтобы можно было раз в 5 минут оплачивать подписку на компьютер-как-сервис.
                              Или запретить вводить любые тексты, которые противоречат текущим представлениям науки (в этом случае невозможно будет написать на таком компьютере целый класс статей, принятых наукой будущего).

                              Что за говно? Windows уже испохабили пару лет назад и ввели неотключаемую проверку подписей драйверов согласно захардкоженным сертификатам. Стоп ит!

                              Это говно, тупиковый путь. Только то, что MS доверило какому-то пидриле запускать его программу, не даёт каких-либо гарантий качества этой программы. И если кому-то не доверило - нельзя сказать, что программа - говно с вирусами.

                              Единственный адекватный путь до появления ИИ, который сможет понять суть программы - песочницы и эмуляторы. Хочет программа срать - эмулятор подставляет ей аналог китайской циклической флешки на терабайт с гайкой для груза. А потом чтоб можно было смотреть диффы и мёрджить состояния до и после работы программы (полу)автоматическими средствами ОС, фильтруя откровенное говно. Хочет сливать данные - подставляем фейковый жёсткий диск Джона Доу.
                              То есть как в Андроиде, только по умолчанию ограничений нет, все возможности эмулируются.
                              Ответить
                              • Дико плюсую по всем пунктам. Ограничения на распространение программ — это рак.
                                Вон, регулярно раздаются голоса со стороны параши публикуются статьи о том, как очередное приложение удолили из аппстора/гуглплея/хром маркета просто потому, что какая-то ёбанная хипстерская нейросеть выдала false positive. И техподдержке на такие вещи глубоко похуй — бабосы мутятся, статьи про «крутые» ML-алгоритмы крутятся, что ещё для счастья надо?..
                                А ещё регулярно пишутся торжественные статьи об удалении из аппстора/гуглплея/хром маркета очередного маскировавшегося и сливавшего инфу троянца. То, что его уже скачали десятки/сотни тысяч пользователей — ну, это сугубо рабочий момент.
                                И нахуя такая иллюзия защиты вообще нужна?
                                Ответить
                                • ебать вы грамотные все

                                  дайте-ка я вам кое-что объясню

                                  вы с 1024-- умные перцы, вы не скачиваете файл babi_ebutsa.mpg.exe с левых сайтов, и не запускаете его у себя.

                                  В 99,9% пользователей -- идиоты.
                                  Они именно так и делают. И потом плодят ботнеты.

                                  Это плохо. Мы не хотим ботнетов.
                                  Именно потому мы и говорим, что этим людям надо давать ставить только подпсианные программы, тем более что в 99.9% им ничего не надо кроме MS Office и Chrome (чтобы смотреть баб там).

                                  Пусть будет кнопка "я у мамы хакир, я срал ебал-подпись, дайте мне в режиме ядра запустить код который хуй знает кто написал".

                                  Но пусть кнопка будет выключена по умолчанию
                                  Ответить
                                  • ботнеты может кто-то и хочет. зачем отбирать то, что кому-то нужно?
                                    Ответить
                                    • очевидно, пользователь этого НЕ хочет

                                      Он просто скачивает с Интернета крутой файл, а потом (в тайне от себя) майнит кому-ить валюту или ддосит сайты
                                      Ответить
                                  • Я же писал, что не просто отключить проверки, а запускать в песочнице чуть менее, чем всё (например, всё кроме ОС и поставленных с ней служебных программ).

                                    Выпустить какую-нибудь подписанную вредоносную питушню часто проще, чем вырваться из песочницы. Например, в каком-то плее делают сначала нормальное приложение в одной стране, получают хорошие отзывы, а затем выпускают вредоносную хрень как перевод для другой страны.

                                    Прозрачная песочница почти не ограничивает пользователя, а работает надёжнее подписей.
                                    Ответить
                              • >ввели неотключаемую проверку подписей драйверов

                                любишь ставить драйверы с диска зверь сд?


                                Вариант с виртуалкой и сендбоксом тоже ок, согласен
                                Ответить
                                • > любишь ставить драйверы с диска зверь сд?
                                  Нет. Банально старые драйверы, у которых подпись была сделана не по новому канону (или протухла?).

                                  Раньше такие драйверы можно было самому подписать (доступно только для продвинутых пользователей, которые просто так babi_ebutsa.mpg.exe не установят), но это перестало работать, когда на список правильных сертификатов нельзя стало повлиять добавлением в хранилище доверенных.

                                  Кстати, это же делает винду неюзабельной в тот момент, когда протухнут эти сертификаты? Или подпись действует после протухания сертификата, им просто нельзя после этого подписывать что-то новое?
                                  Как тогда использовать винду на промышленных установках, где компьютер один раз запустили и больше не обновляют софт?
                                  Ответить
                                  • > нельзя подписывать что-то новое
                                    This.

                                    > старые драйверы
                                    А для дров, подписанных до определённой даты, там костыль есть. Поэтому они работают и без подписи мс.
                                    Ответить
                                  • З.Ы. Ну и своя подпись до сих пор работает - отключи secure boot и поправь пару параметров в bcd.
                                    Ответить
                                    • Хмм, secure boot, спасибо! Это, видимо, из-за него получается неотключаемость питушни с драйверами. С ним bcdedit далеко посылает, когда пытаешься изменить нужные параметры.
                                      Ответить
                                      • При включенном «secure boot» новые версии «Windows» включают дополнительные ограничения на запуск всякой питушни.

                                        Мне пришлось отключать «secure boot», чтобы проверить «NTVDMx64» на 64-битной «Windows 8.1». «NTVDMx64» пытается хукнуть несколько функций «WinAPI», а «Windows» при включенном «secure boot» не даёт этого сделать.
                                        Ответить
                                        • Офтопик. Я тут уже рассказывал про неофициальный проект VDM для 64-битных «Windows»:

                                          https://github.com/leecher1337/ntvdmx64

                                          Я также рассказывал про то, что 16-битные приложения «Windows» нельзя запустить из 64-битной «Windows», хотя 32-битные приложения запустить можно, и 16-битные сегменты защищённого режима создавать можно. Причина как минимум в том, что из-за неразвитости 16-битного WinAPI 16-битные приложения используют прерывания «DOS». Например, функций findfirst/findnext в 16-битном WinAPI нет, их приходится доставать через интерфейс «DOS». Так что помимо загрузчика формата «NE» и соответствующих DLL потребуется ещё эмулировать DPMI — интерфейс защищённого режима к прерываниям «DOS».

                                          Так вот энтузиасты таки реализовали среду для запуска 16-битных приложений из 64-битных «Windows»:
                                          https://github.com/otya128/winevdm

                                          Однако, нативным способом реализовать его всё равно не удалось:
                                          64-bit Windows cannot modify LDT(NtSetInformationProcess(,ProcessLdtInformation,,) always returns error)

                                          Из-за отсутствия возможности через WinAPI в 64-битных «Windows» менять LDT (а нам это необходимо, поскольку в 16-битных «Windows» модель памяти не «flat», а сегментированная) авторы всё-таки решили использовать эмулятор процессора, как в «NTVDMx64» (там эмулятор понадобился из-за невозможности создать сегмент режима «V86» из «длинного» режима 64-битного процессора).
                                          Ответить
                                          • почему не взять досбокса?
                                            Ответить
                                            • «Досбокс» хорош как песочница.

                                              Однако, кому-то хочется запуска программ одним кликом. В «Windows» же нет шебанга /etc/magic и нельзя настроить так, чтобы досовские файлы обрабатывались «Досбоксом».

                                              Кому-то хочется более тесного взаимодействия с системой. Ну чтобы 16-битные приложения работали так же, как и родные приложения системы.
                                              Ответить
                                              • > одним кликом
                                                > взаимодействия с системой

                                                Как часто ты юзаешь 16-битные приложения под винду? По-моему и в виртуалке норм.
                                                Ответить
                                              • >кликом

                                                ну вообще есть пример яблока, который в начале этого века умел запускать приложения под девятку в эмуляторе (тн classic) одним кликом

                                                Кликнул -- запустился эмулятор -- подождал 40 секунд --- и пользуйся.

                                                В пинде нету красивых способов выбрать запускалку по заголовку (в отличие кстати от прыще, где есть https://en.wikipedia.org/wiki/Binfmt_misc), класс определяется расширением
                                                Ответить
                                                • Ну переименуй в exe16 и кликай.
                                                  Ответить
                                                  • У меня есть смутное ощущение, что я винда умеет для .xml файлов что-то такое из них прочитать, и понять чем из запускать.

                                                    Кто сможет это вспомнить или нагуглить?
                                                    Ответить
                                                    • Файлы «.sln» — решения «Visual Studio» — открываются в нужной версии (2010/2015/...) сразу по щелчку. Но я сейчас проверил реестр — там просто запускается «VSLauncher», который всю магию и делает.
                                                      Ответить
                                                      • Причём в «VSLauncher.exe» заголовки типа «Microsoft Visual Studio Solution File, Format Version 9.00» захардкожены. Он не сможет запустить версию студии, которая в него не захардкожена.
                                                        Ответить
                                                        • > не сможет запустить версию студии, которая в него не захардкожена
                                                          Что логично, т.к. они там 100500 раз поменяли структуру каталогов студии за эти годы.
                                                          Ответить
                                                          • Ты думаешь, там все каталоги захардкожены? Большую часть каталогов VSLauncher берёт из реестра. В нём ключи реестра захардкожены.

                                                            Итого:
                                                            1. Реестр распухает.
                                                            2. VSLauncher с каждой новой версией тоже распухает.
                                                            Ответить
                                                            • Надо чтоб гомоиконы каждая версия ВС добавляла в список в реестре свою обёрточку, а лаунчер бы потом каждую обёртку вызывал и спрашивал, мол, не сожрёшь ли ты такой файл? А потом выбирал либо ту, которая отвечает «да, это мой файл», либо, если таких нет, самую старшую из тех, кто ответил «версия не моя, но сожрать могу».
                                                              Ответить
                                                    • https://answers.microsoft.com/en-us/windows/forum/windows_10-desktop/windows-10-how-to-open-an-xml-file-by-default/61095242-856f-4079-8482-586b8ab21659?page=2



                                                      MSOXMLED.exe, чтобы это ни значло

                                                      mso-xml-ed
                                                      Ответить
                                                      • Мсо - мелкософт офис?
                                                        Ответить
                                                      • > MSOXMLED
                                                        Что ни говори, а аббревиатуры и подобное говно - зло.
                                                        По ним никак не поймёшь, о чём речь, а также существуют коллизии.
                                                        Особенно - в названиях придурошных ИТ-технологий вроде MVC или WCT, которые выеденного яйца не стоят, а уже зовутся громким именем.
                                                        Ответить
                                                        • @выеденного яйца не стоят,

                                                          А высосанного через трубочку - стоят?
                                                          Ответить
                                            • Был ещё когда-то проект LinE — это как WinE, но наоборот: чтобы запускать ELF-файлы из-под «Windows», не наворачивая полного эмулятора.

                                              По какой-то причине заглох. Вероятно, из-за того, что для запуска типичного линуксового приложения тонкой прослойкой не обойтись.
                                              Ответить
                                              • wsl-1 же
                                                Ответить
                                                • WSL-1 был более толстым, чем Line, но всё же тоньше, чем WSL-2.

                                                  Кстати, что побудило создать WSL-2?
                                                  Ответить
                                                  • невозможость реализовать точную семантику охулиона прыщесисколов поверх виндоядра, каже[size=20]тся они сломались на ptrace.

                                                    Кроме того, там IO тормозил
                                                    Ответить
    • Он смотрит не то, как ты выделяеш блок а размер блока и что туда пишешшш
      Ответить
    • Он смотрит не то, как ты выделяеш блок а размер блока и что туда пишешшш
      Ответить
    • https://ic.pics.livejournal.com/sled_ltd/2348582/182342/182342_original.jpg
      Ответить
    • Почему ваши куки отдаются под другой сервер? Что за дискриминация?
      Ответить
    • https://cf.ppt-online.org/files1/slide/o/OGojFKlAWsXup68MLf1SJD5CrtdBZncTU42PHvQR qV/slide-1.jpg
      Ответить

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