Ręczna analiza skompilowanego kodu dużych plików binarnych za pomocą deasemblera, takiego jak Interactive Disassembler (IDA) Pro lub Ghidra, może być trudnym zadaniem nawet dla najbardziej doświadczonego badacza. Dzięki wykorzystaniu darmowych i dostępnych komercyjnie narzędzi do porównywania plików binarnych proces wyszukiwania interesującego kodu związanego z poprawioną luką może zostać uproszczony. Takie narzędzia mogą zaoszczędzić setki godzin spędzonych na odwracaniu kodu, który może nie mieć związku z poszukiwaną luką. Oto niektóre z najbardziej znanych narzędzi do porównywania plików binarnych:
- Zynamics BinDiff (bezpłatny) Zynamics BinDiff, nabyty przez Google na początku 2011 r., jest dostępny pod adresem www.zynamics.com/bindiff.html. Wymaga licencjonowanej wersji IDA (lub Ghidra).
- turbodiff (darmowy) Opracowany przez Nicolasa Economou z Core Security, turbodiff jest dostępny na stronie https://www.coresecurity.com/corelabs/
open-source-tools/turbodiff-cs. Można go używać z darmową wersją IDA 4.9 lub 5.0. Jeśli linki nie działają, spróbuj tutaj: https://github.com/nihilus/turbodiff.
- DarunGrim/binkit (darmowy) Opracowany przez Jeong Wook Oh (Matt Oh), DarunGrim jest dostępny na stronie https://github.com/ohjeongwook/binkit. Wymaga aktualnej licencjonowanej wersji IDA.
- Diaphora (darmowy) Opracowany przez Joxeana Koreta. Diaphora jest dostępna na stronie https://github.com/joxeankoret/diaphora. Oficjalnie obsługiwane są tylko najnowsze wersje IDA.
Każde z tych narzędzi działa jako wtyczka do IDA (lub Ghidra, jeśli zaznaczono inaczej), wykorzystując różne techniki i heurystyki do określania zmian kodu między dwiema wersjami tego samego pliku. Możesz uzyskać różne wyniki, używając każdego z narzędzi do tych samych plików wejściowych. Każde z narzędzi wymaga możliwości dostępu do plików bazy danych IDA (.idb), stąd wymóg licencjonowanej wersji IDA lub bezpłatnej wersji z turbodiff. W przykładach w tym rozdziale użyjemy komercyjnego narzędzia BinDiff, a także turbodiff, ponieważ działa ono z bezpłatną wersją IDA 5.0, którą nadal można znaleźć online w różnych witrynach, takich jak https://www.scummvm.org/news/20180331/. Pozwala to osobom bez komercyjnej wersji IDA na ukończenie ćwiczeń. Jedynymi narzędziami z listy, które są aktywnie utrzymywane, są Diaphora i BinDiff. Autorzy każdego z nich powinni być wysoko cenieni za dostarczanie tak wspaniałych narzędzi, które oszczędzają nam niezliczonych godzin prób znalezienia zmian w kodzie.