![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 12.03.2010
Сообщений: 9
|
![]()
Собственно проблема....
Насколько знаю скайп работает через DirectSound c 3 версии. Пытаюсь перехватить событие DirectSoundCreate и DirectSoundCreate8 для дальнейшего захвата звука методом сплайсинга. Насколько известно DirectSoundCreate выполняется при старте скайпа, соотвественно хук должен быть поставлен до загрузки скайпа. Хук ставлю через Код:
пробовал с других программ захватывать waveout, всё гуд, а директикс никак нейдёт. Потом в длл'ке в зоне Код:
Код:
Код:
Код:
в файле получаю We are in skype!4194304 - 4194304 DirectSoundCreate in dsound.dll was found DirectSoundCreate8 in dsound.dll was found а событие захвата так и непроиходит.... Уже второй день голову ломаю где неправ,.. помогите кто чем сможет ![]() |
![]() |
![]() |
![]() |
#2 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
После крооспостинга (4 ТЕМЫ!!!) читать даже не хочется то что тут вы написали
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
...а мне непонятна цель захвата потока/
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
![]() |
![]() |
![]() |
#4 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
1.
Код:
2. InterceptFunctions находится в .dll файле, который был загружен и которых хранит функцию обработчика WH_GETMESSAGE хука ? (иначе .dll файл будет выгружен из памяти (только вашего процесса, без глобального хука)). Вообщем ладно, объяснять долго технику, надеюсь вы в курсе как API функции перехватывать надо, если есть сомнения по данному поводу прошу уточнить в последующем вопросе, иначе будем биться без толку. 3. Вижу это Код:
Код:
4. Не понял, вы что решили монополию устроить в DirectSound API на целевой машине ? Почему не вызываете старый обработчик в вашей функции-хуке (HDirectSoundCreate, HDirectSoundCreate8). Надо в теле процедуры перехватчике вызывать код по оригинальному адресу. Вообщем есть над чем подумать. Ждем ответа и комментариев. |
![]() |
![]() |
![]() |
#5 | |||||
Регистрация: 12.03.2010
Сообщений: 9
|
![]()
1. Виноват, провтыкал но оно на решение не влияет
![]() 2. да, описал выше что всё что ниже то в дллке. Да, вкурсе как перехвачивать , и да, вкурсе когда выгружается дллка, У меня она загружаеться при получении getmessage и выгружается когда приложение закрывается. 3. Емм.. jmp_far это запись, и в память она записывается по очереди,. т.е. так как была создана. т.е. сначала пишется Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
4. (HDirectSoundCreate, HDirectSoundCreate8). это просто для теста,.. там будет вызываться оригинальный обработчик, но мне хотябы увидеть до та функция вызываеться,... Т.е. смысл писать всю функцию если не уверен что она вызовется... Т.е. тестовая программа. А вообщем система кажись рабочая., просто скайп такой умный что на windwdows 7 вроде решил выводить звук не через directsound а через WASAPI,, директикс был на windows XP.. соотвественно я неперепроверив страдал фигней 2 дня..... А так спасибо за ответ, если есть пожелания то рад буду выслучать)) |
|||||
![]() |
![]() |
![]() |
#6 | |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 12.03.2010
Сообщений: 9
|
![]()
не ну я ж функцию заменяю а не какое-то значение,.. не смотрел но если это функцию то там должен быть call иначе этот вариант бы не работал, неправда ли?....
|
![]() |
![]() |
![]() |
#8 | |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
Вы наверное издеваетесь. У вас в коде написано push address ret. (ваша структура). Это НЕ ВЫЗЫВАЕТ функцию перехватчик, а просто кладет в стек адрес функции перехватчика и выходит из текущей функции. Не не понятно ? Вам нужно заменить оп код push на оп код call
Цитата:
Edit: Ладно видимо вы не хотите читать 3е сообщение с ответом, пойдем другим путем. Ваши функции перехватчики HDirectSoundCreate и HDirectSoundCreate8 хоть раз срабатывают ? |
|
![]() |
![]() |
![]() |
#9 |
Регистрация: 12.03.2010
Сообщений: 9
|
![]()
HDirectSoundCreate8 эти не вызываются потому как программа на самом деле не вызывает их. Потом при перехвате любой другой функции(loadlibrary, coinitialize и ит.д...) всё прекрасно работает. Всё перехвачивается, и записывается лог. А теперь вопрос, как оно работает если нету команды call? да, я понимаю что надо вызвать call чтобы вызвала функцию перехватчик. Если бы оно непахало то я б недумаю изменил код,. а так мне просто интересно почему же оно работает
![]() или вот статья по сплайсинг и там тоже про call речи не идёт... |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
вы сами понимаете как оно работает?
(я понимаю, и знаю чем оно грозит) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Skype & DirectSoundCreate сплайсинг невыходит | kleop | Win Api | 1 | 29.04.2010 21:51 |
Skype & DirectSoundCreate сплайсинг невыходит | kleop | Win Api | 0 | 29.04.2010 18:22 |
Сплайсинг | Doom_Rooster | Общие вопросы Delphi | 0 | 17.04.2010 20:34 |
TForm & TImage & PNG & Прозрачность | delphi_beginner | Общие вопросы Delphi | 7 | 19.09.2009 08:46 |