اصولا فرمت خروجي جعبه شن پارسا سازگار با زبان C++ و کاملا منطبق با طريقه فراخواني اين توابع ميباشد. به عبارتي ميتوان گفت اين جعبه شن قادر به نمايش کد سطح بالاي برنامه تحت تحليل ميباشد. در زير توابعي که در خروجي رجيستري نمايش داده ميشود، به همراه معنا و پارامترهاي آن ارائه شده است. خواندن اين بخش براي کساني که آشنايي کافي با برنامهنويسي Visual C++ (Win32) ندارند، الزامي است.
نکته مهم: اگر Registry Editor ويندوز را اجرا نماييد، با 6 کليد ريشه همانند شکل زير روبرو خواهيد شد:
نکتهاي که در اينجا اهميت دارد اين است که تنها کليدهاي HKEY_LOCAL_MACHINE و HKEY_USERS کليدهاي ريشه واقعي هستند، و چهار کليد ريشه ديگري که در تصوير بالا ميبينيد واقعي نيستند، و در واقع ميانبري به زيرکليدي از HKEY_LOCAL_MACHINE يا HKEY_USERS هستند. به عنوان مثال HKEY_CURRENT_USER در کامپيوتري که ما از آن استفاده ميکنيم، ميانبري به مسير رجيستري HKEY_USERS\S-1-5-21-3607828369-1491239387-1001 ميباشد. يا HKEY_CLASSES_ROOT ميانبري به چند کليد رجيستري از جمله HKEY_LOCAL_MACHINE\SOFTWARE\Classes ميباشد.
به عنوان مثال، خروجي زير از جعبه شن پارسا استخراج شده است:
wcscpy(data,L"Generic");
RegSetValueEx(hReg,L"SniffedFolderType",0,REG_SZ,(void*)data,16); //hReg points to: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Shell
همانطور که ميبينيد برنامه تحت تحليل، رشته Generic را در مقدار SniffedFolderType از مسير زیر قرار داده است.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Shell
براي آشنايي بيشتر با اين تابع مراجعه کنيد به:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724923%28v=vs.85%29.aspx
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer
//PID=8092,TID=4664,Time=134077190532
RegDeleteValue(hReg,L"15"); //hReg points to: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer
براي کسب اطلاعات بيشتر راجع به اين تابع مراجعه کنيد به:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724851%28v=vs.85%29.aspx
//PID=4912,TID=4776,Time=157376055231
RegRenameKey(hReg,NULL,L"Perl"); //hReg points to: HKEY_LOCAL_MACHINE\SOFTWARE\Perl12
//PID=6976,TID=9172,Time=158589456273
RegEnumKeyEx(hReg,38,keyName,&keyname_length,NULL,NULL,NULL,&lastWrite); //keyName="TAP-Windows" ,lastWrite=130425925053803311 ,hReg points to: HKEY_LOCAL_MACHINE\SOFTWARE
در مثال بالا، برنامه تحت تحليل، خصوصيات انديس 38 از مسير HKEY_LOCAL_MACHINE\SOFTWARE را خوانده، و در خروجي کليد TAP-Windows را گرفته است. براي کسب اطلاعات بيشتر راجع به اين تابع، به لينک زير مراجعه کنيد:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724862%28v=vs.85%29.aspx
//PID=8800,TID=7180,Time=173047506908
RegEnumValue(hReg,58,valName,&valname_length,NULL,&type,data,&data_length); //valname=L"Malgun Gothic Bold", type=REG_MULTI_SZ, hReg points to: HKEY_LOCAL_MACHINE\SOFTWARE\FontLink\SystemLink
در مثال بالا، برنامه تحت تحليل خصوصيات انديس شماره 58 از مسير رجيستري زیر را خوانده است:
HKEY_LOCAL_MACHINE\SOFTWARE\FontLink\SystemLink
اين برنامه در خروجي مقدار Malgun Gothic Bold را دريافت کرده است. اين مقدار از نوع REG_MULTI_SZ (مجموع چند رشته) است.
براي کسب اطلاعات بيشتر راجع به اين تابع مراجعه کنيد به:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724865%28v=vs.85%29.aspx
//PID=9972,TID=7144,Time=178966534051
RegQueryInfoKey(hReg, NULL, NULL, NULL, &num_subkeys, &MaxSubKeyLen, NULL,&num_values, &MaxValueNameLen, &MaxValueLen, &SecDesc_length, &lastWrite);
//num_subkeys=4 ,MaxSubKeyLen=11 ,num_values=0 ,MaxValueNameLen=0 ,MaxValueLen=0 ,lastWrite=130506910587544255 ,hReg points to: HKEY_LOCAL_MACHINE\HARDWARE
براي کسب اطلاعات بيشتر راجع به اين تابع مراجعه کنيد به:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724902%28v=vs.85%29.aspx
//PID=8416,TID=5044,Time=180377010147
RegQueryValueEx(hReg,L"updateid",NULL,&type,data,&data_length); //type=REG_SZ ,hReg points to: HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC
با استفاده از آدرس زير ميتوانيد اطلاعات بيشتري راجع به اين تابع به دست آوريد:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724911%28v=vs.85%29.aspx
//PID=9864,TID=10200,Time=184865990049
wcscpy(ValEnt[0].ValueName,L"test1");
wcscpy(ValEnt[1].ValueName,L"test2");
RegQueryMultipleValues(hReg,&valEnt,2,buffer,&buffer_length); //buffer_length=256 ,hReg points to: HKEY_LOCAL_MACHINE
براي اطلاعات بيشتر راجع به اين تابع مراجعه کنيد به:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724905%28v=vs.85%29.aspx
//PID=9916,TID=9564,Time=189747213363
RegFlushKey(hReg); //hReg points to: HKEY_LOCAL_MACHINE
در مثال بالا تغييرات اعمال شده روي HKEY_LOCAL_MACHINE بر روي هارد ديسک ذخيره ميگردد. جهت کسب اطلاعات بيشتر راجع به اين تابع مراجعه کنيد به:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724867%28v=vs.85%29.aspx
//PID=6384,TID=752,Time=190650831036
RegLoadKey(HKEY_USERS,L"test",L"C:\\temp.hive");
جهت کسب اطلاعات بيشتر راجع به اين تابع مراجعه کنيد به:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724889%28v=vs.85%29.aspx
//PID=6384,TID=752,Time=190673383732
RegUnloadKey(HKEY_USERS,L"test");
اطلاعات بيشتر راجع به اين تابع در لينک زير موجود است:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724924%28v=vs.85%29.aspx
//PID=6384,TID=752,Time=190728162667
RegRestoreKey(hReg,L"C:\\temp",REG_FORCE_RESTORE); //hReg points to: HKEY_LOCAL_MACHINE\temp
براي کسب اطلاعات بيشتر راجع به اين تابع بر روي لينک زير کليک نماييد:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724915%28v=vs.85%29.aspx
//PID=6384,TID=752,Time=190610171475
RegSaveKey(hReg,L"C:\\temp",?); //hReg points to: HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC
در مثال بالا برنامه تحت تحليل، محتواي کليد HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC در فايل C:\temp ذخيره کرده است. براي کسب اطلاعات بيشتر راجع به اين تابع مراجعه کنيد به:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724917%28v=vs.85%29.aspx
//PID=9508,TID=6412,Time=249477363841
RegReplaceKey(hReg,NULL,L"C:\\temp",L"C:\\temp2"); //hReg points to: HKEY_USERS\TEMP
خروجي بالا نشان ميدهد که برنامه تحت تحليل فايل hive موجود در مسير C:\temp2 را با C:\temp جايگزين کرده است. جهت کسب اطلاعات بيشتر راجع به اين تابع مراجعه کنيد به:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724913%28v=vs.85%29.aspx
//PID=5476,TID=5480,Time=636072489
RegDeleteKey(HKEY_LOCAL_MACHINE,L"SOFTWARE\\test");
جهت کسب اطلاعات بيشتر راجع به اين تابع مراجعه کنيد به:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724845%28v=vs.85%29.aspx
//PID=6900,TID=4396,Time=1029314953
RegCreateKeyEx(HKEY_LOCAL_MACHINE, L"SOFTWARE\\RealVNC\\New Key #1", 0, NULL, REG_OPTION_NON_VOLATILE, MAXIMUM_ALLOWED, ?, &hReg, &dwDisposition); //dwDisposition=REG_CREATED_NEW_KEY
خروجي بالا نشان ميدهد که برنامه تحت تحليل کليد زیر را ساخته است.
HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC\New Key #1
(اگر dwDisposition برابر REG_CREATED_NEW_KEY باشد، يعني کليد ساخته شده است، و اگر برابر REG_OPENED_EXISTING_KEY باشد، يعني کليد به دليل اينکه قبلا وجود داشته است، ساخته نشده است، و فقط دستگيره اي به آن برگردانده شده است.) جهت کسب اطلاعات بيشتر راجع به اين تابع مراجعه کنيد به:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724844%28v=vs.85%29.aspx
//PID=7004,TID=5860,Time=1883249836
RegOpenKeyEx(HKEY_LOCAL_MACHINE,L"Software\\Microsoft\\OLE",0,KEY_READ,&hReg);
براي کسب اطلاعات بيشتر راجع به اين تابع مراجعه کنيد به:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724897%28v=vs.85%29.aspx
//PID=3228,TID=6112,Time=2447207328
RegSetKeySecurity(hReg, DACL_SECURITY_INFORMATION | UNPROTECTED_DACL_SECURITY_INFORMATION, pSecDes); //hReg points to: HKEY_LOCAL_MACHINE\SOFTWARE\temp
جهت کسب اطلاعات بيشتر راجع به اين تابع مراجعه کنيد به:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa379314%28v=vs.85%29.aspx
//PID=3228,TID=6112,Time=2396474087
RegGetKeySecurity(hReg,DACL_SECURITY_INFORMATION,pSecDes,&pSecDes_length); //pSecDes_length=140 ,hReg points to: HKEY_LOCAL_MACHINE\SOFTWARE
جهت کسب اطلاعات بيشتر راجع به اين تابع مراجعه کنيد به:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa379313%28v=vs.85%29.aspx
//PID=7140,TID=708,Time=3368170602
RegCloseKey(hReg); //hReg points to: HKEY_LOCAL_MACHINE\SOFTWARE\Classes
خروجي بالا نشان مي دهد که دستگيرهاي که قبلا به مسير HKEY_LOCAL_MACHINE\SOFTWARE\Classes باز شده بود، بسته شده است. اطلاعات بيشتر راجع به اين تابع در آدرس زير موجود است:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724837%28v=vs.85%29.aspx