Страница: 1 |
Страница: 1 |
Вопрос: Опять же реестр
Добавлено: 18.11.05 18:02
Автор вопроса: XPress | ICQ: 249007960
Как получить значение из реестра в ключе HKEY_LOCAL_MACHINE, если у пользователя нет прав (ограниченная учетная запись в XP)?????
Ответы
Всего ответов: 15
Номер ответа: 1
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #1
Добавлено: 18.11.05 19:10
А как получить пару лимонов из банка в котором у тебя ни рубля не лежит?
Номер ответа: 2
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #2
Добавлено: 18.11.05 19:38
Гы... никак, права нужны... читай статьи поднятия прав...
Номер ответа: 3
Автор ответа:
XPress
ICQ: 249007960
Вопросов: 3
Ответов: 8
Профиль | | #3
Добавлено: 19.11.05 06:31
а как можно поднять права? я когда программу устанавливаю с админскими правами и записываю некие значения в реестр в этот ключь, потом когда прога запускается пользователем с ограниченными правами не могу считывать эти значения Может поможете, а то как то......(((((
Номер ответа: 4
Автор ответа:
Daleko ne haker
ICQ: 330-912-919
Вопросов: 4
Ответов: 31
Web-сайт:
Профиль | | #4
Добавлено: 20.11.05 02:32
У меня такой вопрос: КАК ВООБЩЕ ЧЕНИБУДЬ прочесть из реестра, вот записывать и удалять, как я уже убедился куда проще через VBS чем через API, но вот прочитать значение я не знаю как
Номер ответа: 5
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #5
Добавлено: 20.11.05 04:15
на те модуль:
Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwReserved As Long, ByVal samDesired As Long, phkResult As Long) As Long
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegCloseKey& Lib "advapi32" (ByVal hKey As Long)
Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
Private Declare Function RegQueryInfoKey Lib "advapi32.dll" Alias "RegQueryInfoKeyA" (ByVal hKey As Long, ByVal lpClass As String, lpcbClass As Long, ByVal lpReserved As Long, lpcSubKeys As Long, lpcbMaxSubKeyLen As Long, lpcbMaxClassLen As Long, lpcValues As Long, lpcbMaxValueNameLen As Long, lpcbMaxValueLen As Long, lpcbSecurityDescriptor As Long, lpftLastWriteTime As Any) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, ByVal lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As Any) As Long
Private Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
Private Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
Private Const KEY_ALL_ACCESS As Long = ((&H1F0000 Or &H1 Or &H2 Or &H4 Or &H8 Or &H10 Or &H20) And (Not &H100000))
Private Const REG_SZ As Long = &H1
Private Const REG_DWORD As Long = &H4
Private Const ERROR_SUCCESS As Long = &H0
Public Enum RootKey
HKEY_CLASSES_ROOT = &H80000000
HKEY_CURRENT_USER = &H80000001
HKEY_LOCAL_MACHINE = &H80000002
HKEY_USERS = &H80000003
End Enum
Public Function RegGetValue(hKey As RootKey, strSubKey As String, strValueName As String) As String
Dim lngDataLen As Long, hSubKey As Long, strSetting As String
If RegOpenKeyEx(hKey, strSubKey, 0, KEY_ALL_ACCESS, hSubKey) = ERROR_SUCCESS Then
strSetting = Space(255): lngDataLen = Len(strSetting)
If RegQueryValueEx(hSubKey, strValueName, ByVal 0, REG_SZ, ByVal strSetting, lngDataLen) = ERROR_SUCCESS Then
If lngDataLen > 1 Then RegGetValue = Left(strSetting, lngDataLen - 1)
End If
RegCloseKey hSubKey
End If
End Function
Public Sub RegSetValue(hKey As RootKey, strSubKey As String, strKey As String, strValue As String)
Dim keyhand As Long
Call Trim(strKey): Call Trim(strValue) 'Убираем пробелы в нач. и кон. строки
If Len(strKey) = 0 Or Len(strValue) = 0 Then Exit Sub
Call RegCreateKey(hKey, strSubKey, keyhand)
Call RegSetValueEx(keyhand, strKey, 0, 1&, ByVal strValue, Len(strValue) + 1)
Call RegCloseKey(keyhand)
End Sub
Public Sub RegSetKey(hKey As RootKey, strSubKey As String)
Dim keyhand As Long
RegCreateKey hKey, strSubKey, keyhand
RegCloseKey keyhand
End Sub
Public Function RegGetDWord(hKey As RootKey, strSubKey As String, strValueName As String) As Long
Dim hSubKey As Long, lngRetVal As Long
If RegOpenKeyEx(hKey, strSubKey, 0, KEY_ALL_ACCESS, hSubKey) = ERROR_SUCCESS Then
If RegQueryValueEx(hSubKey, strValueName, ByVal 0, REG_DWORD, lngRetVal, 4) = ERROR_SUCCESS Then RegGetDWord = lngRetVal
RegCloseKey hSubKey
End If
End Function
Public Sub RegSetDWord(hKey As RootKey, strSubKey As String, strValueName As String, lngData As Long)
Dim hNewHandle As Long
RegCreateKey hKey, strSubKey, hNewHandle
RegSetValueEx hNewHandle, strValueName, 0, REG_DWORD, lngData, 4
RegCloseKey hNewHandle
End Sub
Public Function RegGetKeys(hKey As RootKey, strSubKey As String, strRetArray() As String, Optional Range As Long) As Long
Dim hChildKey As Long, lngSubKeys As Long, lngMaxKeySize As Long, lngDataRetBytes As Long, i As Integer
If Len(strSubKey) Then
If RegOpenKeyEx(hKey, strSubKey, 0, KEY_ALL_ACCESS, hChildKey) <> ERROR_SUCCESS Then Range = -1: Erase strRetArray: Exit Function
Else
hChildKey = hKey
End If
If QueryRegInfoKey(hChildKey, lngSubKeys, lngMaxKeySize) <> ERROR_SUCCESS Or lngSubKeys = 0 Then
If Len(strSubKey) Then RegCloseKey hChildKey
Range = -1
Erase strRetArray
Exit Function
End If
lngSubKeys = lngSubKeys - 1
ReDim strRetArray(lngSubKeys) As String
For i = 0 To lngSubKeys
lngDataRetBytes = lngMaxKeySize
strRetArray(i) = Space(lngMaxKeySize)
RegEnumKeyEx hChildKey, i, strRetArray(i), lngDataRetBytes, 0&, vbNullString, ByVal 0&, ByVal 0&
strRetArray(i) = Left(strRetArray(i), lngDataRetBytes)
Next i
If Len(strSubKey) Then RegCloseKey hChildKey
Range = lngSubKeys
RegGetKeys = lngSubKeys
End Function
Public Function RegGetKeyValues(hKey As RootKey, strSubKey As String, strValues() As String, Optional Range As Long) As Long
Dim lngMaxValSize As Long, lngValRetBytes As Long, lngMaxSettingSize As Long, lngSetRetBytes As Long
Dim lngSetting As Long, lngType As Long, hChildKey As Long, i As Integer, lngNumValues As Long
If RegOpenKeyEx(hKey, strSubKey, 0, KEY_ALL_ACCESS, hChildKey) <> ERROR_SUCCESS Then Range = -1: Erase strValues: Exit Function
If QueryRegInfoKey(hChildKey, , , lngNumValues, lngMaxValSize, lngMaxSettingSize) <> ERROR_SUCCESS Or lngNumValues = 0 Then RegCloseKey hChildKey: Erase strValues: Exit Function
lngNumValues = lngNumValues - 1
ReDim strValues(0 To lngNumValues, 0 To 1) As String
For i = 0 To lngNumValues
strValues(i, 0) = Space(lngMaxValSize): lngValRetBytes = lngMaxValSize: strValues(i, 1) = Space(lngMaxSettingSize)
lngSetRetBytes = lngMaxSettingSize
RegEnumValue hChildKey, i, strValues(i, 0), lngValRetBytes, 0, lngType, ByVal strValues(i, 1), lngSetRetBytes
If lngType = REG_SZ Then
strValues(i, 1) = Left(strValues(i, 1), lngSetRetBytes - 1)
ElseIf lngType = REG_DWORD Then
lngValRetBytes = lngValRetBytes + 1
RegEnumValue hChildKey, i, strValues(i, 0), _
lngValRetBytes, 0, lngType, lngSetting, lngSetRetBytes
strValues(i, 1) = CStr(lngSetting)
Else
strValues(i, 1) = vbNullString
End If
strValues(i, 0) = RTrim(Left(strValues(i, 0), lngValRetBytes))
strValues(i, 1) = RTrim(strValues(i, 1))
Next i
RegCloseKey hChildKey
Range = lngNumValues
RegGetKeyValues = lngNumValues
End Function
Public Sub RegDelKey(hKey As RootKey, strKeyToDel As String)
RegDeleteKey hKey, strKeyToDel
End Sub
Public Sub RegDelValue(hKey As RootKey, strSubKey As String, strValToDel As String)
Dim hSubKey As Long
RegOpenKeyEx hKey, strSubKey, 0, KEY_ALL_ACCESS, hSubKey
RegDeleteValue hSubKey, strValToDel
RegCloseKey hSubKey
End Sub
Private Function QueryRegInfoKey(hKey As RootKey, Optional lngSubKeys As Long, Optional lngMaxKeyLen As Long, Optional lngValues As Long, Optional lngMaxValNameLen As Long, Optional lngMaxValLen As Long)
QueryRegInfoKey = RegQueryInfoKey(hKey, vbNullString, ByVal 0&, 0&, lngSubKeys, lngMaxKeyLen, ByVal 0&, lngValues, lngMaxValNameLen, lngMaxValLen, ByVal 0&, ByVal 0&
lngMaxKeyLen = lngMaxKeyLen + 1
lngMaxValNameLen = lngMaxValNameLen + 1
lngMaxValLen = lngMaxValLen + 1
End Function
'Копирование стринговых значений из 1-го ключа в другой
Public Sub CopyKeyVal(hKey As RootKey, sFrom As String, sTo As String)
Dim sArray() As String, ii As Long
Call RegGetKeyValues(HKEY_LOCAL_MACHINE, sFrom, sArray)
For ii = 0 To UBoundS(sArray)
Call RegSetValue(HKEY_LOCAL_MACHINE, sTo, sArray(ii, 0), sArray(ii, 1))
Next
End Sub
RegGetValue - что те нада
Номер ответа: 6
Автор ответа:
XPress
ICQ: 249007960
Вопросов: 3
Ответов: 8
Профиль | | #6
Добавлено: 20.11.05 10:43
2HACKER RegGetValue не прокатило не получилось прочитать значение
Номер ответа: 7
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #7
Добавлено: 20.11.05 21:41
MsgBox RegGetValue(HKEY_CURRENT_USER, "Control Panel\Colors", "ActiveBorder"
End Sub
Номер ответа: 8
Автор ответа:
XPress
ICQ: 249007960
Вопросов: 3
Ответов: 8
Профиль | | #8
Добавлено: 21.11.05 10:41
HACKER Ну я так и сделал.... ток все равно эта функция возвращает пустое значение так как не может прочитать его....видать не хватает прав а можно как нить при записи с админскими правами еще и задать атрибуты доступа к этой записи? мне подсказали функцию RegSetKeySecurity ток я ни как не могу найти че нить стоющее ............ Помогитеееее (
Номер ответа: 9
Автор ответа:
«UL.eXe»
ICQ: 197.895.916.247
Вопросов: 72
Ответов: 540
Профиль | | #9
Добавлено: 21.11.05 10:50
Всем хай !
гм.. Тебе нужно настройки проги считывать из реестра? Не рви себе ж*п* Попробуй SaveSatting воспользоваться...
Номер ответа: 10
Автор ответа:
XPress
ICQ: 249007960
Вопросов: 3
Ответов: 8
Профиль | | #10
Добавлено: 21.11.05 11:05
Lamer я щас ею и пользуюсь. Но эта функция записывает данные в ключ HKCU, но в этом случае пользователь если зайдет с другим акаунтом прога не сможет достать до тех настроек которые записаны в другом HKCU
Номер ответа: 11
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #11
Добавлено: 21.11.05 11:08
короче, этому примеру (модулю) наверное лет больше чем мне, он 100%, как я вызывал у себя, и оно у меня всё нормально возвращало - показал. Т.е. дальше траблы твои...
Номер ответа: 12
Автор ответа:
Daleko ne haker
ICQ: 330-912-919
Вопросов: 4
Ответов: 31
Web-сайт:
Профиль | | #12
Добавлено: 22.11.05 00:14
спасибо тебе ХЕКЕР, у меня вот еще вопрос, как передать файл по Локальной Сети, чтоб прям через прогу, можно это через АПИ сделать или через WinSock например, еще раз спасибо...
Номер ответа: 13
Автор ответа:
Daleko ne haker
ICQ: 330-912-919
Вопросов: 4
Ответов: 31
Web-сайт:
Профиль | | #13
Добавлено: 22.11.05 00:18
И ЕЩЕ ОДНА ПРОСЬБА, не по ВБ, меня достали сообщения от СЛУЖБЫ СООБЩЕНИЙ, которые говорят что у меня якобы вирус и надо зайти на такой то сайт, но естественно я не захожу, а просто делаю сообщение невидимым, и их там за время подключения к инету много появляется, но все сразу невидимые.
Так вот в чем суть вопроса, как узнать они отсылаются мне удаленно или вирус уже у меня ? как узнать
Номер ответа: 14
Автор ответа:
mr_Frank
ICQ: 316417
Вопросов: 36
Ответов: 94
Web-сайт:
Профиль | | #14
Добавлено: 22.11.05 07:38
Естественно это приколы, они те через "net send" посылают типа зайди на сайт, ты заходишь и хоб откуда не возьмись у тя троян....
Номер ответа: 15
Автор ответа:
mr_Frank
ICQ: 316417
Вопросов: 36
Ответов: 94
Web-сайт:
Профиль | | #15
Добавлено: 22.11.05 07:40
а на счёт работы с реестром вот:
http://vbrussian.com/Examples.asp?Page=9 - там пример номер 81.
http://vbrussian.com/Examples.asp?Page=12 - приер номер 111
http://vbrussian.com/Examples.asp?Page=15 - пример номер 145
http://vbrussian.com/Examples.asp?Page=22 - пример номер 212