Реверс-инжиниринг. Прослушивание этого устройства в Windows. Реверс-инжиниринг Windows, когда нет APIC#

Место общения программистов C#
Ответить
Anonymous
 Реверс-инжиниринг. Прослушивание этого устройства в Windows. Реверс-инжиниринг Windows, когда нет API

Сообщение Anonymous »

Я использую autohotkey для написания сценария для переключения «Прослушивать это устройство» на моем микрофоне:

Изображение


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

Ключ существует в:

Код: Выделить всё

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Capture\{My-Microphone's-UUID}\Properties
Ключ называется {24dbb0fc-9311-4b3d-9cf0-18ff155639d4},1 (не только для моего ноутбука, но и для всех компьютеров).

И значение при переключении «Прослушивать это устройство» меняется следующим образом: (0 меняются на f)

Код: Выделить всё

xxxxxxxxxxxxxxxx0000xxxx
xxxxxxxxxxxxxxxxffffxxxx
На втором этапе заключается моя проблема: когда я проверяю графический интерфейс, я вижу, что флажок «Прослушивать это устройство» установлен, но на самом деле я ничего не слышу со своего микрофона. Когда я снимаю флажок, затем нажимаю «Применить», снова ставлю галочку и нажимаю «Применить», я слышу свой микрофон. Это означает, что здесь мне нужен какой-то DllCall или PostMessage, но здесь я терплю неудачу:

Я не знаю, как заставить Windows понять, что этот параметр изменился, мне нужно выяснить, какое сообщение было отправлено или какая dll была вызвана, когда я нажимаю «Применить».

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

Код: Выделить всё

PostMessage, 0x0000,,,,A
...
PostMessage, 0xcccd,,,,A
И это, конечно, не сработало, это был выстрел в темноте.

Используя Autohotkey WindowSpy в графическом интерфейсе Sound, я узнал из этой статьи, что в этом может быть задействована оболочка Shell32.dll, поэтому с помощью средства просмотра DLL Export Viewer от nirsoft я скопировал все функции, существующие в Shell32, и вызвал их все с помощью Autohotkey, например это:

Код: Выделить всё

DllCall("shell32\Control_RunDLL")
...
Но это тоже не сработало.

Сначала я подумал, что это вопрос программирования, на который можно ответить с помощью Autohotkey и его инструментов, поэтому я задал этот вопрос на SO, но попросил перенести его в RE, поскольку комментарии ниже дали мне больше понимания.

Пожалуйста, научите меня, как я могу правильно выполнить реверс-инжиниринг.>

Подробнее здесь: https://stackoverflow.com/questions/579 ... indows-whe
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»