5

I'm trying to load symbols for a dll with IDA pro.

My _NT_SYMBOL_PATH is SRV*c:\symbols*http://msdl.microsoft.com/download/symbols .

I put DBGTOOLS = "C:\\Program Files (x86)\\Windows Kits\\8.1\\Debuggers\x86\\" in my ida.cfg

I modified IDA's symsrv.dll and symsrv.yes so as to put the one of the WinDbg folder instead.

The problem is that if I load my dll, I see no symbols and get this error message :

"PDB: could not process file D:\Dangerous\Share\Direct2D x86\d2d1.dll with DIA: No such interface supported"

There is no way to get symbols from the server. However, I load some symbols manually using the symbols that I can download on my msdnaa account. The problem is that I've got several different version of d2d1.dll. My symbols are for the dll present just after the OS installation. As I update my OS and then remove some specific update so as to diff dll that were changed, my symbols are not the correct one anymore.

What did I do wrong? How could I get the correct symbols for each version?

perror
  • 19,083
  • 29
  • 87
  • 150
MPX
  • 101
  • 1
  • 4

1 Answers1

5

I finally solved my problem.

DIA stands for Debug Interface Access and is the component used to correctly read PDB files.

The msdia90.dll used doesn't seem to have been installed with the VS 2013 redistributables.

I had to install the 2008 redistributables to get the correct dll.

I solved my problem thanks to http://download.tuxfamily.org/overclokblog/PDB%20ain%27t%20PDD/0vercl0k_pdb_aint_pdd.pdf

MPX
  • 101
  • 1
  • 4
  • IDA is pretty dumb as it doesn't know how to use more recent DIA SDK that ship with Visual Studio 2017, 2019, etc. It absolutely requires the old version that ships with VS 2008 redist https://www.microsoft.com/en-US/download/confirmation.aspx?id=15336 – Simon Mourier Jul 17 '20 at 15:54