خروجی رجیستری

اصولا فرمت خروجي جعبه شن پارسا سازگار با زبان 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 مي‌باشد.

  1. فرمت خروجي تابع RegSetValueEx: اين تابع محتواي يک مقدار رجيستري را تغيير مي‌دهد. براي استفاده از اين تابع، بايد 6 آرگومان ورودي به آن داد. آرگومان اول، دستگيره باز شده به کليد رجيستري است، که معمولا خروجي يکي از توابع RegOpenKeyEx يا RegCreateKeyEx است. آرگومان دوم نام مقدار رجيستري، آرگومان پنجم محتوايي که بايد  در مقدار رجيستري قرار گيرد، و آرگومان آخر طول آن است. (آرگومان سوم اهميتي ندارد، و هميشه برابر صفر است.)

    به عنوان مثال، خروجي زير از جعبه شن پارسا استخراج شده است:

    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

  2. فرمت خروجي تابع RegDeleteValue: اين تابع براي حذف يک مقدار رجيستري مورد استفاده قرار مي‌گيرد. به عنوان مثال خروجي زير نشان مي‌دهد که برنامه تحت تحليل مقدار 15 را از مسير زیر حذف کرده است:

    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

  3. فرمت خروجي تابع RegRenameKey: اين تابع براي تغيير نام يک کليد رجيستري مورد استفاده قرار مي‌گيرد. به عنوان مثال خروجي زير نشان مي دهد که برنامه تحت تحليل کليد Perl12 موجود در مسير HKEY_LOCAL_MACHINE\SOFTWARE را به نام Perl تعيير نام داده است.

    //PID=4912,TID=4776,Time=157376055231
    RegRenameKey(hReg,NULL,L"Perl"); //hReg points to: HKEY_LOCAL_MACHINE\SOFTWARE\Perl12

  4. فرمت خروجي تابع RegEnumKeyEx: اين تابع براي خواندن نام، و همچنين ساير خصوصيات يک زيرکليد از رجيستري استفاده مي‌شود. آرگومان اول دستگيره کليد باز شده مي‌باشد. آرگومان دوم انديس زيرکليدي است که نام و ساير خصوصيات آن بايد خوانده شود. (دقت داشته باشيد که انديس از صفر شروع مي‌شود.) به عنوان مثال، نمونه خروجي زير را مشاهده فرماييد:

    //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

  5. فرمت خروجي تابع RegEnumValue: اين تابع براي خواندن محتوا، و ساير خصوصيات يک مقدار از رجيستري استفاده مي‌شود. آرگومان اول دستگيره کليد باز شده مي‌باشد. آرگومان دوم انديس مقداري است که خصوصيات آن بايد خوانده شود. (دقت داشته باشيد که انديس از صفر شروع مي‌شود.) به عنوان مثال، نمونه خروجي زير را مشاهده فرماييد:

    //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

  6. فرمت خروجي تابع RegQueryInfoKey: اين تابع کليه اطلاعات يک کليد از رجيستري را مي‌خواند. در مثال زير، اطلاعات کليد HKEY_LOCAL_MACHINE\HARDWARE خوانده شده است. همانطور که مي‌بينيد اين کليد داراي 4 زيرکليد مي‌باشد، و هيچ مقداري نيز در درون آن وجود ندارد.

    //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

  7. فرمت خروجي تابع RegQueryValueEx: اين تابع نوع و محتواي يک مقدار رجيستري را مي‌خواند. به عنوان مثال کد زير نشان مي‌دهد که برنامه تحت تحليل محتواي مقدار updateid موجود در کليد HKEY_LOCAL_MACHINE\SOFTWARE\ReadVNC را خوانده است.

    //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

  8. فرمت خروجي تابع RegQueryMultipleValues: اين تابع براي خواندن چندين مقدار از يک کليد رجيستري به طور همزمان استفاده مي‌شود. به عنوان مثال در کد زير مقادير test1 و test2 از کليد رجيستري HKEY_LOCAL_MACHINE به طور همزمان خوانده شده است.

    //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

  9. فرمت خروجي تابع RegFlushKey: اين تابع براي ذخيره تغييرات اعمال شده بر روي رجيستري مورد استفاده قرار مي‌گيرد. به عنوان نمونه، مثال زير را مشاهده نماييد:

    //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

  10. فرمت خروجي تابع RegLoadKey: اين تابع يک زيرکليد در HKEY_USERS يا HKEY_LOCAL_MACHINE ساخته، و محتواي فايل hive داده شده را در اين زيرکليد بارگذاري مي‌کند. به عنوان مثال کد زير يک زيرکليد با نام test در HKEY_USERS ساخته، و محتواي فايل C:\temp.hive را در آن بارگذاري مي‌کند.

    //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

  11. فرمت خروجي تابع RegUnloadKey: اين تابع براي Unloadکردن يک فايل hive که قبلا با تابع RegLoadKey بارگذاري شده است، مورد استفاده قرار مي‌گيرد. در مثال زير کليد HKEY_USERS\test که قبلا با تابع RegLoadKey بارگذاري شده بود، Unload مي‌شود.

    //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

  12. فرمت خروجي تابع RegRestoreKey: اين تابع براي بازگرداني محتواي يک کليد رجيستري از يک فايل مورد استفاده قرار مي‌گيرد. در مثال زير محتواي مسير HKEY_LOCAL_MACHINE\temp از فايل C:\temp بازگرداني شده است.

    //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

  13. فرمت خروجي تابع RegSaveKey: اين تابع براي ذخيره محتواي يک کليد رجيستري، در يک فايل استفاده مي‌شود. مثال زير را مشاهده فرماييد:

    //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

  14. فرمت خروجي تابع RegReplaceKey: اين تابع فايل hive يک مسير رجيستري را با يک فايل hive ديگر جايگزين مي‌کند. به عنوان مثال خروجي زير را ببينيد:

    //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

  15. فرمت خروجي تابع RegDeleteKey: اين تابع براي حذف يک کليد از رجيستري مورد استفاده قرار مي‌گيرد. به عنوان مثال خروجي زير نشان مي‌دهد که برنامه تحت تحليل کليد HKEY_LOCAL_MACHINE\Software\temp را از رجيستري حذف کرده است.

    //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

  16. فرمت خروجي تابع RegCreateKeyEx: از اين تابع براي ساختن يک کليد رجيستري استفاده مي‌شود. اگر کليد داده شده به اين تابع، قبلا وجود داشته باشد، کليد جديدي ساخته نمي‌شود، و دستگيره همان کليد برگردانده مي‌شود. به عنوان مثال خروجي زير را ببينيد:

    //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

  17. فرمت خروجي تابع RegOpenKeyEx: از اين تابع براي گرفتن دستگيره‌اي به يک کليد رجيستري استفاده مي‌شود. گرفتن اين دستگيره براي کار با ساير توابع رجيستري لازم است. به عنوان مثال خروجي زير نشان مي‌دهد که برنامه تحت تحليل يک دستگيره به مسير HKEY_LOCAL_MACHINE\Software\Microsoft\OLE گرفته است.

    //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

  18. فرمت خروجي تابع RegSetKeySecurity: از اين تابع براي تغيير مجوزهاي دسترسي يک کليد رجيستري استفاده مي‌شود. به عنوان مثال خروجي زير نشان مي‌دهد که برنامه تحت تحليل مجوزهاي دسترسي مسير HKEY_LOCAL_MACHINE\SOFTWARE\temp را تغيير داده است.

    //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

  19. فرمت خروجي تابع RegGetKeySecurity: اين تابع براي خواندن مجوزهاي دسترسي يک کليد مورد استفاده قرار مي‌گيرد. به عنوان نمونه، خروجي زير نشان مي‌دهد که برنامه تحت تحليل مجوزهاي دسترسي مسير HKEY_LOCAL_MACHINE\SOFTWARE را خوانده است.

    //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

  20. فرمت خروجي تابع RegCloseKey: از اين تابع براي بستن دستگيره رجيستري استفاده مي‌شود. در واقع بعد از اتمام کار با يک مسير رجيستري، دستگيره آن بايد بسته شود. به عنوان مثال، خروجي زير را مشاهده فرماييد:

    //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

نمی‌توانید پاسخی پیدا کنید؟ آیا به دنبال مقاله خاصی هستید که در سؤالات عمومی قرار دارد؟ فقط پوشه ها و دسته بندی های مختلف مربوطه را مرور کنید و سپس مقاله مورد نظر خود را پیدا خواهید کرد.
تمامی حقوق مادی و معنوی این سایت متعلق به شرکت مهندسی دنیای فناوری امن ویرا می‌باشد.