• XSS.stack #1 – первый литературный журнал от юзеров форума

Tools Обсуждение приватной тулзы Patchdiff

varwar

El Diff
Забанен
Регистрация
12.11.2020
Сообщения
1 383
Решения
5
Реакции
1 537
Пожалуйста, обратите внимание, что пользователь заблокирован
Попалась мне тут в твиттерах одна тулза от @TinySecEx. Мне как человеку далекому от создания веб-приложух стало интересно какие технологии он использует. И в целом интересно было бы создать аналогичную тулзу для автоматизации рутины.

Судя по скринам, я понял следующее.

IMG_4537.PNG


IMG_4536.PNG

IMG_4531.PNG

1. Основной модуль диффинга построен вокруг IDA и Bindiff.
Т.е. создается две базы IDA, затем консольной утилитой bindiff.exe создаются две базы .Binexport, ей же затем создается sqlite3 база .Bindiff.

Собственно потом .Bindiff база парсится на различия по полям name1, name2, address1, address2, similarity.

1733159257529.png

1733159404163.png


Правда я не нашел полей для удаленных и добавленных функций. Может плохо смотрел. На основе этой инфы на IDAPython пишется скрипт для декомпиляции функций по имени/адресу, данные сохраняются, например, в два текстовых файла. Т.к. не нужно декомпилировать всю базу, а только функции с similarity < 1, то это не занимает много времени. Потом, например, петухоновской либой difflib создается такой html (diaphora тоже юзает эту либу).

1733159595444.png

В Patchdiff конечно вывод поприятнее выглядит, скорее всего там использовалось что-то другое.
Ясно, что там много чего еще сделано, есть скорее всего парсинг KBшек и получение уязвимой, патченной версии бинарей, работа с API мелкософта для сопоставления бинарей c CVE и т.д.

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

Вложения

  • IMG_4532.PNG
    IMG_4532.PNG
    20.7 КБ · Просмотры: 32
  • IMG_4533.PNG
    IMG_4533.PNG
    52.4 КБ · Просмотры: 19
  • IMG_4535.PNG
    IMG_4535.PNG
    42.1 КБ · Просмотры: 22
  • IMG_4539.PNG
    IMG_4539.PNG
    20.7 КБ · Просмотры: 41
Пожалуйста, обратите внимание, что пользователь заблокирован
В общем интересны ваши мысли по тому, как может быть устроена эта тулза, какие технологии используются.
Сделано, наверно, точно по такому же принципу, я думаю, как в этом проекте

 
Пожалуйста, обратите внимание, что пользователь заблокирован
Сделано, наверно, точно по такому же принципу, я думаю, как в этом проекте

Надо будет заценить поподробнее.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Надо будет заценить поподробнее.
Тут же главное что? Декомпилятор по сути. А распаковка патчей уже второстепенное. Это уже можно доделать.
Там кстати есть сайт - лайф версия этого проекта https://dogbolt.org/
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Тут же главное что? Декомпилятор по сути. А распаковка патчей уже второстепенное.
Как бы да, но и нормальный вывод с подсветкой различий тоже лично мне важен т.к. иногда хочется блевать от вывода Diaphora (difflib) + вывод не адаптивный и получается при зуме такая шляпа с обрезкой.

1733171954489.png


Интересно какой либой можно было бы нормальный фронт сделать и чтобы это было не сложно, лол.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Как бы да, но и нормальный вывод с подсветкой различий тоже лично мне важен т.к. иногда хочется блевать от вывода Diaphora (difflib) + вывод не адаптивный и получается при зуме такая шляпа с обрезкой.

Посмотреть вложение 99470

Интересно какой либой можно было бы нормальный фронт сделать и чтобы это было не сложно, лол.
Тут уж точно не подскажу... Хотя на ум приходит разве что highlight.js (для подсветки) & bootstrap (для адаптивности).

highlightjs.png


Цветовую гамму любую можно подобрать.

А если ты про само веб-приложение, сайт, то я бы использовал наверно Tornado или Flask. Это на много проще, чем использовать тот же Django. Да и шаблонизатор простой.
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх