Сейчас на форуме: hgdagon, asfa, bartolomeo (+6 невидимых)

 eXeL@B —› Программирование —› Как получить дату BIOS мамки?
Посл.ответ Сообщение

Ранг: 218.5 (наставник), 2thx
Активность: 0.090
Статус: Участник

Создано: 03 июня 2006 17:27
· Личное сообщение · #1

кому какие способы известны?



Ранг: 79.4 (постоянный)
Активность: 0.090
Статус: Участник

Создано: 03 июня 2006 17:29
· Личное сообщение · #2

на ВБ под Вин 9х :
Declare Sub CopyMemory Lib "Kernel32" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal ByteLen As Long)
Public Type BIOS_DATE
s As String * 8
End Type
Public Function BIOS() As Long
Dim sDB As BIOS_DATE
CopyMemory sDB, ByVal &HFFFF5, 8&
BIOS = DateSerial(Mid(sDB.s, 7, 2), Mid(sDB.s, 1, 2), Mid(sDB.s, 4, 2))
End Function



Ранг: 218.5 (наставник), 2thx
Активность: 0.090
Статус: Участник

Создано: 03 июня 2006 21:23
· Личное сообщение · #3

d1v0x пишет:
на ВБ под Вин 9х :

Спасиб
А что, на nt жить не будет?



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 03 июня 2006 21:59
· Личное сообщение · #4

не будет, открывай \device\physicalmemory и читай оттуда
ну или MmMapIoSpace



Ранг: 45.5 (посетитель)
Активность: 0.050
Статус: Участник

Создано: 04 июня 2006 12:34
· Личное сообщение · #5

В реестре прописана дата биоса и еще какая-то инфа. Только я не помню полный ключь.




Ранг: 420.3 (мудрец)
Активность: 0.240
Статус: Участник

Создано: 04 июня 2006 17:29
· Личное сообщение · #6

Delphi World:
В NT/2000/XP не получится прочитать значения прямо из BIOS, однако, ничего не мешает нам считать нужные значения из реестра.

procedure TBIOSInfo.GetRegInfoWinNT;
var
Registryv: TRegistry;
RegPath: string;
sl: TStrings;
begin
Params.Clear;
RegPath := '\HARDWARE\DESCRIPTION\System';
registryv := tregistry.Create;
registryv.rootkey := HKEY_LOCAL_MACHINE;
sl := nil;
try
registryv.Openkey(RegPath, false);
ShowMessage('BIOS Date: ' + RegistryV.ReadString('SystemBiosDate'));
sl := ReadMultirowKey(RegistryV, 'SystemBiosVersion');
ShowMessage('BIOS Version: ' + sl.Text);
except
end;
Registryv.Free;
if Assigned(sl) then
sl.Free;
end;

-----
Сколько ни наталкивали на мысль – все равно сумел увернуться




Ранг: 39.4 (посетитель), 9thx
Активность: 0.01=0.01
Статус: Участник

Создано: 04 июня 2006 19:32
· Личное сообщение · #7

imho чтение из реестра - не лучший способ. Я как то давно пробовал менять дату прямо в реестре - и ничего винда молча проглотила. Поэтому то что написано в реестре не всегда соответствует действительности.

Под NT можно также читать память напрямую, потребуется несколько несложных подготовительных шагов. Выше ssx об этом написал.




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

Создано: 04 июня 2006 22:06 · Поправил: mysterio
· Личное сообщение · #8

2nd
... давно пробовал менять дату прямо в реестре ... Поэтому то что написано в реестре не всегда соответствует действительности.
После перезагрузки соответствует =)

-----
Don_t hate the cracker - hate the code.




Ранг: 218.5 (наставник), 2thx
Активность: 0.090
Статус: Участник

Создано: 04 июня 2006 23:28
· Личное сообщение · #9

А этот ключ LM\HARDWARE\DESCRIPTION\System\\SystemBiosDate: всегда ли он присутствует в реестре, и во всех ли версиях NT?

А может ли кто-нить привести пример реализации способа ssx, желательно на VB или ASM




Ранг: 108.4 (ветеран)
Активность: 0.060
Статус: Участник

Создано: 04 июня 2006 23:38 · Поправил: YoriCH
· Личное сообщение · #10

0xy
Чтение из реестра действительно дело не защищающая программу.
так например делает один известный протектор.
И если мы знаем ключи. то при изменении реестра в области известных данных, то мы получим соответственно зареганную прогу.

-----
Есть вопросы ко мне? В личку!





Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 05 июня 2006 06:29
· Личное сообщение · #11

На васме раньше сырец был с \device\physicalmemory
Кажется Four-F делал.



Ранг: 79.4 (постоянный)
Активность: 0.090
Статус: Участник

Создано: 05 июня 2006 14:17
· Личное сообщение · #12

0xy пишет:
А этот ключ LM\HARDWARE\DESCRIPTION\System\\SystemBiosDate: всегда ли он присутствует в реестре, и во всех ли версиях NT?

всегда...
0xy пишет:
А может ли кто-нить привести пример реализации способа ssx, желательно на VB

могу... собссно в аттаче...

ca9c_05.06.2006_CRACKLAB.rU.tgz - get date bios NT.rar



Ранг: 218.5 (наставник), 2thx
Активность: 0.090
Статус: Участник

Создано: 06 июня 2006 04:17
· Личное сообщение · #13

d1v0x
Спасиб, но вообщет я о другом спрашивал:

ssx пишет:
открывай \device\physicalmemory и читай оттуда
ну или MmMapIoSpace


Точнее, чет не получается задикларить CreateFileA



Ранг: 79.4 (постоянный)
Активность: 0.090
Статус: Участник

Создано: 06 июня 2006 10:36
· Личное сообщение · #14

winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_BIOS")
а это?? не то, что имел ввиду ssx, но зато БЕЗ реестра...
материал найден здесь... http://vbnet.mvps.org/index.html?code/wmi/win32_bios.htm
во вяском случае смена даты в реестре не повлияла на резултат этого кода (т.е. он отобразился правильно)



Ранг: 9.9 (гость)
Активность: 0.010
Статус: Участник

Создано: 08 августа 2006 14:57 · Поправил: st_slayer
· Личное сообщение · #15

Вот на Delphi нашел:

procedure TfmMain.BIOSInfo(OS : string);
var p : pointer;
s : string[255];
begin
if OS='NT' then begin with TRegistry.Create do
try RootKey := HKEY_LOCAL_MACHINE;
if OpenKeyReadOnly('HARDWARE\DESCRIPTION\System')
then lblBIOSDate2.Caption := ReadString('SystemBiosDate')
finally Free;
end;
end
else try
s[0] := #8;
p := Pointer($0FFFF5);
Move(p^,s[1],8);
lblBIOSDate2.Caption := copy(s,1,2) + '/' + copy(s,4,2) + '/' +copy (s,7,2);
except lblBIOSDate2.Caption := 'XX.XX.XXXX';
end;
end;



Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 08 августа 2006 15:10
· Личное сообщение · #16

wmic

-----
My love is very cool girl.




Ранг: 210.5 (наставник), 2thx
Активность: 0.140
Статус: Участник

Создано: 08 августа 2006 23:27
· Личное сообщение · #17

Мои 50 копеек Написал на FASM-e. В архиве бинарник и исходник.

c2f2_08.08.2006_CRACKLAB.rU.tgz - bdr.zip



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 08 августа 2006 23:56
· Личное сообщение · #18

arnix
DOS умер, и довольно давно



Ранг: 210.5 (наставник), 2thx
Активность: 0.140
Статус: Участник

Создано: 09 августа 2006 00:12
· Личное сообщение · #19

ssx пишет:
DOS умер, и довольно давно


Знаем, знаем Зато можно читать дату из памяти без прав админа.


 eXeL@B —› Программирование —› Как получить дату BIOS мамки?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати