Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,570
Записей в блоге: 26

Как обращаться к функциям библиотек ядра?

10.11.2024, 08:57. Показов 2844. Ответов 44
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот тут:
https://learn.microsoft.com/en... ds/portmon
описание работы программы-сниффера для контроля работы последовательных и параллельных портов. На современных машинах уже хлопотно запускать. Ставить шароварные программы, конечно, имеет смысл. Только потом их надо сносить и устанавливать заново. Хлопотно. Уже давно хочется написать что-то такое под себя.
А для этого надо каким-то образом иметь в пользовательской программе, что-то типа драйвера портов.
Ума не приложу, как это сделать.
Есть рекомендации?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.11.2024, 08:57
Ответы с готовыми решениями:

Как обращаться к пользовательским функциям?
Здраствуйте уважаемые форумчане. Решил все таки занятся программированием с использованием фреймворка JQuery И хотелось бы узнать, как...

Как правильно обращаться к функциям
Всем Привет! Решил заняться с++, но попал в ступор. вообще я занимаюсь программированием на AS2(flash), язык по синтаксису схож с...

Как в решении из двух проектов из второго проекта обращаться к функциям из первого проекта?
Собственно данная задача возникает, когда в Blank Solution добавляем проект модульных тестов к первому проекту Empty C++. К примеру первый...

44
Вернулся
 Аватар для HackerVlad
1777 / 672 / 46
Регистрация: 10.09.2021
Сообщений: 2,820
12.11.2024, 15:47
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Argus19 Посмотреть сообщение
попиликать на динамике системника
Чтобы попиликать на динамике системника есть простая функция Beep

Visual Basic
1
2
3
4
5
6
7
Private Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
 
Private Sub Command1_Click()
  Beep 300, 500
  Beep 100, 500
  Beep 50, 500
End Sub
0
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,570
Записей в блоге: 26
12.11.2024, 15:48  [ТС]
Цитата Сообщение от HackerVlad Посмотреть сообщение
есть простая функция
Знаю. Но по ссылке интереснее.
0
Вернулся
 Аватар для HackerVlad
1777 / 672 / 46
Регистрация: 10.09.2021
Сообщений: 2,820
12.11.2024, 15:51
Argus19, а с реестром что не получается? там же всё просто
0
Вернулся
 Аватар для HackerVlad
1777 / 672 / 46
Регистрация: 10.09.2021
Сообщений: 2,820
12.11.2024, 16:05
Ладно, держи рабочий код

Форма:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Option Explicit
 
Private Sub Command1_Click()
    Dim strArray() As String
    Dim i As Integer
    
    List1.Clear
    
    If EnumValues(HKEY_LOCAL_MACHINE, "Hardware\DeviceMap\SerialComm", strArray, IsWow64MyProcess) = True Then
        For i = 0 To UBound(strArray)
            List1.AddItem strArray(i)
            
            List2.AddItem GetKeyValue(HKEY_LOCAL_MACHINE, "Hardware\DeviceMap\SerialComm", strArray(i))
        Next
    End If
    
    Label1.Caption = List1.ListCount
    Label2.Caption = List2.ListCount
End Sub
Миниатюры
Как обращаться к функциям библиотек ядра?  
Вложения
Тип файла: zip SerialComm.zip (10.8 Кб, 3 просмотров)
0
Вернулся
 Аватар для HackerVlad
1777 / 672 / 46
Регистрация: 10.09.2021
Сообщений: 2,820
12.11.2024, 16:44
Только почему-то COM3 и COM4 не определило у меня, ну ты уже сам смотри и разбирайся какие-то там ошибки могут быть

Добавлено через 38 минут
Там вообще какие-то другие функции должны быть для определения портов, а не тупое считывание из реестра. Должно быть что-то типа SetupDiGetDeviceInterfaceDetail и DeviceIoControl...
0
1412 / 874 / 93
Регистрация: 08.02.2017
Сообщений: 3,726
Записей в блоге: 2
12.11.2024, 17:52
Насчет COM-а вот есть функции
0
Вернулся
 Аватар для HackerVlad
1777 / 672 / 46
Регистрация: 10.09.2021
Сообщений: 2,820
12.11.2024, 18:53
testuser2, Minimum supported client Windows 10
0
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,570
Записей в блоге: 26
13.11.2024, 11:08  [ТС]
HackerVlad, порты определились.
0
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,570
Записей в блоге: 26
16.11.2024, 17:12  [ТС]
Посмотрел декомпилированный Portmon. IDE VS2019 ругается на такие строки:
C++
1
2
3
4
5
    LODWORD(v93[0]) = 2 * v57;
    LODWORD(v93[1]) = (v59 >> 31) | (2 * (v89 + v55));
 
    HIDWORD(v93[0]) = (v57 >> 31) | (2 * v84);
*(_WORD *)a5 = 0;
Если приведение к типу лечится удалением подчёркивания, то вот это:
C++
1
dword_439E28 = (HANDLE)_beginthread((_beginthread_proc_type)sub_40D140, 0, byte_43FCD8);
совершенно не понимаю как вылечить.
0
Модератор
10068 / 3913 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
16.11.2024, 18:39
Цитата Сообщение от Argus19 Посмотреть сообщение
IDE VS2019 ругается на такие строки:
Так это же 100% обращение к полям структуры, а не массив. Нужно просто тип верный указать.

Цитата Сообщение от Argus19 Посмотреть сообщение
совершенно не понимаю как вылечить.
Без описания ошибки ничего непонятно.
0
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,570
Записей в блоге: 26
17.11.2024, 11:38  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Без описания ошибки ничего непонятно.
Дома доступа к VS нет. Завтра.
Как оказалось, при запуске PortMon создаёт файл: PORTMSYS.SYS и очень быстро его удаляет. Я его восстановил и декомпилил. Разные декомпиляторы дают разные результаты. Какой из них правильный?
Вложения
Тип файла: zip PortMon.zip (75.4 Кб, 7 просмотров)
0
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,570
Записей в блоге: 26
18.11.2024, 09:29  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Без описания ошибки ничего непонятно.
Ошибка такая:

"Ошибка (активно) E0020 идентификатор "_beginthread" не определен ConsoleApplication2 C:\Work\Prog\ConsoleApplication2\Console Application2\ConsoleApplication2.cpp 889 "

И ошибок 556 штук. Либо декомпилятор сработал не точно, либо что-то ещё.
0
Эксперт по электронике
7213 / 3392 / 347
Регистрация: 28.10.2011
Сообщений: 13,331
Записей в блоге: 7
18.11.2024, 12:45
Файл process.h подключен в ConsoleApplication2.cpp?
Вообще, какой ConsoleApplication если вы драйвер собираете? B судя по сему должен быть *.c файл, а не *.cpp. Есть чем подписать драйвер?
0
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,570
Записей в блоге: 26
18.11.2024, 14:11  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
Файл process.h подключен в ConsoleApplication2.cpp?
Нет.
Цитата Сообщение от locm Посмотреть сообщение
Вообще, какой ConsoleApplication если вы драйвер собираете? B судя по сему должен быть *.c файл, а не *.cpp. Есть чем подписать драйвер?
Попробую файл вставить в пустой проект драйвера кернель моды.

Добавлено через 15 минут
Извините, утонул в информации.
Я написал, что программа создаёт файл, который потом куда-то записывает.
Сама программа оконная, т.е. содержит код создания окна, контролов и т.д. Затем она работает.
Я пытался что-то сделать поместив декомпилированный код в консольное приложение. И написал, что из этого выходит.
Во вложении к посту:
Как обращаться к функциям библиотек ядра?
прикрепил файлы, созданные несколькими декомпиляторами, чтобы попробовать создать тот же драйвер. Только не могу понять, какой декомпилятор справился лучше и что сработает.
0
Эксперт по электронике
7213 / 3392 / 347
Регистрация: 28.10.2011
Сообщений: 13,331
Записей в блоге: 7
18.11.2024, 18:54
Цитата Сообщение от Argus19 Посмотреть сообщение
Нет.
Откуда тогда взяться функции?

Цитата Сообщение от Argus19 Посмотреть сообщение
Попробую файл вставить в пустой проект драйвера кернель моды.
Протект странно называется ConsoleApplication. Обычно это консольное приложение, а не драйвер.

Цитата Сообщение от Argus19 Посмотреть сообщение
Я пытался что-то сделать поместив декомпилированный код в консольное приложение.
А ничего что этот код должен выполнятся в ядре и экспортировать функции из ntoskrnl.exe, а не WinAPI из юзермодных dll?
А вы его пытаетесь выполнить в юзермоде. Даже если запустится (что маловероятно), работать не будет.

Цитата Сообщение от Argus19 Посмотреть сообщение
чтобы попробовать создать тот же драйвер.
Зачем? Имеете чем его подписать? https://learn.microsoft.com/ru... er-signing

Если интересна тема драйверов, сначала изучите статьи, потом напишите простейший драйвер, установите и заставьте нормально работать "словив" много синих экранов, а после думайте стоит ли этим заниматься.
0
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,570
Записей в блоге: 26
18.11.2024, 19:26  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
А ничего что этот код должен выполнятся в ядре и экспортировать функции из ntoskrnl.exe, а не WinAPI из юзермодных dll?
Программа как раз работает в юзер-моде. Это, как я уже писал выше, экранное приложение, которое вытаскивает из себя самой драйвер, куда-то его записывает, инициализирует и потом лихо им пользуется. Но т.к. драйвер написан в 1999г., что видно из его просмотра в Total Commander, то желательно его, как минимум, перекомпилировать.
Цитата Сообщение от locm Посмотреть сообщение
Имеете чем его подписать?
Я взял пример драйвера фильтра динамика системника, т.к. он был изготовлен неизвестно в какой версии VS, помучился и сделал. Осталось понять, как работает программа его установки. Из описания много что совершенно неочевидно, т.к. описание далеко не пошаговое. И никакого подписания не обнаружил.
0
Эксперт по электронике
7213 / 3392 / 347
Регистрация: 28.10.2011
Сообщений: 13,331
Записей в блоге: 7
18.11.2024, 19:40
Цитата Сообщение от Argus19 Посмотреть сообщение
Программа как раз работает в юзер-моде.
Декомпилировали драйвер или приложение использующее его? Если драйвер, он должен работать в ядре и вызывать функции из ntoskrnl.exe, а не из юзермодных dll.
Цитата Сообщение от Argus19 Посмотреть сообщение
Но т.к. драйвер написан в 1999г., что видно из его просмотра в Total Commander, то желательно его, как минимум, перекомпилировать.
Что даст перекомпиляция? Для этого нужен исходник, а не результат декомпиляции, который нужно вручную приводить в порядок.

Цитата Сообщение от Argus19 Посмотреть сообщение
Я взял пример драйвера фильтра динамика системника
Там же просто запись в регистры. Зачем нужен драйвер-фильтр? Обычного достаточно.
0
Модератор
10068 / 3913 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
18.11.2024, 20:17
Argus19, декомпилятор вряд ли даст сразу рабочий код всего приложения. Так бы давно люди бы изменяли любые программы как им захочется. Ищите нужный функционал и анализируйте - это и есть реверс-инжиниринг.
2
19.11.2024, 01:43

Не по теме:

Идите нафик со своим реверс-инженерингом тут Визуал Бейсик или где? )

0
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,570
Записей в блоге: 26
19.11.2024, 09:39  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
это и есть реверс-инжиниринг.
К сожалению, 20 с лишним лет, ушедших на понимание VB, подтормаживают понимание С++, который стремительно развивается. Мне бы найти CD от книги Уолтера Они "Использование Microsoft Windows Driver Model".
Цитата Сообщение от testuser2 Посмотреть сообщение
тут Визуал Бейсик или где?
Чтобы сделать всё это на VB, надо разобраться с первоисточниками.

Не по теме:

Я тут задал простой вопрос в ветке С++. Навалились странные люди с разными вопросами. И очень скоро я просто запутался кому на какой вопрос отвечать. Профессиональный ответ был только от уважаемого zss. В остальном для меня ветка С++ стала токсичной. Здесь намного комфортнее. И серьёзные специалисты есть, в т.ч. и по С++
В ветке об электронике навалился человек с линуксом головного мозга со своими рекомендациями как сделать лучше.

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.11.2024, 09:39

Установить права, чтобы можно было обращаться только к функциям
Здравствуйте, помогите пожалуйста, есть БД в Microsoft SQL Server, и есть приложение в Delphi 7. Как настроить БД, так чтобы из приложения...

Задачи по функциям. Объясните задачу по функциям)
Вводится последовательность из N целых чисел. Для каждого числа последовательности вывести новое число, которое получится после записи цифр...

нетбук с каким процом лучше n550(2 ядра )или C-50(2 ядра )?
всем привет решил в следюющем году сдать егэ по инфе => надо готовится и учить програмирование а без практики одной теории мало по этому...

Помогайте выбрать: видюха 640М и проц i7 2.4Гц (4 ядра) или 750M и i7 2Гц (2 ядра) ?
Приветствую. Вот занес уже руку в кошелек для покупки ноута Acer ASPIRE V5-572G но тот засомневался в сторону V3-571G. Оба с ips...

Что выбрать: Intel 2 ядра или AMD 4 ядра?
Нужен дельный совет от гуру! Могу взять АМД проц 4 ядра, либо интеловский 2 ядерный, цена примерно та же. Боюсь, что с интеловским...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru