PDA

Просмотр полной версии : System Restore - "вынос зверей"



antanta
02.07.2009, 01:50
Пытаюсь автоматизировать полезный процесс. Нигде не нашел способ запустить "Восстановление системы" в XP вызовом какой-то функции. Даже вручную, через планировщик не получается (хотя, в этом деле совсем не силен). Возможно ли вообще из user-mode такое сотворить?
rstrui "справок не дает". У нее вообще есть параметры для запуска?
Буду бесконечно благодарен за любую информацию.
Regmon и филемон ничего полезного не говорят.

Virtual
02.07.2009, 06:44
antanta, это как же регмон инфы не дает :) плохо искал.

SetValue HKLM\System\CurrentControlSet\Services\srservice\S tart SUCCESS 0x2
меняет режим запуска Служба восстановления системы (и соответственно запускает ;))

SetValue HKLM\System\CurrentControlSet\Services\sr\Start SUCCESS 0x0
меняет режим запуска Драйвер фильтра восстановления системы (и соответственно запускает ;))

SetValue HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore\DisableSR SUCCESS 0x0
включает восстановления системы

да и вообще в ветке
HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore
очень много интересного.

antanta
02.07.2009, 11:05
antanta, это как же регмон инфы не дает :) плохо искал.

Я не сказал, что не дает вообще. При запуске процесса восстановления системы в итоге происходит рестарт. Только и успеваю Save жать. Не факт, что все в лог попадает.

Да и вопрос - о другом. Недаром же я упомянул rstrui.
Интересует метод запуска самого процесса восстановления. То есть - копирования файлов из SystemVolumeInformation куда следует. Уже под утро нашел упоминание о двук ключах запуска rstrui.exe : -i и -c

antantaда и вообще в ветке
HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore
очень много интересного.

Если Вы специалист, поделитесь уже. Это
HKLM\Software\Microsoft\Windows\CurrentVersion\Run Once\*Restore SUCCESS "C:\WINDOWS\system32\restore\rstrui.exe -i" я пытался воспроизводить. С ключем -с пишет, что восстановление успешно. На самом деле - ничего не меняется.
Если было просто найти такую инфу в нете, я бы не спрашивал.

Добавлено через 1 час 44 минуты

Кажется, заработало. Брутфорс гугля атакой по алфавиту помог найти
rstrui.exe /v (http://pcwelt-tipps.de/wiki/Radikaler_Schalter)
В итоге kl1 (KIS 8 ) ушел в глубокую спячку. Это дает надежду, что и "других руткитов" так можно детектить и выносить.
1) Отключаем восстановление
2) Включаем восстановление (имеем теперь одну точку)
3) Грузим куст из точки восстановления
4) Сравниваем содержимое на предмет скрываемых ключей.
5) Правим загруженный куст
6) Ресторе.
Теперь дело за реализацией.
PS : А за ссылку на документацию по этой теме все равно буду благодарен.

Alex Plutoff
02.07.2009, 11:28
Пытаюсь автоматизировать полезный процесс. Нигде не нашел способ запустить "Восстановление системы" в XP вызовом какой-то функции...
:O :O :O
- никак не пойму... Вы хотите по расписанию откат системы осуществлять или создавать новые точки восстановления по графику?.. и зачем это нужно?.. :>
- вот уж действительно, - шаловливые руки голове покоя не дают... а может наоборот, голова - рукам? ;) :D

antanta
02.07.2009, 12:32
:O :O :O
- никак не пойму... Вы хотите по расписанию откат системы осуществлять или создавать новые точки восстановления по графику?.. и зачем это нужно?.. :>
- вот уж действительно, - шаловливые руки голове покоя не дают... а может наоборот, голова - рукам? ;) :D

Извините, а что, мой пост, находящийся непосредственно выше Вашего, ваш браузер не отобразил?
Чтож... Когда мне нужно "найти и уничтожить" какую-нибудь редиску, я, в зависимости от обстоятельств, иногда использую различные методы доступа к файлам реестра Windows:
1) Загрузка PE или Erd, загрузка и анализ кустов рееестра (написал такую утилитку), правка, сохранение и ребут. Долгий способ. PE медленно грузится. Кроме того, мне так и не удалось заюзать CryptoAPI под PE для проверки файлов по каталогу безопасности. А г-н Зайцев базы безопасных не дает :)
2) Загрузка RIPLinuX, монтирование раздела с виндой, скриптом поднимаем сеть и NFS, коннектимся с нормального компа (XP+ SFU), далее то же + проверка KIS с актуальными базами . Недостаток - нужен второй комп. Зато линь быстрее грузится, базы всегда актуальны + возможность проверки по каталогу MS. В перспективе - заточить livecd под эти нужды, будет еще шустрее.
Так вот, в некоторых случаях нет необходимости грузиться с постороннего носителя. Фактически мы можем править файлы реестра, находясь в "больной" системе. Более того, есть надежда, что не каждый руткит парсит аргументы функций реестра в поисках подстроки, равной имени подключа (например nvmini). Скорее, как и KIS, контролирует по полному пути. Таким образом, попытка доступа к ключу вида HKLM\ZZZSystem\ControlSet001\Services\nvmini скорее всего будет проигнорирована.
Если удастся таки прочесть мой предыдущий пост, то станет понятна цель затеи.
Касаемо шаловливости etc, мне трудно оспаривать мнение авторитетного хелпера. Упорным трудом Вы заслужили право на любые высказывания.

PavelA
02.07.2009, 14:45
antanta, Поищи на netzor.org книжку про работу с rundll32.
В ней есть хорошее описание того, что твориться в реестре системы.

antanta
06.07.2009, 18:08
Чтобы не быть голословным, выкладываю "концепт". http://slil.ru/27816072
Пока можем выставлять пермишны на нужную папку, грузить файлы реестра (требуется указать на папку snapshot), отображать Services, проверять по каталогу безопасных (если стоит галка и удалось найти файл), менять значение параметра Start (кликом по циферке в правой колонке), выгружать кусты, запускать восстановление. Во избежание ошибок я перед запуском программы влючаю и сразу отключаю "восстановление", чтобы осталась одна актуальная точка.
В ближайших планах: сравнение данных, читаемых из текущего реестра и из снимка, а также -отбражение DLL, загружаемых через svchost, и прочая.
Замечания по делу приветствуются :)

PavelA
06.07.2009, 18:54
Если заниматься этим серьезно, то надо переносить тему в "Бета-тестирование".
А если так, чтобы помучать Винду, то можно и здесь оставить.

antanta
06.07.2009, 19:37
Если заниматься этим серьезно, то надо переносить тему в "Бета-тестирование".
А если так, чтобы помучать Винду, то можно и здесь оставить.

Против переноса не возражаю. В бета-тестирование - много чести :)
В "Для профессионалов" - можно. Как это делается?
PS: Скачал книгу по ссылке. Чать "кода" неправильно отображается (по отзывам - не уменя одного). Есть еще серьезные вопросы по изложенным "идеям", но ( на всякий случай) ,спишем это на мою недостаточную квалификацю.
Если есть возможность потестить выложенную прогу в боевых условиях, буду благодарен. В связи с кризисом (и с тем, что у всех клиентов стоит лицензионный KIS... я сам себе враг :) ), работы мало. Ни одного руткита на горизонте.

anton_dr
06.07.2009, 22:47
Почему бы и не в бета-тестирование...
Название темы предложите получше - а то предложенные не очень отражают суть :)

antanta
07.07.2009, 09:04
Просьба потестировать была обусловлена желанием понять, нужно ли это кому-то кроме меня. Если выяснится, что да, то можно попросить включить подобный функционал в AVZ.
Основная же идея - обнаружение и вынос зверушек простыми способами. Думаю, у каждого любителя погонять зверей есть в активе "секретная комба". Например, почему бы при убийстве нехорошего процесса не вешать на него отладчик? Типа "ntsd -d". Чтобы не смог запуститься. "Им" можно, а нам нельзя? :) . Эта фича также не была бы лишней в AVZ. Преимущество в том, что работает и после перезагрузки.
Вот и вопрос. Можно ли блокировать таким способом запуск DLL? У меня не вышло, хотя видел, как какой-то редиска зачем-то установил аналогичную бяку на DLL антивирусного сканера. Частный случай: RUNDLL32 можно так на время обездвижить. Это креативнее, чем переименовывать. Да и шансов забыть о сделанном меньше:)
Так что решайте, куда эту тему девать и как называть.

Зайцев Олег
07.07.2009, 09:12
Просьба потестировать была обусловлена желанием понять, нужно ли это кому-то кроме меня. Если выяснится, что да, то можно попросить включить подобный функционал в AVZ.
Основная же идея - обнаружение и вынос зверушек простыми способами. Думаю, у каждого любителя погонять зверей есть в активе "секретная комба". Например, почему бы при убийстве нехорошего процесса не вешать на него отладчик? Типа "ntsd -d". Чтобы не смог запуститься. "Им" можно, а нам нельзя? :) . Эта фича также не была бы лишней в AVZ. Преимущество в том, что работает и после перезагрузки.
Вот и вопрос. Можно ли блокировать таким способом запуск DLL? У меня не вышло, хотя видел, как какой-то редиска зачем-то установил аналогичную бяку на DLL антивирусного сканера. Частный случай: RUNDLL32 можно так на время обездвижить. Это креативнее, чем переименовывать. Да и шансов забыть о сделанном меньше:)
Так что решайте, куда эту тему девать и как называть.
Все на самом деле очень просто - обычный процесс прибить не составляет проблемы, равно как не составляет проблемы карантинить и прибить DLL. Что и делается из AVZ (и AVZGuard + BootCleaner помогают в этом), причем безотказно. Проблемы возникают с "продвинутыми" руткитами, но там примитивные фокусы типа создания отладчиков и т.п. пропросту не сработают. Последствие - зачем выдумывать экзотическое решение несуществующей проблемы ?

antanta
07.07.2009, 10:06
Все на самом деле очень просто - обычный процесс прибить не составляет проблемы, равно как не составляет проблемы карантинить и прибить DLL. Что и делается из AVZ (и AVZGuard + BootCleaner помогают в этом), причем безотказно. Проблемы возникают с "продвинутыми" руткитами, но там примитивные фокусы типа создания отладчиков и т.п. пропросту не сработают. Последствие - зачем выдумывать экзотическое решение несуществующей проблемы ?
Про отладчики - просто пример. Интересно было услышать о других экзотических приемах. Кстати, выручал, когда не было (у меня) "полиморфного AVZ".
Закарантинить можно. Только вот если хоть одного пропустить, после перезагрузки (иногда) снова готов полный комплект. Лишний инструмент карман не тянет, он же софтовый. :) И реализуется элементарно.

Зайцев Олег
07.07.2009, 11:09
Закарантинить можно. Только вот если хоть одного пропустить, после перезагрузки (иногда) снова готов полный комплект. Лишний инструмент карман не тянет, он же софтовый. :) И реализуется элементарно.
А в чем разница то ? Если пропустить что-то при удалении а-ля AVZ (обычное удаление, отложенное удаление, BootCleaner - удаление из ядра на ранней стадии загрузки), то зверь может опять расплодиться. Аналогично с "отладчиками" и т.п. - я или уничтожаю (ну или блокирую) все, или не все и зверь выживает. Нет разницы, как уничтожать и блокировать - если известно, что точно следует убить - то проблем нет. При этом во всех "экзотических методах" есть ряд моментов (именно поэтому я всем начинающим антивирусописателям советую взять IDA и детально изучить 3-5 тысячи современных зверей):
1. Современный руткит работает из KernelMode. Поэтому ему все UserMode ухищрения типа отладчиков и т.п. совершенно безразличны, сколь бы экзотическими они не были. С ним возникает первая проблема (и самая актуальная) - найти компоненты руткита в системе, чтобы хоть знать, что убивать и карантинить
2. Многие звери используют методики защиты, в частности - постоянное переименование. Как следствие, имя исполняемого файла или DLL постоянно меняется, и все ограничения (отладчики, политики ограниченного запуска и т.п.) совершенно неэффективны
3. многие звери подменяют системные компоненты или патчат их. и если вместо системного userinit.exe у меня имеется зверь, и я блокирую его запуск скажем отладчиком, то я убъю систему наповал. Следовательно, разные экзотические блокираторы несут потенциальную угрозу ввиду того, что блокировка запуска чего-то важно и системного приведет к краху системы, неустранимому после убиения зловреда и восстановления системного файла

antanta
07.07.2009, 21:32
Не хватало мне еще препираться с уважаемым человеком... Хотя, где наша не пропадала.
Если Зайцев Олег согласен, что любое решение (решеньице, решеньино), имеет свои границы применения, то имеет смысл дальнейшее обсуждение (Хотя, тема начиналась не с этого. На мой вопрос никто не обязан был отвечать, и этим правом не отвечать воспользовались сполна. А может быть, просто никто не знает ответа).
Итак, "В чем разница?". В том, что иногда достаточно не дать запуститься одному файлу. Например этот файл case of:
1: Мешает выйти в инет
2: Устанавливает неправильный параметр запуска pif-файла
3: да мало ли...

На кернел мод "у самих револьверы найдутся". Гораздо противнее файловые вирусы из пункта 3. Правда, мне бы и голову не пришло прибивать winlogon.
Основываясь на собственном опыте (а иначе те, кто меня зовут и сами бы разобрались, благо ITшники), AVZ и KIS не могут запуститься/установиться довольно часто. Вот и Вам границы применимости. Чтобы не быть голословным, я в первой декаде января закидал кучу очень злопакостных файлов руткита на z-oleg.com. Не знал я, что "это уже не работает". К марту месяцу KIS постепенно снес этот зоопарк, хранимый в отдельной (по традиции) папке. Последнего из могикан (долгожителя) я уже сам отправил в ЛК, чтобы не мучался :)
Так вот, ни от AVZ, ни от KIS (который благополучно установился) окончательного толку не было. Я не отрицаю, что "Перехватчик не определен" - это уже толк.
"Кто первый встал, того и тапки". Ох уж эти границы применимости...
Фраза "начинающий антивирусописатель" звучит намного оскорбительнее, чем "достаточно-продвинутый - вирусодолбитель -любыми-средствами-в-том числе-собственного быдлокодного-написания". Без меня хватает писателей, и сделают они это лучше меня. Если я возьмусь за аверь под XP, то поспею к переходу MS на *nix, или к захвату гуглем последней рабочей станции.
Зайцев Олег! Ну почему Вы реагируете на третьестепенные вопросы/высказывания, оставляя без внимания (просто мистика) многочисленные просьбы привинтить AVZ к тому же PE? И вообще, к любым намекам на возможнось работать с реестром "offline"? Удивительная избирательность.
С уважением (без капли иронии), Антанта
(Ник сменить, что-ли... враждебный он какой-то :) )

Зайцев Олег
08.07.2009, 18:21
Зайцев Олег! Ну почему Вы реагируете на третьестепенные вопросы/высказывания, оставляя без внимания (просто мистика) многочисленные просьбы привинтить AVZ к тому же PE? И вообще, к любым намекам на возможнось работать с реестром "offline"? Удивительная избирательность.
С уважением (без капли иронии), Антанта
(Ник сменить, что-ли... враждебный он какой-то :) )
Работа с реестром "offline" во многих случаях отправит систему в offline, причем с гарантией. Начать с того, что MS не документировала формат реестра (есть знание о том, как он устроен - но это все недокументорованное знание), под незагруженной системой мы не знаем, под каким юзером реально идет работаи были проблемы, а какие юзеры "для мебели", у пользователя может быть понаставлено 5 операционок и он сам в них запутается, добавим к этому зловредов, убиение которых без глубинной чистки реестра прибъет систему и т.п., учтем, что реестр может быть поврежден в ходе неуспешных перезагрузок или действий зверя, добавим системные криптованные диски и экзотику типа всевозмодныж RAID (недоступную с BartPE, а RAID систем все больше и больше)... И что получим в сумме? А получим толпу юзеров, которые будут применять AVZ с BartPE и аналогов, рушить себе системы прямой правкой реестра и потом писать тысячи жалоб. Я такие рассуждение стал исповедовать, когда количество юзеров AVZ перевалило за миллион ... так как каждое потенциально опасное или недокументированное действие выходит боком. И это не приувеличения - несмотря на то, что в логе AVZ кругом написано "не нужно ничего удалять", ежедневно приходят гневные письма - "я вот просканировал, потом все руками удалил - а теперь компьютер не грузится". На эту же тему есть яркий контрпример AVPTool - там внутри есть ядро AVZ, но достучаться туда можно только скриптом, никакого GUI. Спрашивается, почему ? А потому, чтобы излише прыткие пользователи не рушили себе ПК, нажимая все подряд. А если говорить про админа, то загрузившись с Live CD он просканирует диск CureIT и AVPTool (у которых сигнатурные сканеры мощнее), применит поиск файлов на диске из AVZ с фильтром по базе чистых и это поможет в 99% случаев.

antanta
14.07.2009, 20:19
Долго боялся заходить, опасаясь справедливого гнева...

Работа с реестром "offline" во многих случаях отправит систему в offline, причем с гарантией. Начать с того, что MS не документировала формат реестра (есть знание о том, как он устроен - но это все недокументорованное знание),
"Я вам не скажу за миллион пользователей" ...Подразумеваемый в цитате способ работы с реестром на самом деле является "череповатым последствиями", хотя на моей практике не приводил ни разу к сбоям. Пользовался линуксовой тулзой chntpw.
Мои попытки написать к упомянутой тулзе ГУИ (слегка ее переделав для упрощения парсинга вывода) на PHP и GTK мягко говоря затянулись. Более того, я столкунулся с некорректной работой линукс с записью на ntfs (правда, с тех пор многое изменилось). Была еще более авнтюрная задумка - KolibriOS. Грузится шустро, но ... NTFS только на чтение. Разработчики расказали, как можно перекомпилить ядро с поддержкой записи. Только вот никто ничего не гарантирует :)
Но, речь не об этой экзотике.
Тот же PE позволяет подгрузить кусты штатными средствами Windows. Только анализировать приходится вручную. Когда крах системы УЖЕ наступил - это , зачастую, единственный способ. При наличии определенной автоматизации, был бы еще наиболее быстрым.

под незагруженной системой мы не знаем, под каким юзером реально идет работаи были проблемы, а какие юзеры "для мебели", у пользователя может быть понаставлено 5 операционок и он сам в них запутается
Легко определяется список, а потом лечим всех скопом. Что, кстати, будет еще одним плюсом этого подхода.

добавим к этому зловредов, убиение которых без глубинной чистки реестра прибъет систему
А вот с этого места... Лечение "извне" (а иногда и в режиме online) как раз и не позволяет чисить реестр. И, соответсвенно, приводит зачастую к тому самому краху. И это - один из главных соображений, по которым я не пользуюсь лишний раз лечением c LCD.
Про раиды и криптование я слышал, но у SOHO и ниже ни разу не видел. А у серьезных корпоративных - всемогущий бэкап.

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

antanta
15.07.2009, 22:32
Сегодня впевые залез в справку по скриптам AVZ. Представляю, сколько труда положено на интерпретатор... Респект... Совсем респект.

ALEX(XX)
15.07.2009, 22:55
Сегодня впевые залез в справку по скриптам AVZ.
Нет предела человеческому совершенству!!!! :)

antanta
15.07.2009, 23:46
Нет предела человеческому совершенству!!!! :)

Хорош издеваться-то... Не все в мире сводится к изучению чужих творений. Круг нашего познания, как показывает опыт, вовсе и не круг, и даже не элипс... Скорее он напоминает диаграмму направленности антенны типа "Б" от радиорелейной станции 409...

Добавлено через 3 минуты

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

ALEX(XX)
16.07.2009, 00:42
Хорош издеваться-то...

Спокойствие, только спокойствие. Я вообще-то в миролюбивом тоне произнёс это. ;)


Если такой всезнайка, могу озадачить парадоксом из области комплексных чисел. Математики при виде выкладок бурчат что-то невнятное и со священным трепетом произносят имя Эйлера. В ответ на просьбу опровергнуть обзывают и обрывают разговор. Надо?
Ну давайте.. :) Интересно посмотреть, как математику по образованию. Хотя для глубокого понимания АТЧ я никогда не был настолько накурен (ибо в другом состоянии этот предмет понять и познать нереально, ИМХО. :D )
А вот доказательств теоремы Ферма я повидал.. Наш преподаватель долго вкуривал доказательства, которые ему несли различные люди.. :) А там поди разбери где + с - перепутали :)

Добавлено через 13 минут


Скорее он напоминает диаграмму направленности антенны типа "Б" от радиорелейной станции 409...

А диаграмма какая? Вертикальная или горизонтальная?

antanta
16.07.2009, 09:31
В личку, без офтопов :)

Добавлено через 13 минут

Извиняюсь :)
Личкой не получается воспользоваться...
Если возвести мнимую единицу в 4-ю степень и взять корень 2-й степени, это должно быть эквивалентно возведению в квадрат. Однако, результаты получаются разные. Если над этим помедитировать, у некоторых уравнений появляются дополнительные корни. Где я ошибаюсь?

ALEX(XX)
16.07.2009, 10:56
Личкой не получается воспользоваться...
Если возвести мнимую единицу в 4-ю степень и взять корень 2-й степени, это должно быть эквивалентно возведению в квадрат. Однако, результаты получаются разные. Если над этим помедитировать, у некоторых уравнений появляются дополнительные корни. Где я ошибаюсь?
Да простят модераторы сей оффтоп:
sqrt (-1) = i -> i^2 = -1 (так написано у Пискунова, в первом томе двухтомника Дифференциальное и интегральное исчисления, стр. 206, 1985г. Москва)
Теперь, если мы возведём это в четвёртую степень, что получим? i^4 = 1 Правильно? Правильно. А теперь, самая великая тайна математики! Если возьмём квадратный корень, то получим 2 результата!!
sqrt (1) =1
sqrt (1) =-1

А что у нас говорил Эйлер про sqrt (1) =-1? Правильно, что это i^2
Для справки, формула Эйлера (http://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D0%B0_%D0%AD% D0%B9%D0%BB%D0%B5%D1%80%D0%B0)

Добавлено через 5 минут

О сколько нам открытий чудных Готовит просвещенья дух

antanta
16.07.2009, 19:50
Да простят модераторы сей оффтоп:
sqrt (-1) = i -> i^2 = -1 (так написано у Пискунова, в первом томе двухтомника Дифференциальное и интегральное исчисления, стр. 206, 1985г. Москва)
Теперь, если мы возведём это в четвёртую степень, что получим? i^4 = 1 Правильно? Правильно. А теперь, самая великая тайна математики! Если возьмём квадратный корень, то получим 2 результата!!
sqrt (1) =1
sqrt (1) =-1

А что у нас говорил Эйлер про sqrt (1) =-1? Правильно, что это i^2
Для справки, формула Эйлера (http://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D0%B0_%D0%AD% D0%B9%D0%BB%D0%B5%D1%80%D0%B0)

Добавлено через 5 минут

О сколько нам открытий чудных Готовит просвещенья дух

:))) Да все ж правильно. Нормальный человек так и отвечает ;)
Это был мой любимый пранк для крутых математиков с форума "альтернативщиков" (безопорное движение и прочая...). Впервые увидел нормальный ответ :) Ей богу, у одного в подписи стояло типа "кандидат физмат наук". Видили бы вы его ответы. :D
Алехх, как модератор, перенеси эту часть разговора во флейм. Если есть желание, конечно.

ALEX(XX)
16.07.2009, 21:19
Алехх, как модератор, перенеси эту часть разговора во флейм. Если есть желание, конечно.
Правов нетути.. Я не тутошний модератор :)

Добавлено через 4 минуты


Впервые увидел нормальный ответ :)
5 лет физмата даром не проходят

Добавлено через 2 минуты


Видили бы вы его ответы. :D

А есть линк на шедевр?

antanta
17.07.2009, 17:23
Прошло лет пять. Смысл был примерно такой , что выглядит вроде бы правильно, но теория комлексных чисел намного сложнее, чем я (по всей видимости профан!) могу ее воспринимать. И, зачем-то привел формулу Эйлера. Смех в том, что про мнимую единицу я писал для пущей загадочности. Достаточно возвести в 4 степень -1 и взять корень 4-й степни, чтобы поиметь "парадокс". Но, это ж не так звучит :)
Все, я ушел писать скрипты для AVZ. Жаль, что RegKeyIntParamWrite - процедура, и ничего не возращает в случае неудачи :(

ALEX(XX)
17.07.2009, 17:47
Прошло лет пять. Смысл был примерно такой , что выглядит вроде бы правильно, но теория комлексных чисел намного сложнее, чем я (по всей видимости профан!) могу ее воспринимать. И, зачем-то привел формулу Эйлера. Смех в том, что про мнимую единицу я писал для пущей загадочности. Достаточно возвести в 4 степень -1 и взять корень 4-й степни, чтобы поиметь "парадокс". Но, это ж не так звучит :)
Все, я ушел писать скрипты для AVZ. Жаль, что RegKeyIntParamWrite - процедура, и ничего не возращает в случае неудачи :(
если возьмём коренб 4-й степени, то по-хорошему получим 4-ре (корня) результата :)

Добавлено через 12 минут

И вообще, при любом целом k, i^(4*k)=1, i^(4*k+1)=i, i^(4*k+2)=-1, i^(4*k+3)=-i

Зайцев Олег
17.07.2009, 18:12
Жаль, что RegKeyIntParamWrite - процедура, и ничего не возращает в случае неудачи :(
Как раз наоборот ... дело в том, что реальный зловред может или менять интересующий его ключ в цикле, или при помощи драйвера мониторить запись и менять что-то на лету, или блокировать - но возвращать статус "ОК". Тогда приложение будет думать, что все сделано успешно, хотя это не так. Поэтому статус не возвращается и проверка успешности реализуется чтением и сравнением значения параметра с тем, что мы туда записали

antanta
21.07.2009, 00:54
Как раз наоборот ... дело в том, что реальный зловред может или менять интересующий его ключ в цикле, или при помощи драйвера мониторить запись и менять что-то на лету, или блокировать - но возвращать статус "ОК". Тогда приложение будет думать, что все сделано успешно, хотя это не так. Поэтому статус не возвращается и проверка успешности реализуется чтением и сравнением значения параметра с тем, что мы туда записали

Я так и делаю, только не понимаю, что помешает злодею сделать вид, что записано, а потом подсунуть из своего "кэша" для прочтения. Война алгоритмов.
"Заставим злодеев таскать за собой анти-антивирусные базы!"

Kuzz
21.07.2009, 09:19
"Заставим злодеев таскать за собой анти-антивирусные базы!"
Некоторые уже таскают..