Вверх ↑
Этот топик читают: Гость
Ответов: 286
Рейтинг: 5
#1: 2018-11-11 12:54:14 ЛС | профиль | цитата
Я понимаю что наглею.Но может кто-нибудь сжалится и переделает этот код в ниасм

const
DRIVER_INFORMATION = 11;
type
TPDWord = ^DWORD;
TDriverInfo = packed record
Address: Pointer;
Unknown1: DWORD;
Unknown2: DWORD;
EntryIndex: DWORD;
Unknown4: DWORD;
Name: array [0..MAX_PATH + 3] of Char;
end;
var
NtQuerySystemInformation: function (infoClass: DWORD;
buffer: Pointer;
bufSize: DWORD;
returnSize: TPDword): DWORD; stdcall = nil;
function GetDriverInfo: string;
var
temp, Index, numBytes, numEntries: DWORD;
buf: TPDword;
driverInfo: ^TDriverInfo;
begin
if @NtQuerySystemInformation = nil then
NtQuerySystemInformation := GetProcAddress(GetModuleHandle('ntdll.dll'),
'NtQuerySystemInformation');
// Obtain required buffer size
NtQuerySystemInformation(DRIVER_INFORMATION, @temp, 0, @numBytes);
// Allocate buffer
buf := AllocMem(numBytes * 2);
NtQuerySystemInformation(DRIVER_INFORMATION, buf, numBytes * 2, @numBytes);
numEntries := buf^;
driverInfo := Pointer(DWORD(buf) + 12);
Result := '';
for Index := 1 to numEntries do
begin
Result := Result + #$D#$A + 'Address: $' + IntToHex(DWORD(driverInfo^.Address), 8) +
'Name: "' + (driverInfo^.Name) + '"';
Inc(driverInfo);
end;
Delete(Result, 1, 2);
FreeMem(buf);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.Add(GetDriverInfo)
end;
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 16884
Рейтинг: 1239
#2: 2018-11-11 16:33:33 ЛС | профиль | цитата

Add(MainForm,2953706,63,119)
{
}
Add(WinExec,385351,147,112)
{
}
Add(Button,9958066,105,119)
{
Left=200
Top=110
Data=String(driverquery.exe)
link(onClick,385351:doShellExec,[])
}

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 286
Рейтинг: 5
#3: 2018-11-11 22:22:04 ЛС | профиль | цитата
Tadэто я пробывал.И в реестре ковырял.
Ладно не судьба-значит не судьба
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#4: 2018-11-11 23:33:22 ЛС | профиль | цитата
Udokanec, конкретно, зачем тебе это надо ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 286
Рейтинг: 5
#5: 2018-11-12 00:43:46 ЛС | профиль | цитата
Хочу программу обновления драйверов сделать
карма: 0

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#6: 2018-11-12 02:17:49 ЛС | профиль | цитата
Udokanec писал(а):
Хочу программу обновления драйверов сделать

Чет я вообще не въехал... А причем здесь код в котором никак не видно даты, а только адрес и имя? Как по адресу и имени можно определить, что драйвер старый?
карма: 22

0
Ответов: 286
Рейтинг: 5
#7: 2018-11-12 02:35:36 ЛС | профиль | цитата
Ну это то что я нашел.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#8: 2018-11-12 08:48:11 ЛС | профиль | цитата
c:\Windows\System32\drivers\*.sys
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 286
Рейтинг: 5
#9: 2018-11-12 09:27:07 ЛС | профиль | цитата
И как это распарсить

Ìîäóëü Íàçâàíèå Òèï äðàéâåðà Äàòà ññûëêè
=============================== ================================
1394ohci 1394 OHCI-ñîâìåñòèìûé Kernel 16.07.2016 11:21:36
3ware 3ware Kernel 19.05.2015 7:28:03
ACPI Äðàéâåð Microsoft ACPI Kernel 16.07.2016 11:10:47
AcpiDev Äðàéâåð óñòðîéñòâ ñ AC Kernel 16.07.2016 11:29:10
acpiex Microsoft ACPIEx Drive Kernel 16.07.2016 11:28:23
acpipagr Äðàéâåð àãðåãàòîðà ïðî Kernel 16.07.2016 11:29:00
AcpiPmi Äðàéâåð óñòðîéñòâà èçì Kernel 16.07.2016 11:19:44
acpitime Äðàéâåð ACPI Wake Alar Kernel 16.07.2016 11:29:20
ADP80XX ADP80XX Kernel 10.04.2015 5:49:48
AFD Äðàéâåð äîïîëíèòåëüíûõ Kernel 16.07.2016 11:24:31
ahcache Application Compatibil Kernel 16.07.2016 11:10:40
AmdK8 AMD K8 äðàéâåð ïðîöåññ Kernel 16.07.2016 11:10:42
amdkmdag amdkmdag Kernel 22.08.2015 11:10:03
amdkmdap amdkmdap Kernel 22.08.2015 10:45:00
AmdPPM Äðàéâåð ïðîöåññîðà AMD Kernel 16.07.2016 11:10:41
amdsata amdsata Kernel 14.05.2015 21:14:52
amdsbs amdsbs Kernel 12.12.2012 6:21:44
amdxata amdxata Kernel 01.05.2015 9:55:35
amd_sata amd_sata Kernel 17.06.2011 4:07:44
amd_xata amd_xata Kernel 17.06.2011 4:07:47
AODDriver4.3 AODDriver4.3 Kernel 11.02.2014 20:06:52
AppID Äðàéâåð AppID Kernel 16.07.2016 11:27:05
applockerflt Äðàéâåð ôèëüòðà Smartl Kernel 16.07.2016 11:27:27
AppvStrm AppvStrm File System 16.07.2016 11:10:45
AppvVemgr AppvVemgr File System 16.07.2016 11:10:56
AppvVfs AppvVfs File System 16.07.2016 11:10:53
arcsas Adaptec SAS/SATA-II RA Kernel 10.04.2015 4:12:07
AsyncMac Äðàéâåð àñèíõðîííîãî í Kernel 16.07.2016 11:29:00
atapi Êàíàë IDE Kernel 16.07.2016 11:29:05
AtiHDAudioSe ATI Function Driver fo Kernel 31.03.2011 16:15:43
b06bdrv Ñåòåâîé àäàïòåð VBD QL Kernel 25.05.2016 16:03:08
BasicDisplay BasicDisplay Kernel 16.07.2016 11:28:02
BasicRender BasicRender Kernel 16.07.2016 11:28:14
BCM43XX Äðàéâåð ñåòåâîãî àäàïò Kernel 01.11.2014 4:18:04
bcmfn bcmfn Service Kernel 08.06.2015 17:32:02
bcmfn2 bcmfn2 Service Kernel 16.03.2014 19:07:36
Beep Beep Kernel 16.07.2016 11:22:02
bowser Äðàéâåð ïîääåðæêè áðàó File System 16.07.2016 11:22:25
BthAvrcpTg HID äèñòàíöèîííîãî óïð Kernel 16.07.2016 11:18:28
BthHFEnum Ïåðå÷èñëèòåëü HID äèñò Kernel 16.07.2016 11:22:25
bthhfhid HID óïðàâëåíèÿ çâîíêàì Kernel 16.07.2016 11:18:24
BTHMODEM Äðàéâåð ñâÿçè Bluetoot Kernel 16.07.2016 11:19:09
buttonconver Ñëóæáà äëÿ óñòðîéñòâ ê Kernel 16.07.2016 11:29:14
CapImg Äðàéâåð HID äëÿ ñåíñîð Kernel 16.07.2016 11:21:50
cdfs CD/DVD File System Rea File System 16.07.2016 11:10:38
cdrom Äðàéâåð CD-ROM äèñêîâî Kernel 16.07.2016 11:10:42
cht4iscsi cht4iscsi Kernel 20.04.2016 18:54:30
cht4vbd Äðàéâåð âèðòóàëüíîé øè Kernel 15.04.2016 16:32:54
circlass Ïîòðåáèòåëüñêèå ÈÊ-óñò Kernel 16.07.2016 11:20:13
CisUtMonitor CisUtMonitor File System 30.10.2011 20:14:54
CLFS Common Log (CLFS) Kernel 16.07.2016 11:10:59
clreg Virtual Registry for C Kernel 16.07.2016 11:27:04
CmBatt Äðàéâåð áàòàðåè ñ ACPI Kernel 16.07.2016 11:28:28
CNG CNG Kernel 16.07.2016 11:18:19
cnghwassist CNG Hardware Assist al Kernel 16.07.2016 11:27:44
CompositeBus Äðàéâåð ïåðå÷èñëèòåëÿ Kernel 16.07.2016 11:20:11
condrv Console Driver Kernel 16.07.2016 11:10:38
карма: 0

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#10: 2018-11-12 10:20:49 ЛС | профиль | цитата
Udokanec писал(а):
И как это распарсить

Обратным парсером по пробелам. Первым выцепишь время, вторым -- дату, потом соединить дату и время.

Редактировалось 2 раз(а), последний 2018-11-12 10:22:30
карма: 22

0
Ответов: 286
Рейтинг: 5
#11: 2018-11-12 10:27:49 ЛС | профиль | цитата
nescoЯ извиняюсь а ка это обратным парсером.Ни разу не стакивался
карма: 0

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#12: 2018-11-12 10:49:11 ЛС | профиль | цитата
Udokanec писал(а):
извиняюсь а ка это обратным парсером

Вот это должно помочь
Элемент

Add(MultiStrData,3339854,252,154)
{
Char=" "
Direct=1
}

Редактировалось 3 раз(а), последний 2018-11-12 10:49:39
карма: 22

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#13: 2018-11-12 13:30:16 ЛС | профиль | цитата
Вот твой код, только не знаю, чем он может помочь?

Схема


Add(MainForm,2953706,126,105)
{
Width=845
Height=326
}
Add(Button,9958066,126,147)
{
Left=385
Top=255
link(onClick,14384289:doEnum,[])
}
Add(Memo,6190371,231,147)
{
Left=15
Top=10
Width=805
Height=240
Font=[Courier,10,0,0,204]
ScrollBars=2
}
Add(InlineCode,14384289,175,147)
{
WorkPoints=#6:doEnum|
EventPoints=#6:onEnum|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|32:uses windows, kol, Share, Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|23: onEnum: THI_Event;|51: procedure doEnum(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|1:{|71: This code takes advantage of the undocumented NtQuerySystemInformation|57: API to obtain a list of loaded drivers under Windows NT.|1:}|5:const|25: DRIVER_INFORMATION = 11;|4:type|18: TPDWord = ^DWORD;|28: TDriverInfo = packed record|19: Address: Pointer;|18: Unknown1: DWORD;|18: Unknown2: DWORD;|20: EntryIndex: DWORD;|18: Unknown4: DWORD;|40: Name: array [0..MAX_PATH + 3] of Char;|5: end;|3:var|54: NtQuerySystemInformation: function (infoClass: DWORD;|17: buffer: Pointer;|16: bufSize: DWORD;|44: returnSize: TPDword): DWORD; stdcall = nil;|0:|31:function GetDriverInfo: string;|4:var |43: temp, Index, numBytes, numEntries: DWORD;|15: buf: TPDword;|27: driverInfo: ^TDriverInfo;|5:begin|41: if @NtQuerySystemInformation = nil then|74: NtQuerySystemInformation := GetProcAddress(GetModuleHandle('ntdll.dll'),|30: 'NtQuerySystemInformation');|32: // Obtain required buffer size|68: NtQuerySystemInformation(DRIVER_INFORMATION, @temp, 0, @numBytes);|20: // Allocate buffer|32: buf := AllocMem(numBytes * 2);|77: NtQuerySystemInformation(DRIVER_INFORMATION, buf, numBytes * 2, @numBytes);|21: numEntries := buf^;|41: driverInfo := Pointer(DWORD(buf) + 12);|15: Result := '';|34: for Index := 1 to numEntries do |7: begin|85: Result := Result + #$D#$A + 'Address: $' + Int2Hex(DWORD(driverInfo^.Address), 8) +|44: #9 + 'Name: "' + (driverInfo^.Name) + '"';|18: Inc(driverInfo);|6: end;|23: Delete(Result, 1, 2);|15: FreeMem(buf);|4:end;|1: |29:procedure THiAsmClass.doEnum;|5:begin|37: _hi_OnEvent(onEnum, GetDriverInfo);|37:// ListBox1.Items.Add(GetDriverInfo)|4:end;|0:|4:end.|
link(onEnum,6190371:doAdd,[])
}

карма: 22

0
Ответов: 286
Рейтинг: 5
#14: 2018-11-12 13:43:09 ЛС | профиль | цитата
Спасибо.И в правду ни чем.
Ну как то буду пробовать парсить текст.Хотя пока ничего хорошего не получается
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#15: 2018-11-12 15:18:29 ЛС | профиль | цитата
Udokanec писал(а):
И как это распарсить
А как ты получил этот текст ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)