Сейчас на форуме: tyns777, cppasm, dutyfree, asfa (+6 невидимых)

 eXeL@B —› Вопросы новичков —› как в ida автоматически загружать .pdb из подключившейся .dll
Посл.ответ Сообщение

Ранг: 1.9 (гость)
Активность: 0.020
Статус: Участник

Создано: 18 сентября 2016 16:12
· Личное сообщение · #1

Как в IDA 6.8 при загрузке DLL библиотеки автоматически загрузить PDB ( отладочные символы )
После загрузки DLL в память, адрес всегда разный например 0x6DЕ10000, при второй загрузки уже 0x69Е30000
Приходится вручную каждый раз выполнять загрузку PDB, это весьма утомительно.
Загружаю через GUI Ida Load -> Load File -> PDB file...

Варианты решения:
1) Указать напрямую куда в память грузить DLL, чтоб адрес входа был всегда статическим.
2) Загружать pdb автоматически в зависимости от динамической точки входа.
Вопрос как это сделать на практике?
Пункт 2 более предпочтительный, потому что адреса брекпоинтов в эту DLL сохраняются старыми в итоге
ставить новые BP утомительно и медленно.

PS: Ищу специалиста IDA 6.8 в Москве для того чтобы меня потренировал. Работу оплачу.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 18 сентября 2016 16:19 · Поправил: reversecode
· Личное сообщение · #2

ASLR в винде отключить - не ?

ps ближайшие платные курсы IDA у ильфака в бельгии



Ранг: 1.9 (гость)
Активность: 0.020
Статус: Участник

Создано: 18 сентября 2016 18:21
· Личное сообщение · #3

1)
Windows 7 x64 Pro SP1
Отключаю ASLR через реестр
cmd - > regedit.exe
В ветку
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\
Добавляю параметр
"MoveImages"=dword:00000000
После ребута, в Process Explorer метки ASLR у IDA -> отлаживаемого процесса нет.

Но DLL все равно грузится по разным смещениям.
Возможно, я неправильно отключил ASLR, но тогда как правильно отключить???

2) К Ильфаку в бельгию не поеду, нужен человек в теме реверса, IDA 6.8, ассемблера, который желает
со мной повозится(поучить меня), ну, а в качестве бонуса могу оплатить часы потраченные на меня.
Работа подразумевает длительное сотрудничество, вероятно, дружеские отношения в последствии.
Мне подойдет любой специалист в реверсе , готовый на контакт.

Добавлено спустя 1 час 11 минут
1)
IDA - >
Debugger -> Debugger Options...

2)
Включаю галочку AutoLoad PDB files...

3)
Теперь загружает автоматом мою EXE и DLL, но при этом IDA предлагает вручную указать путь к
25 виндовым DLL , которых у меня нет. Приходится 28 раз нажимать Cancel

PDB: could not process file C:\Windows\SysWOW64\sechost.dll with DIA: Failed to open the file, or the file has an invalid format (E_PDB_NOT_FOUND)
PDB: could not process file C:\Windows\syswow64\CRYPTBASE.dll with DIA: Failed to open the file, or the file has an invalid format (E_PDB_NOT_FOUND)
PDB: could not process file C:\Windows\syswow64\NSI.dll with DIA: Failed to open the file, or the file has an invalid format (E_PDB_NOT_FOUND)
PDB: could not process file C:\Windows\syswow64\USERENV.dll with DIA: Failed to open the file, or the file has an invalid format (E_PDB_NOT_FOUND)
PDB: could not process file C:\Windows\SysWOW64\MPR.dll with DIA: Failed to open the file, or the file has an invalid format (E_PDB_NOT_FOUND)
PDB: could not process file C:\Windows\syswow64\WS2_32.dll with DIA: Failed to open the file, or the file has an invalid format (E_PDB_NOT_FOUND)
PDB: could not process file C:\Windows\SysWOW64\WINSPOOL.DRV with DIA: Failed to open the file, or the file has an invalid format (E_PDB_NOT_FOUND)
PDB: could not process file C:\Windows\syswow64\SHLWAPI.dll with DIA: Failed to open the file, or the file has an invalid format (E_PDB_NOT_FOUND)
PDB: could not process file C:\Windows\SysWOW64\apphelp.dll with DIA: Failed to open the file, or the file has an invalid format (E_PDB_NOT_FOUND)
PDB: could not process file C:\Windows\syswow64\USP10.dll with DIA: Failed to open the file, or the file has an invalid format (E_PDB_NOT_FOUND)
PDB: could not process file C:\Windows\syswow64\OLEAUT32.dll with DIA: Failed to open the file, or the file has an invalid format (E_PDB_NOT_FOUND)

Как исправить?



Ранг: 56.2 (постоянный), 22thx
Активность: 0.030.08
Статус: Участник

Создано: 18 сентября 2016 19:38
· Личное сообщение · #4

olia64 пишет:
Возможно, я неправильно отключил ASLR, но тогда как правильно отключить???

для длл нужно хакать в РЕ хидере в опции DllCharacteristics фичу "DLL can move" - т.е. минус 40h от имеющейся суммы офич



Ранг: 1.9 (гость)
Активность: 0.020
Статус: Участник

Создано: 18 сентября 2016 21:33 · Поправил: Модератор
· Личное сообщение · #5

Баг 1.
При включенной опции дебагера AutoLoad PDB files... и отсутствии pdb файлов к DLL
невозможно отключить появление окна 28 раз ( столько DLL у которых нет pdb), остается только нажимать Cancel

Кто подтвердит у себя? IDA 6.8



Ранг: 1.9 (гость)
Активность: 0.020
Статус: Участник

Создано: 19 сентября 2016 09:50 · Поправил: olia64
· Личное сообщение · #6

plutos, эти разговоры нужно вести во флудильне, это отдаляет меня от всеобщего счастья, потому что тратит время и нервы.
У тебя какая версия IDA установлена?

Добавлено спустя 16 минут
Alf пишет:
для длл нужно хакать в РЕ хидере в опции DllCharacteristics фичу "DLL can move" - т.е. минус 40h от имеющейся суммы офич

1) У тебя какая версия IDA установлена?
2) Про DllCharacteristics спасибо за инфу.
НО, предположим что программа далее будет детектить этот флаг и менять своё состояние из за этого?
Такое может быть или нет? Хэш exe меняется или нет? Получается, что ты предлагаешь сделать патч.
НО патч может изменить состояние программы и может привести к последствиям.
Наверняка есть способы получше? Вот, например:
1) IDA - > Debugger -> Debugger Options...
2) Включаю галочку AutoLoad PDB files...
Теперь PDB от DLL грузятся нормально автоматом на старте, внезависимости от адреса DLL в памяти, но есть фича,
приходится 28 раз нажать Cancel, при загрузке виндовых DLL
PDB: could not process file C:\Windows\SysWOW64\sechost.dll with DIA: Failed to open the file, or the file has an invalid format (E_PDB_NOT_FOUND)
PDB: could not process file C:\Windows\syswow64\CRYPTBASE.dll with DIA: Failed to open the file, or the file has an invalid format (E_PDB_NOT_FOUND)
PDB: could not process file C:\Windows\syswow64\NSI.dll with DIA: Failed to open the file, or the file has an invalid format (E_PDB_NOT_FOUND)
Тоесть IDA предлагает для каждой виндовой dll вручную указать путь к DLL
Вопрос 1. Как не имея эти pdb, сказать IDA , что если этой PDB у меня нет, НЕ НАДО ПРОСИТЬ УКАЗАТЬ ПУТЬ ВРУЧНУЮ!
Вопрос 2. Откуда скачать эти pdb под Win7 x64 SP1 ( ссылка ), как альтернативное кривое решение.
Включать интернет на виртуалке где лежит IDA не хочется в целях безопасности.

Неужели в настройках IDA нет параметра, CANCEL для всех ( галка - запомнить выбор ) в окне выбора PDB для DLL , которое всплывает при каждом событии PDB: could not process file C:\Windows\SysWOW64\sechost.dll with DIA: Failed to open the file, or the file has an invalid format (E_PDB_NOT_FOUND)

PS^Получается чтоб работать в IDA нужно хакнуть саму IDA . Это патч размером в 1 байт ?


 eXeL@B —› Вопросы новичков —› как в ida автоматически загружать .pdb из подключившейся .dll
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати