Rel, вот мне совсем не смешно. Мы скорбим по знаменитостям, но десятки тысяч безымянных ребят исчезают каждый год. Их матери остаются одни, их друзья несут гробы, а статистика пополняется новыми цифрами. Эмбеддинги дают ложное ощущение, что ты управляешь процессом, но на самом деле процесс управляет тобой... Единственное, что мы можем сделать - это перестать молчать и перестать обелять эту тему. Жизнь одного человека ценнее любого эмбеддинга. Вечная память тем, кого мы не уберегли. И силы - тем, кто продолжает бороться за живых.
who_know777, Простым языком можно описать, что это значит ? Как я понял у этих генератлров чепухи архитектурно урезали RAM, дабы вернуть миллиарды вложений и разгрузить поток бреда. Если прикрутить память и стабильность, все сломается, на бям ресурсов не хватит. > но десятки тысяч безымянных ребят исчезают каждый год. Понял, в игнор. Попей транков.)
Купи недорогой китайский планшет с интеловским процом, воссоединишься с ядром нт и станет не надо этой херней страдать. Мне вспоминается мальчик с синими волосами, который был смешон, но на удивление прав, сделав ллм-агента в виде плугина для иды и пропустив вот это вот, чем ты сейчас занимаешься.
f13nd, Получится ручной реверс, как обычно. При наличии планшета я не создал бы ТТР, все внимание отняли бы кодинг/реверс.
Листинг выше был специально сделан ногами, а не руками. Автоанализ. Руками бы идеально вышло. При желании можно совсем автоматизировать безголовой гидрой. В сравнении с полным отсутствием результата, просто отлично. ЗЫ: ТТР - Топология Топологии Рознь?
f13nd, Робот понимает смысл по дизу, получает алгоритм, смысл переменных например. masm.dwtoa(): Код (Text): void dwtoa_asm_style(unsigned int value, char* buffer) { char* start = buffer; if (value == 0) { *(unsigned short*)buffer = 0x0030; return; } if ((int)value < 0) { *buffer = '-'; buffer++; value = -(int)value; } char* digits_start = buffer; unsigned int magic = 0xCD197935; // 3435973837 while (value > 0) { unsigned int ebx = value; unsigned long long mul = (unsigned long long)value * magic; unsigned int edx = (unsigned int)(mul >> 32); edx >>= 3; value = edx; unsigned int temp = edx; temp = temp * 4 + temp; temp += temp; unsigned int remainder = ebx - temp; *buffer = (char)(remainder + '0'); buffer++; } *buffer = '\0'; // Реверс char* left = digits_start; char* right = buffer - 1; while (left < right) { char temp = *left; *left = *right; *right = temp; left++; right--; } } Код (Text): ПРОЦЕДУРА число_в_строку(число, буфер): ЕСЛИ число == 0: буфер[0] = '0' буфер[1] = КОНЕЦ_СТРОКИ ВЫЙТИ ЕСЛИ число < 0: буфер[0] = '-' число = -число буфер = буфер + 1 начало_цифр = буфер ПОКА число > 0: цифра = число % 10 буфер[0] = '0' + цифра буфер = буфер + 1 число = число / 10 буфер[0] = КОНЕЦ_СТРОКИ # Переворачиваем строку левый = начало_цифр правый = буфер - 1 ПОКА левый < правый: поменять_местами(левый, правый) левый = левый + 1 правый = правый - 1 ВЫЙТИ Код (Text): ФУНКЦИЯ dwtoa(число): ЕСЛИ число == 0: ВЕРНУТЬ "0" ЕСЛИ число < 0: знак = "-" число = -число ИНАЧЕ: знак = "" цифры = "" ПОКА число > 0: цифры = (число % 10) + цифры # добавляем спереди! число = число // 10 ВЕРНУТЬ знак + цифры Код (Text): 1. Если 0 → вернуть "0" 2. Если отрицательное → добавить "-" и взять модуль 3. Пока число > 0: - взять последнюю цифру (число % 10) - добавить её в начало строки - разделить число на 10 4. Вернуть результат Диз это промежуточный этап. Если бы бот мог норм работать, диз или результат декомпиляции был бы ненужен как внутренний этап реверса.
Ну не может чумазый обработать так много данных, логичное решение эти данные фрагментировать. Для того, чтобы данные фрагментировать, придется отдельным инструментом интерпретировать заголовки пе формата, дизассемблировать и частично интерпретировать код. Заодно скорость обработки возрастет на порядки. А он не работает. Теперь что?
f13nd, Частями не годится, как ему модуль ядра дать на анализ ? Сборщик раскидал части процедур по всему файлу. Нужно собрать в граф. Или как тогда протектор обработать, покрытие по всему файлу. Может возможно убедить не сочинять..
Вообще, это единственная полезная и актуальная задача для ИИ - декомпиляция кода. Он же может крутить это все бесконечно, формируя с выхлопа Иды читаемый и рабочий псевдокот. Но почему-то таких инструментов нет, как и заметок в этом плане. Хабр забит гуаном вида "как я навайбкодил говносайт, учитесь!", а вот полезное сделать - некому. По теме - Claude мощный , т.к. может там у себя в докере компилировать и запускать файлы. есть же какие-то программы типа курсор или как его, где можно запустить локально на компе, и дать ему доступ к файлам. Я не тестил.
Дипсик недавно сделал вжух. Скормил ему 2 разных проекта, которые сам до конца не понимаю, по сути все хранилось в двух разных структурах. Он смог объединить их в 1, без всяких атавизмов. Честно сказать, я немного прифигел...