![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 | |
Регистрация: 29.01.2010
Сообщений: 5
|
![]()
Добрый день. Подскажите, пожалуйста. Я хочу из чужой DLL узнать, какими функциями выполнить действие, включение лампочек на веб камере, что бы включать их из своей программы. Использовал IDA. Как функции называются нашел.
Но остался вопрос. Я не нашел где эти функции вызываются программой производителя? Адреса стека куда сохраняются адреса после получения из GetProcAddress есть, что сохраняют есть, а как и где вызывают нет. Я сделал свою Dll с двумя функциями, и программу вызывающие эти функции. В итоге IDA тоже самое практически показывает, но когда я хочу пройти по значению 'LEDOff' оно не куда не проходит, а в моем примере идет к расположению имен функций, которые и вызываются и в поиске легко находятся в коде. Цитата:
Или так. Как из стека берется по определенному адресу адрес функции в DLL и вызывается, так как у меня после нахождения адреса ставится в соответствии имя функции,(последняя строка) Код:
а в программе производителя адрес засовывается в стек push offset aLedoff ; "LEDOff" push eax ; hModule call edi ; GetProcAddress ; GetProcAddress: mov [esi+10Ch], eax Что делать? ![]() Спасибо. Последний раз редактировалось Stilet; 22.07.2012 в 13:00. |
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,370
|
![]()
Учиться пользоваться отладчиком.
1) Загрузите программу производителя в отладчик 2) Ставить точку прерывания на mov [esi+10Ch], eax 3) После остановке в етой точке пойдти на указанный адрес (ЕАХ) и поставить точку прерывания там 4) Продолжить выполнения программы 5) После остановки программы во второй точке смотреть стек, в часности откуда пришел вызов 6) Идете в IDA на адрес места вызова и продолжаете разбор |
![]() |
![]() |
![]() |
#3 |
Регистрация: 29.01.2010
Сообщений: 5
|
![]()
Еще вопрос.
Мои камеры идут без драйверов, только программа производителя с одной DLL. Эта программа включает и выключает ИК подсветку. Используя IDA функции я нашел. Программку стряпал, но нерабочую. Лазить искать еще несколько дней нет сил, так как вероятнее ничего не замечаю из-за поверхностных знаний и притом же эта программа одновременно включает только подсветку на одной камере, а мне надо на 4 – х поэтому навряд ли я найду как включить на четырёх используя эту dll. НО, ПРОГРАММА ИДЕТ БЕЗ ДРАЙВЕРОВ, следовательно, все функции с описанием есть в самой системе WinAPI или КАК? Вопрос. Куда полезть копаться, что бы включить эти лампочки? Камеры подключаются через USB. Как я понимаю надо найти устройство (Как? Где прочитать?) А затем, чего-то передать. |
![]() |
![]() |
![]() |
#4 |
Регистрация: 29.01.2010
Сообщений: 5
|
![]()
Покапался в функциях вкл\вкл они дваем используют ksproxy.ax следующей строкой call dword ptr [ecx+0Ch]. Проходя по адресу в этой строке и ставя точьку останова, при дальнейшем исполнении программы программа там не останавливается (но внутрь заходит и лампочки вкл\вкл) и дадльше посмотреть нет возможности.
ksproxy.ax — WDM Streaming ActiveMovie Proxy. Используя этот драйвер от микрософт и включается мои лампочки. Вопрос почему я немогу зайти на call dword ptr [ecx+0Ch]? Может Кому что известно про этот ksproxy.ax ? |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск текста в массиве Char, массив берётся у бинарного файла(exe, dll) | Человек_Борща | Общие вопросы Delphi | 13 | 08.10.2011 20:06 |
Загрузка Библиотеки в exe и интервал на выполнение | Excellion | Общие вопросы Delphi | 2 | 20.01.2011 03:39 |
Из программы 1.exe создаем пустой файл 2.exe. Как из программы 1 внести API функции в программу 2? | X-LEV-X | Общие вопросы Delphi | 7 | 09.03.2010 08:33 |
Запуск Load.dll (бывшая Load.exe) в дереве проц-ов, Как запустить прогой на C# .dll-ку | kapustin | Общие вопросы .NET | 10 | 23.09.2009 22:20 |
Выполнение функции | nikleb | JavaScript, Ajax | 7 | 10.08.2008 01:49 |