Здравствуйте, Философ, Вы писали: Ф>Интересно. Какие?
Какие признаки или какие знания?
Признаки — очень простые. Смотрим на новую версию, видим что она ломает какой-то сценарий. В большинстве случаев это следствие того, что новое поколение просто не в курсе, что и зачем было сделано в том, что они решили сломать.
Я вот приводил пример — в винде есть такая фича, "напечатать на принтере тестовую страницу".
Тестовая страница была придумана мудрыми предками, чтобы выводить всякие техничности, вроде версий драйверов, реально подключенных спулером в процессе печати; но и заодно эта штука проверяла корректность вывода основных примитивов WMF (шрифты, линии, картинки), а также корректность цветоделения и работоспособность всех картриджей принтера.
Последнее достигалось благодаря четырёхцветному флагу Windows.
В десятке эту тему отдали на "доработку" долбоклюям. Которые решили, по скудоумию, что это — "просто картинка". А поскольку картинка старенькая, времён Win95, её надо заменить модной, стильной, молодёжной.
Выполненной в 1 (одном) оттенке голубого цвета.
В Outlook (не express), емнип, 2013 календарик в todo pane превратился в декорацию. Опять же — молодые долбоклюи не знали, что он был интерактивным — это был mini-view в настоящий календарь. Можно было, например, письмо из inbox прямо драг-н-дропом кинуть на нужную дату, и открывался диалог формирования to-do item с соответствующим дедлайном. Офигенная штука — одним движением позволяет раскидывать входящие.
Молодняк всего этого не оценил. Старый календарик был неправильный — из до-риббоновой эпохи, слишком трёхмерный и разноцветный. Сделали новомодный — серый и плоский. Заодно он потерял интерактивность.
Вот по этому поводу я имел переписку с саппортом, т.к. входил в бета-программу. Ответ был примерно такой: "о, прикольно, мы не знали, что так было можно. Но на данном этапе мы чиним только критические баги, поэтому ваш фидбек мы положим на полку". Ну, я терпеливый, написал в команду, которая пилила следующий релиз. Ответ был такой "спасибо за ваш фидбек, но мы проверили — в предыдущей версии поведение такое же; на данном этапе мы считаем багом только регрессию".
Не, я понимаю, что иногда приходится принять нелёгкое решение и изменить фичу, которая мешает движению вперёд. Ну, там, отказаться от полноразмерных кнопок в таскбаре — понятно, во времена win95 запускать больше десятка приложений и смысла-то не имело — оно ж и так еле шевелилось; а теперь их много, надо чем-то жертвовать. Или тот же риббон — да, в офисе накопилось так много фич, что уже ни в меню, ни в тулбары они не влезали.
Но это — осознанная необходимость.
А вот когда делают плохо безо всякой причины; когда можно было за те же деньги сделать нормально — это чистое невежество.
Кстати, это не только в редмонде. Мне тут рассказали байку про то, что GraalVM у Оракла возникла не от того, что в Hotspot был какой-то радикальный изъян. Нет, просто люди, которые разбирались в codebase Hotspot, вымерли естественным путём, и молодёжь просто не смогла ее маинтейнить. Оказалось проще выкинуть и написать всё с нуля.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Сможет ли deepseek разобрать винду, чтобы сделать исходники?
SK>IDA Pro (Interactive Disassembler) — интерактивный дизассемблер и отладчик, позволяющий превратить бинарный код программы в ассемблерный текст, который может быть применён для анализа работы программы и реверс-инжиниринга.
SK>в торрентах есть демоверсии
Ты когда-нибудь пробовал им пользоваться? Я пробовал. Он на то и интерактивный, что дизассемблируешь ты сам — он помогает. Чтоб дизассемблировать что-либо нужно тучу времени и усилий вложить.
Реверсинг — серьёзная большая работа. IDA — не магическая чудо-машинка, которая за тебя всё делает. Это типа продвинутой лопаты, с помощью которой люди копают.
Всё сказанное выше — личное мнение, если не указано обратное.
Re: Сможет ли deepseek разобрать винду, чтобы сделать исходники?
Здравствуйте, snaphold, Вы писали:
S>ну как минимум чтобы если своё что-то делать хочешь можно посмотреть как там. S>второе, чтобы знать что она умеет плохого делать и уметь отключать ненужные вещи типа типа удаленное отключение
Можно начать с того, что сделать базу, что делает каждый из 100600 файлов в C:/Windows/win32/. Уже на этом этапе будет много интересных открытий.
Потом функциональная копия всего состава systinternals под public domain.
Вот тогда может оказаться, что в большинство исходников лезть и не надо.
The God is real, unless declared integer.
Re: Сможет ли deepseek разобрать винду, чтобы сделать исходники?
N>Можно начать с того, что сделать базу, что делает каждый из 100600 файлов в C:/Windows/win32/. Уже на этом этапе будет много интересных открытий.
а есть где-то инфа, что там интересное происходит?
N>Потом функциональная копия всего состава systinternals под public domain.
N>Вот тогда может оказаться, что в большинство исходников лезть и не надо.
так systinternals вроде утилиты предоставляет удобные. хотя помню там была одна, которая трекала все действия по папкам. но ведь в недрах винды ничто не мешает сделать канал общения который не будет виден визуально, а systinternals как я понял работает с публичной частью винды
Сможет ли deepseek разобрать винду, чтобы сделать исходники?
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Здравствуйте, snaphold, Вы писали:
S>>А в чем сложности разобрать ядро винды или ios?
ЕМ>А зачем?
ну как минимум чтобы если своё что-то делать хочешь можно посмотреть как там.
второе, чтобы знать что она умеет плохого делать и уметь отключать ненужные вещи типа типа удаленное отключение
Re[2]: Сможет ли deepseek разобрать винду, чтобы сделать исходники?
Здравствуйте, snaphold, Вы писали:
S>ну как минимум чтобы если своё что-то делать хочешь можно посмотреть как там.
Полагаете, исходники даже на C/C++, но без осмысленных имен (если для модулей нет полных PDB) могут этому способствовать? Тогда уж логичнее требовать от ИИ не восстановления до исходников, а построения алгоритма, псевдокода, или чего-то подобного.
S>чтобы знать что она умеет плохого делать и уметь отключать ненужные вещи типа типа удаленное отключение
Для этого тоже нет смысла получать от ИИ исходники — его нужно сразу нагружать поиском определенных паттернов.
Re[3]: Сможет ли deepseek разобрать винду, чтобы сделать исходники?
Здравствуйте, snaphold, Вы писали:
S>>>А в чем сложности разобрать ядро винды или ios?
Нет сложностей. Давно уже всё разобрано и изучено.
IDA Pro (Interactive Disassembler) — интерактивный дизассемблер и отладчик, позволяющий превратить бинарный код программы в ассемблерный текст, который может быть применён для анализа работы программы и реверс-инжиниринга.
в торрентах есть демоверсии
ЕМ>>А зачем?
S>а, читаю тут новости про пейджеры. еще как минимум в целях безопасности
Пейджеры — ерунда, детские шалости.
Когда там была "заварушка" в прошлый раз то перед боевым вылетом самолетов "ложилась" вся сотовая и беспроводная связь (+ некоторая инфраструктура). Не заглушалась РЭБом понятным образом, а просто внезапно отключалась — magic off.
Работоспособность сохранялась у очень старого оборудования или оборудования завезенного из тоталитарного Китая.
Положительная сторона этого необъяснимого явления — население узнавало о налете за 10-15 минут до включения сирен и успевало спрятаться в убежищах.
Все проблемы от жадности и глупости
Re[4]: Сможет ли deepseek разобрать винду, чтобы сделать исходники?
Здравствуйте, netch80, Вы писали: N>Можно начать с того, что сделать базу, что делает каждый из 100600 файлов в C:/Windows/win32/. Уже на этом этапе будет много интересных открытий.
Причём, подозреваю, интересных не только нам, но и нынешнему контингенту Редмонда.
Есть косвенные признаки того, что некоторые знания там уже утрачены.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[5]: Сможет ли deepseek разобрать винду, чтобы сделать исходники?
Здравствуйте, snaphold, Вы писали:
S>А в чем сложности разобрать ядро винды или ios?
А что именно разобрать? Что ты хочешь предоставить на изучение, содержимое папок Windows и Program Files? Это типа — сможет ли ИИ машинный код превратить в код на ЯП, легко читаемый человеком?
Скорее всего дизассемблирование будет плохой задачей для алгоритма, который штатно галлюцинриует.
Re: Сможет ли deepseek разобрать винду, чтобы сделать исходники?
Здравствуйте, snaphold, Вы писали:
S>А в чем сложности разобрать ядро винды или ios?
В теории — должен. Это как раз примерно то, в чём сильны нейросетки — построение нелинейных функций.
Ну, то есть понятно, что интересны не столько сами исходники, сколько комментарии к ним.
Скажем, для управляемого кода есть вполне себе вменяемые декомпиляторы, которые прекрасно восстанавливают исходники, в том числе и со сворачиванием определённых "паттернов" в идиоматический синтаксический сахар.
Но если код обфусцирован, то большого толку от этого нет — ну, вот видишь вы функцию ___f001 c некоторой сигнатурой; она вызывает функцию ___f002 с другой сигнатурой. Что это? Зачем? Почему она так делает?
Для задачек вроде "найти место, где код проверяет наличие лицензии, выкосить этот вызов, и скомпилировать обратно" этого, в принципе, достаточно.
А вот для восстановления логики разработчика — нет.
Мне лично кажется, что LLM тут должны помочь — как раз потому, что их можно натренировать на исходных паттернах, которые превращаются в некоторый бинарный код, и они смогут "узнавать" эти паттерны, и восстанавливать "смысл" кода в терминах этих паттернов.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Сможет ли deepseek разобрать винду, чтобы сделать исходники?
Здравствуйте, Sinclair, Вы писали:
S>Скажем, для управляемого кода есть вполне себе вменяемые декомпиляторы, которые прекрасно восстанавливают исходники, в том числе и со сворачиванием определённых "паттернов" в идиоматический синтаксический сахар.
Я так понимаю, что ты о рефлекторе и dot Peak'е говоришь. В управляемом коде есть имена функций и классов — потому и работает. В управляемом коде функции не инлайнятся — они инлайнятся на этапе JIT/NGEN.
Без метаинформации и после оптимизации сделать из бинарного кода человекочитаемый исходник — задача другого порядка.
Всё сказанное выше — личное мнение, если не указано обратное.
Re[2]: Сможет ли deepseek разобрать винду, чтобы сделать исходники?
S>Скажем, для управляемого кода есть вполне себе вменяемые декомпиляторы, которые прекрасно восстанавливают исходники, в том числе и со сворачиванием определённых "паттернов" в идиоматический синтаксический сахар.
а про какие паттерны имеешь ввиду? типа "а это запрос к контролеру диска из системных процессов"?
Re[3]: Сможет ли deepseek разобрать винду, чтобы сделать исходники?
Здравствуйте, snaphold, Вы писали:
S>а про какие паттерны имеешь ввиду? типа "а это запрос к контролеру диска из системных процессов"?
Типа "вот мы вызываем функцию X, а сразу за ней (в зависимости от результата) — функцию Y. Выглядит так, что функция Y возврашает детали ошибки, на которую напоролась функция X".
И всякие "вот тут мы реализуем для вызова X retry policy с такими-то параметрами".
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[5]: Сможет ли deepseek разобрать винду, чтобы сделать исходники?
Здравствуйте, snaphold, Вы писали:
N>>Можно начать с того, что сделать базу, что делает каждый из 100600 файлов в C:/Windows/win32/. Уже на этом этапе будет много интересных открытий. S>а есть где-то инфа, что там интересное происходит?
А где оно ещё может происходить?
N>>Потом функциональная копия всего состава systinternals под public domain. N>>Вот тогда может оказаться, что в большинство исходников лезть и не надо. S>так systinternals вроде утилиты предоставляет удобные.
Без исходников. Без истории развития.
The God is real, unless declared integer.
Re: Сможет ли deepseek разобрать винду, чтобы сделать исходники?
Здравствуйте, snaphold, Вы писали:
S>А в чем сложности разобрать ядро винды или ios?
какой смысл, комментариев вроде такого (Windows код) же не будет, тогда для изучения слабо подходит:
STDMETHODIMP CButton::accDoDefaultAction(VARIANT varChild)
{
long lStyle;
//
// Validate
//if (!ValidateChild(&varChild))
return(E_INVALIDARG);
lStyle = GetWindowLong(m_hwnd, GWL_STYLE);
if (lStyle & WS_DISABLED)
return(S_FALSE);
switch (lStyle & BS_TYPEMASK)
{
case BS_PUSHBUTTON:
case BS_DEFPUSHBUTTON:
if (InTheShell(m_hwnd, SHELL_TRAY))
{
//
// You can't just click the start button; it won't do
// anything if the tray isn't active except take focus
//
PostMessage(m_hwnd, WM_SYSCOMMAND, SC_TASKLIST, 0L);
break;
}
// FALL THRUcase BS_PUSHBOX:
case BS_OWNERDRAW:
case BS_USERBUTTON:
case BS_CHECKBOX:
case BS_AUTOCHECKBOX:
case BS_RADIOBUTTON:
case BS_AUTORADIOBUTTON:
case BS_3STATE:
case BS_AUTO3STATE:
// This used to be a PostMessage, but that hung powerpoint on 9x.
// (ADG#186)
//
// PPT has a PeekMessage-based message loop. The first time around,
// they don't filter messages and use PM_NOREMOVE, and get the
// message. The second time, they filter on the message that they've
// just got, and use PM_REMOVE to remove it this time. However, on
// 9x, this failed - so the message remained in the queue, and got
// processed over and over again...
//
// Seems to be a 9x-only quirk - messages are fine, but
// BM_CLICK and a couple of other BM_ messages (GETSTATE?) have
// this problem.
//
// Anyhow, using a SendMessage variant instead of PostMessage
// bypasses the message queue, so it's not a problem. The Timeout
// version is used to stop oleacc clients blocking if the target
// takes a long time to do its stuff (eg. if it starts a modal
// dialog).
//So using PostMessage on 9x can hang powerpoint, but using SendMessageTimeout on NT can cause the report dialog to hang.#ifdef NTONLYBUILD
PostMessage( m_hwnd, BM_CLICK, 0, 0 );
#else
DWORD_PTR dwResult;
SendMessageTimeout( m_hwnd, BM_CLICK, 0, 0, SMTO_NORMAL, SENDMESSAGE_TIMEOUT, & dwResult );
#endif
return S_OK;
}
return E_NOT_APPLICABLE;
}