1.6, Аноним (6), 17:11, 06/12/2024 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Мне бы инструмент, который по бинарному файлу либы бы выдал точный коммит, из которого она собрана. При этом допущения:
* либа собрана из какого-то комиита из указанного репозитория
* сборочная система и версии зависимостей, включая те, что статически или на уровне хедера линкованы, неизвестны (система должна сама идентифицировать статически-линкованные и header-only либы и их версии)
* индекс специально для бинарников не создавался
| |
|
2.7, Аноним (6), 17:13, 06/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
Если что - для целей апгрейда либ в старой системе Android без полной пересборки оной из исходников.
| |
|
3.10, myster (ok), 17:34, 06/12/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Если sha коммита не записывается в виде метаданных в саму либу, то само по себе значение sha бесполезно, т.к. оно может быть постоянно разное и зависит от других изменений в Git репозитории (не связанных именно с этой либой). То есть, это всё-равно, что измерять среднюю температуру по больнице.
| |
|
|
3.9, Аноним (6), 17:22, 06/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
Жаль. В теори можно было бы реализовать как определение различий в именах символов из исходников, после чего извлечения символов из бинарей, определение по набору символов набора подходящих коммитов, после чего определение тех символов, которые поменялись, и извлечение из бинаря уже кода и данных по изменившимся символам (в первую очередь - констант и размеров), и матчинг их к изменениям в исходникам.
| |
|
4.26, Семен (??), 20:17, 06/12/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Это не возможно, потому что при разных флагах компилятора и линковщика, уже код будет различаться, не говоря про разные компилятора. Почитайте как работают линкеры. Имена символов манглятся или вовсе удаляются, остаются только имена экспортируемых функций. Для поиска багов есть git bisect и ничего вам не мешает смотреть историю коммитов по конкретному файлу, и найти смещение в бинарнике и дисассемблировать.
| |
|
|
2.22, Rock (?), 19:02, 06/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Мне бы инструмент, который по бинарному файлу либы бы выдал точный коммит, из которого она собрана.
Вроде, для этого существует цифровая подпись. Сейчас все более-менее серьезные лавки свои бинарники подписывают.
| |
|
3.24, Аноним (6), 19:32, 06/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
>для этого существует цифровая подпись
... но это неточно ... :)
| |
|
2.25, Семен (??), 20:04, 06/12/2024 [^] [^^] [^^^] [ответить] | +/– | 1 В большинстве библиотек есть API для получения версии библиотеки, версия в бо... большой текст свёрнут, показать | |
2.30, Аноним (30), 04:03, 07/12/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
А что делать, если два коммита идентичны?
И нет, это невозможно, потому что, например, в хедер-онли библиотеке может быть всё, что угодно, в частности, всё, что вообще выключает весь код из вашего проекта.
| |
2.38, Neon (??), 01:15, 10/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
Странная хотелка. Собрать бинарник можно и без всяких репозиториев. В принципе без них обойтись
| |
2.39, Neon (??), 01:17, 10/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
Надо больше хотеть.))) Чтобы по бинарнику получать полную персональную инфу на человека, его собравшего. Фотографию, место жительства, текущее его местонахождение.))) Чтоб было кому за кривой код морду бить.)))
| |
|
|