Аватар для Argus19
1433 / 450 / 78
Регистрация: 24.09.2017
Сообщений: 2,533
Записей в блоге: 23

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

10.11.2024, 08:57. Показов 2588. Ответов 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
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
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
1433 / 450 / 78
Регистрация: 24.09.2017
Сообщений: 2,533
Записей в блоге: 23
12.11.2024, 15:48  [ТС]
Цитата Сообщение от HackerVlad Посмотреть сообщение
есть простая функция
Знаю. Но по ссылке интереснее.
0
Испарился
 Аватар для HackerVlad
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
12.11.2024, 15:51
Argus19, а с реестром что не получается? там же всё просто
0
Испарился
 Аватар для HackerVlad
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
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
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
12.11.2024, 16:44
Только почему-то COM3 и COM4 не определило у меня, ну ты уже сам смотри и разбирайся какие-то там ошибки могут быть

Добавлено через 38 минут
Там вообще какие-то другие функции должны быть для определения портов, а не тупое считывание из реестра. Должно быть что-то типа SetupDiGetDeviceInterfaceDetail и DeviceIoControl...
0
1391 / 848 / 92
Регистрация: 08.02.2017
Сообщений: 3,618
Записей в блоге: 2
12.11.2024, 17:52
Насчет COM-а вот есть функции
0
Испарился
 Аватар для HackerVlad
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
12.11.2024, 18:53
testuser2, Minimum supported client Windows 10
0
 Аватар для Argus19
1433 / 450 / 78
Регистрация: 24.09.2017
Сообщений: 2,533
Записей в блоге: 23
13.11.2024, 11:08  [ТС]
HackerVlad, порты определились.
0
 Аватар для Argus19
1433 / 450 / 78
Регистрация: 24.09.2017
Сообщений: 2,533
Записей в блоге: 23
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
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
16.11.2024, 18:39
Цитата Сообщение от Argus19 Посмотреть сообщение
IDE VS2019 ругается на такие строки:
Так это же 100% обращение к полям структуры, а не массив. Нужно просто тип верный указать.

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

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

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

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

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

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

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

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

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

Не по теме:

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

0
 Аватар для Argus19
1433 / 450 / 78
Регистрация: 24.09.2017
Сообщений: 2,533
Записей в блоге: 23
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru