все заметки

IDA Pro: chrome.dll failed to load pdb info

2024.09.26 (редактировано: 2024.09.27)

Обновление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
  • ...
еще по теме: реверс инжиниринг