2014-09-04 5 views
0

В настоящее время я пытаюсь подключить функцию записи писем на Хром, но у меня есть некоторые трудности, чтобы найти, где я должен подключиться.Как найти статически связанную функцию в DLL с помощью IDA Pro?

В настоящее время я вставляю свою DLL с помощью RtlCreateUserThread и выделяя путь к DLL и делая целевой процесс загрузки. Затем DLL будет загружать целевую функцию с помощью GetProcAddress, а затем команды обычно-вы-know-overwritting-5-by-by-jmp. Мне удалось сделать это с помощью Firefox. Но у меня проблемы с Chrome, поскольку он, похоже, использует NSS/OpenSSL в соответствии с исходным кодом Chromium (я вижу два экземпляра SSLSocket в репо, но не вижу, какой из них используется с двоичным кодом).

Заранее спасибо.

ответ

1

жаль быть носителем плохих новостей, но на самом деле нет простого способа сделать это.
Самый простой способ я нашел, чтобы сделать это, чтобы использовать сервер Chromium символ, который расположен по адресу:

http://chromium-browser-symsrv.commondatastorage.googleapis.com 

Проблема заключается в том, что символы, кажется, не хватает для окончательной версии Chrome на 64 битных окон. По крайней мере, мне не повезло.

В общем случае вы можете выполнить некоторые из приведенных ниже инструкций, чтобы получить хорошую коллекцию символов, предварительно загруженных в ваш локальный кеш.

Чтобы использовать функциональность сервера символов с помощью IDA pro, вам нужно сделать несколько вещей.

Прежде всего, вам необходимо установить средства отладки Windows. (Windows 8.1 DDK - хорошая ставка для них и свободно доступна от MicroSoft.) Он включает DLL, которая позволяет простую связь с серверами символов.

Во-вторых, вам нужно добавить глобальную переменную среды системы, как показано ниже: _NT_SYMBOL_PATH = SRV * C: \ pdb_cache * msdl.microsoft.com/скачать/символы, SRV * C: \ pdb_cache * http://chromium-browser-symsrv.commondatastorage.googleapis.com

Это делается для установки пути символа и связанного с ним локального кеша для хранения символов.

В-третьих, вы можете использовать следующую команду, чтобы использовать инструмент, который поставляется с WDK 8.1 и тянет символы:

"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk" /r "C:\Program Files (x86)\Google" /s symsrv*C:\pdb_cache\*http://chromium-browser-symsrv.commondatastorage.googleapis.com/ 

выше должен заставить символы для загрузки в локальный кэш символов, и вы может выбрать их (возможно, IDA может быть автоматически, а может и нет). Если это не так, вы можете вручную выбрать файл символа после загрузки WinDbg/symchk.

По крайней мере, в теории согласно: http://www.chromium.org/developers/how-tos/debugging

У меня не было никакой удачи, получая символы, чтобы правильно загрузить на версии хрома. Однако, если вы перейдете на ссылку http://chromium-browser-symsrv.commondatastorage.googleapis.com/ и изучите содержимое возвращаемого XML, вы заметите, что установлен флаг «Усечен». Вы можете использовать выражение фильтра (это Buzz Amazon S3). Копаясь, есть еще еще сервер символов: http://chromium-browser-symbols.commondatastorage.googleapis.com/ Это довольно старый вид вещей.

Я оставлю вас со сценарием, чтобы вытащить все символы из списка известных серверов символов. Полезно предварительно загружать все что угодно в системе, что вам нужно отлаживать. :-).Я также заметил, что никакие символы не загружаются для подсистемы SysWOW64 в окне 7 x64. Если кто-либо еще имеет какую-либо информацию о дополнительных серверах общедоступных символов, то будет рад :-).

"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk" /r "C:\Program Files (x86)" /s symsrv*c:\symbols*hxtp://msdl.microsoft.com/download/symbols 
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk" /r "C:\Program Files (x86)" /s symsrv*c:\symbols*hxtp://symbols.mozilla.org/firefox 
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk" /r "C:\Program Files (x86)" /s symsrv*c:\symbols*hxtp://chromium-browser-symsrv.commondatastorage.googleapis.com 
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk" /r "C:\Program Files (x86)" /s symsrv*c:\symbols*hxtp://ctxsym.citrix.com/symbols 
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk" /r "C:\Program Files (x86)" /s symsrv*c:\symbols*hxtp://developer.apple.com/internet/safari/windows_symbols 


"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" /r "C:\Program Files" /s symsrv*c:\symbols*hxtp://msdl.microsoft.com/download/symbols 
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" /r "C:\Program Files" /s symsrv*c:\symbols*hxtp://symbols.mozilla.org/firefox 
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" /r "C:\Program Files" /s symsrv*c:\symbols*hxtp://chromium-browser-symsrv.commondatastorage.googleapis.com 
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" /r "C:\Program Files" /s symsrv*c:\symbols*hxtp://ctxsym.citrix.com/symbols 
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" /r "C:\Program Files" /s symsrv*c:\symbols*hxtp://developer.apple.com/internet/safari/windows_symbols 


"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk" /r "C:\Windows" /s symsrv*c:\symbols*hxtp://msdl.microsoft.com/download/symbols 
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk" /r "C:\Windows" /s symsrv*c:\symbols*hxtp://symbols.mozilla.org/firefox 
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk" /r "C:\Windows" /s symsrv*c:\symbols*hxtp://chromium-browser-symsrv.commondatastorage.googleapis.com 
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk" /r "C:\Windows" /s symsrv*c:\symbols*hxtp://ctxsym.citrix.com/symbols 
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk" /r "C:\Windows" /s symsrv*c:\symbols*hxtp://developer.apple.com/internet/safari/windows_symbols 


"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" /r "C:\Windows" /s symsrv*c:\symbols*hxtp://msdl.microsoft.com/download/symbols 
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" /r "C:\Windows" /s symsrv*c:\symbols*hxtp://symbols.mozilla.org/firefox 
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" /r "C:\Windows" /s symsrv*c:\symbols*hxtp://chromium-browser-symsrv.commondatastorage.googleapis.com 
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" /r "C:\Windows" /s symsrv*c:\symbols*hxtp://ctxsym.citrix.com/symbols 
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" /r "C:\Windows" /s symsrv*c:\symbols*hxtp://developer.apple.com/internet/safari/windows_symbols 

StackOverflow не позволит мне использовать HTTP ссылки, так что просто заменить hxtp в текстовом редакторе с HTTP и вы в бизнесе.

Вы также можете использовать эту строку, чтобы указать путь в своей среде, если хотите. Надеюсь, это поможет, приятель!

Набор _NT_SYMBOL_PATH = symsrv * C: \ символы * hxtp: //msdl.microsoft.com/download/symbols; symsrv * C: \ символы * hxtp: //symbols.mozilla.org/firefox; symsrv * C: \ символы * hxtp: //chromium-browser-symsrv.commondatastorage.googleapis.com; symsrv * C: \ символы * hxtp: //ctxsym.citrix.com/symbols; symsrv * C: \ символы * hxtp : //developer.apple.com/internet/safari/windows_symbols

+0

Я решил сделать это, но ваш ответ очень интересен, спасибо вам большое. – Raito

 Смежные вопросы

  • Нет связанных вопросов^_^