Сейчас на форуме: tyns777, cppasm, dutyfree (+7 невидимых)

 eXeL@B —› Вопросы новичков —› System UUID XP-x86
Посл.ответ Сообщение

Ранг: 27.8 (посетитель), 51thx
Активность: 0.030
Статус: Участник

Создано: 25 сентября 2017 03:15
· Личное сообщение · #1

Рылся много, но не нарыл.
Есть api функа GetSystemFirmwareTable там через 'RSMB' выводится инфа BIOS но только с xp x64.
В XP-x86 как можно реализовать это?
Без COM WMI.
Нужны именно бинарные данные.



Ранг: 431.7 (мудрец), 390thx
Активность: 0.730.32
Статус: Участник

Создано: 25 сентября 2017 06:31 · Поправил: dosprog
· Личное сообщение · #2

See --> here <--. правда, WMI




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 25 сентября 2017 07:46
· Личное сообщение · #3

ADMIN-CRACK пишет:
В XP-x86 как можно реализовать это?

самый надёжный и универсальный способ - читать физическую память и разбирать структуры.

спецификация SMBIOS говорит:
On non-UEFI systems, the 32-bit SMBIOS Entry Point structure, can be located by application software
by searching for the anchor-string on paragraph (16-byte) boundaries within the physical memory address
range 000F0000h to 000FFFFFh.


проще говоря - читать память в определённом диапазоне, искать "волшебные байты", и оттуда разирать структуры.

со структурами помогут сорцы dmidecode, с проверкой правильности - утилита rweverything

| Сообщение посчитали полезным: Gideon Vi, mak, DenCoder, ADMIN-CRACK

Ранг: 128.8 (ветеран), 21thx
Активность: 0.060.05
Статус: Участник

Создано: 25 сентября 2017 17:29
· Личное сообщение · #4

Чем не нравится WMI ? Не могу понять.




Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 25 сентября 2017 19:39 · Поправил: Kindly
· Личное сообщение · #5

ADMIN-CRACK пишет:
В XP-x86 как можно реализовать это?

именно через api в XP x86 нельзя
---------------------------
Точка входа в процедуру GetSystemFirmwareTable не найдена в библиотеке DLL Kernel32.dll.
---------------------------

добавлено
под эту ось говорят, что только через драйвер.

-----
Array[Login..Logout] of Life





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 25 сентября 2017 21:31
· Личное сообщение · #6

-=AkaBOSS=- пишет:
спецификация SMBIOS говорит:
On non-UEFI systems, the 32-bit SMBIOS Entry Point structure, can be located by application software
by searching for the anchor-string on paragraph (16-byte) boundaries within the physical memory address
range 000F0000h to 000FFFFFh.


Здесь на примере читают через MapPhysToLin из библиотеки WinIo

95d3_25.09.2017_EXELAB.rU.tgz - SMBIOS.zip

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube


| Сообщение посчитали полезным: ADMIN-CRACK, DenCoder


Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 25 сентября 2017 21:36 · Поправил: difexacaw
· Личное сообщение · #7

Как бы ядро именно это и делает при запуске. Ищет в памяти сигнатуры етц. Открыть сурки и посмотреть, я тоже могу, раньше это делал, но не вижу смысла это делать сейчас за вас.

-----
vx




Ранг: 145.8 (ветеран), 191thx
Активность: 0.140.36
Статус: Участник

Создано: 26 сентября 2017 06:08
· Личное сообщение · #8

ADMIN-CRACK

В хп это представлено в виде региона памяти внутри процесса csrss.exe.
Для RSMB он будет замаплен по адресу E0000, для FIRM он будет по C0000.

| Сообщение посчитали полезным: dosprog, ADMIN-CRACK, DenCoder, mak
 eXeL@B —› Вопросы новичков —› System UUID XP-x86
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати