Qrembiezs Security Team
Jumlah posting : 93 Join date : 05.04.11 Lokasi : %windir%regedit.exe
| Subyek: Registry - Registry membaca atau menulis ke sembarang kunci Sat 8 Feb 2014 - 15:06 | |
| Pertama qta buat Module Declarations - Code:
-
Public Const READ_CONTROL = &H20000 Public Const STANDARD_RIGHTS_READ = (READ_CONTROL) Public Const STANDARD_RIGHTS_WRITE = (READ_CONTROL) Public Const KEY_QUERY_VALUE = &H1 Public Const KEY_SET_VALUE = &H2 Public Const KEY_CREATE_SUB_KEY = &H4 Public Const KEY_ENUMERATE_SUB_KEYS = &H8 Public Const KEY_NOTIFY = &H10 Public Const KEY_CREATE_LINK = &H20 Public Const SYNCHRONIZE = &H100000 Public Const STANDARD_RIGHTS_ALL = &H1F0000 Public Const KEY_READ = ((STANDARD_RIGHTS_READ Or _ KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) _ And (Not SYNCHRONIZE)) Public Const KEY_WRITE = ((STANDARD_RIGHTS_WRITE Or _ KEY_SET_VALUE Or KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE)) Public Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or _ KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY _ Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) _ And (Not SYNCHRONIZE)) Public Const KEY_EXECUTE = ((KEY_READ) And (Not SYNCHRONIZE))
Public Const ERROR_SUCCESS = 0&
Declare Function RegOpenKeyEx Lib "advapi32.dll" _ Alias "RegOpenKeyExA" (ByVal hKey As Long, _ ByVal lpSubKey As String, ByVal ulOptions As Long, _ ByVal samDesired As Long, phkResult As Long) As Long Declare Function RegQueryValueEx Lib "advapi32.dll" _ Alias "RegQueryValueExA" (ByVal hKey As Long, _ ByVal lpValueName As String, ByVal lpReserved As Long, _ lpType As Long, lpData As Any, lpcbData As Long) As Long Declare Function RegCloseKey Lib "advapi32.dll" _ (ByVal hKey As Long) As Long kemudian kita buat Module Function - Code:
-
strSubKeys As String, strValName As String, _ lngType As Long) As String
On Error GoTo sdaGetRegEntry_Err
Dim lngResult As Long, lngKey As Long Dim lngHandle As Long, lngcbData As Long Dim strRet As String
Select Case strKey Case "HKEY_CLASSES_ROOT": lngKey = &H80000000 Case "HKEY_CURRENT_CONFIG": lngKey = &H80000005 Case "HKEY_CURRENT_USER": lngKey = &H80000001 Case "HKEY_DYN_DATA": lngKey = &H80000006 Case "HKEY_LOCAL_MACHINE": lngKey = &H80000002 Case "HKEY_PERFORMANCE_DATA": lngKey = &H80000004 Case "HKEY_USERS": lngKey = &H80000003 Case Else: Exit Function End Select
If Not ERROR_SUCCESS = RegOpenKeyEx(lngKey, _ strSubKeys, 0&, KEY_READ, _ lngHandle) Then Exit Function
lngResult = RegQueryValueEx(lngHandle, strValName, _ 0&, lngType, ByVal strRet, lngcbData) strRet = Space(lngcbData) lngResult = RegQueryValueEx(lngHandle, strValName, _ 0&, lngType, ByVal strRet, lngcbData)
If Not ERROR_SUCCESS = RegCloseKey(lngHandle) Then _ lngType = -1&
sdaGetRegEntry = strRet
sdaGetRegEntry_Exit: On Error GoTo 0 Exit Function
sdaGetRegEntry_Err: lngType = -1& MsgBox Err & "> " & Error$, 16, _ "GenUtils/sdaGetRegEntry" Resume sdaGetRegEntry_Exit kemudian buat 1 form dan 1 command button dan klik command button 2 kali kemudian masukkan kode berikut - Code:
-
Dim lngType As Long, varRetString As Variant Dim lngI As Long, intChar As Integer
varRetString = sdaGetRegEntry(cboStartKey, _ txtRegistrationPath, txtRegistrationParameter, _ lngType)
txtResult = varRetString txtDataType = lngType txtDataLength = Len(varRetString)
txtHex = "" If Len(varRetString) Then For lngI = 1 To Len(varRetString) intChar = Asc(Mid(varRetString, lngI, 1)) If intChar > 15 Then txtHex = txtHex & Hex(intChar) & " " Else txtHex = txtHex & "0" & Hex(intChar) & " " End If Next lngI End If | |
|