все заметки

IDA 8.3 Pro: chrome.dll failed to load pdb info

2024.09.26 (редактировано: 2025.01.11)
Обновление2025-01-11: FIX PATCH!!!11
2025-01-05: Исправлено в IDA 9.0 Free
2024-12-23: История размера файлов chrome.dll.pdb. Есть предпосылки к уменьшению...
  • 131 - 4 442 923 008
  • 130 - 4 613 988 352
  • 129 - 5 035 319 296
  • 128 - 4 970 127 360
2024-10-25: Решаем задачу пересобиранием PDB

IDA Pro 8.3 (64-bit) перестал обрабатывать chrome.dll.pdb. Что случилось?

Открываем файл plugins/pdb64.dll:

mov eax,FFFFFFFF\t; B8 FFFFFFFF\ndiv r9d\t\t\t; 41:F7F1\ncmp ecx,eax\t\t; 3BC8\nja <pdb64.fail> \t; 0F87 A6020000

R9D - размер в байтах каждого блока в файле

ECX - количество блоков в файле

0xFFFFFFFF
\n----------\t; деление
\n0x2000\t\t; текущий размер блоков
\n==========\n0x7FFFF\t\t; максимальное количество блоков

\n

Далее сравнивается количество блоков в файле 0x94102 и 0x7FFFF...

И естественно неудача. Банально блоков (помноженное на размер) больше чем может себе позволить 32 бита.

Вместо ECX/EAX=FFFFFFFF должно быть RCX/RAX=FFFFFFFFFFFFFFFF (или как минимум FFFFFFFFF), но видимо не должно...

Что делать?

  • Binary Ninja free - справляется, но медленно, очень жрет память, может просто зависнуть или вылететь. Включайте файл подкачки.
    А если personal license - другое дело: грузит процессор (намного быстрее анализирует), и память не так сильно забивает.
  • ghidra - зависает
  • dump_syms - распарсить в текст
  • Ждать новую версию IDA Pro
  • ...
еще по темам: реверс инжиниринг, ida