purebasic.info

PureBasic forum
Текущее время: Пт дек 14, 2018 10:59 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу Пред.  1, 2
Автор Сообщение
СообщениеДобавлено: Чт фев 22, 2018 11:01 am 
Не в сети
доцент

Зарегистрирован: Чт июн 23, 2016 8:15 pm
Сообщений: 31
Благодарил (а): 0 раз.
Поблагодарили: 4 раз.
Пункты репутации: 0
kvitaliy писал(а):
А зачем вообще эта либа нужна? Вроде с реестром и так можно работать не плохо, без дополнительных прицепов?

Видимо, у ТС есть необходимость использования именно этой библиотеки.
Цитата:
[*]The offline registry functions can be used to modify a registry hive in any supported registry format. The standard registry functions can make changes only to an active registry hive and the changes must be compatible with the version of Windows running on the system.
[*]The offline registry library requires only read access to open a registry hive file and write access to save the file. No other access checks are performed on objects in the hive, making it possible to modify the hive with standard user privileges. With the standard registry functions, loading a hive into the active registry is a privileged operation that requires administrative access.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт фев 22, 2018 11:32 am 
Не в сети
ассистент

Зарегистрирован: Пн фев 19, 2018 8:40 am
Сообщений: 17
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
kvitaliy писал(а):
А зачем вообще эта либа нужна? Вроде с реестром и так можно работать не плохо, без дополнительных прицепов?
Что там хоть за код в Автоит, как её применяют, скинь посмотреть.


Зачем? Программу сброса паролей Windows пишу...
Можно ещё BCD редактировать или вносить изменения в реестр WinPE.
Мне требуется редактировать offline реестр...
То есть монтировать реестр, производить чтение, изменение и выгружать.
Чем больше куст, тем медленнее всё делается. (с помощью reg.exe)
В итоге вся программа становится "неторопливой"
А хочется скорости и быстрого отклика...
offreg.dll используется в программе WinNTSetup - она на AutoIT, но автор как то обработал программу и исходник получить нельзя.
Есть старый, правда обезличены имена функций
Вот часть кода:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Global $6 = DllOpen(@ScriptDir & "\tools\offreg.dll")
Func _4w($oc)
Local $1j = DllCall($6, "dword", "OROpenHive", "wstr", $oc, "ptr*", 0)
If @error OR $1j[0] Then Return SetError(1, 0, 0)
Return $1j[2]
EndFunc
Func _4x($od, $oe)
If NOT $od Then Return SetError(1, 0, _4l("ERROR invalid handle passed to _ORCloseHive()"))
Local $7h = StringInStr($oe, "\")
If $7h Then
$of = StringLeft($oe, $7h - 1)
$oe = StringTrimLeft($oe, $7h)
Local $c0 = DllCall($6, "int", "ORCreateKey", "ptr", $od, "wstr", $of, "ptr", 0, "dword", 0, "ptr", 0, "ptr*", 0, "dword*", 0)
If @error OR $c0[0] Then Return SetError(2, 0, 0)
Return _4x($c0[6], $oe)
EndIf
Local $c0 = DllCall($6, "int", "ORCreateKey", "ptr", $od, "wstr", $oe, "ptr", 0, "dword", 0, "ptr", 0, "ptr*", 0, "dword*", 0)
If @error OR $c0[0] Then Return SetError(3, 0, 0)
Return $c0[6]
EndFunc


Вот есть консольная утилита на базе данной длл
Я так понимаю, что реестр не монтируется, а загружается в память, с ним производятся действия и изменения выгружают в тот же куст.
Не знаю, насколько это быстрее, по сравнению с "классикой", но надеюсь на прирост в скорости обработки данных.
Как пользоваться dll я особо не знаю, точнее это описано, нужно как то тестировать и смотреть отладку.
Если кто то более умный, покажет примеры работы, было бы здорово.


Вложения:
SetupWinXP.zip [104.41 KiB]
Скачиваний: 32
Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт фев 22, 2018 3:57 pm 
Не в сети
ассистент

Зарегистрирован: Пн фев 19, 2018 8:40 am
Сообщений: 17
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
У меня получилось только открыть реестр:
Код:
1
2
3
4
  OROpenHive("E:\Windows\system32\config\SAM", @out)
  Debug out
  OROpenKey(out, "SAM\Domains\Account\Users\Names", @out2)
  Debug out2


Всё остальное, темный лес...
Куча параметров, буферы выделенной памяти какие то..
Для специалиста, я думаю не сложно разобраться, а вот новичку, типо меня...
Наверно, не реально...

P.S. с типами переменных всё таки напутано...


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB