R-Studio සඳහා අභිරුචි දන්නා ගොනු වර්ගයක් නිර්මාණය කිරීම. අත්සන මගින් ගොනු වර්ගයක් තීරණය කිරීම ගොනු අත්සනක් යනු කුමක්ද?

සංකල්පය " මැජික් අංකය"ක්‍රමලේඛනයේ දී අර්ථ තුනක් ඇත:

  • දත්ත අත්සන
  • තෝරා ගන්නා ලදී අද්විතීය අගයන්, අනෙකුත් අගයන් හා සමාන නොවිය යුතු (උදා UUID)
  • නරක ක්‍රමලේඛන පුහුණුව.

දත්ත අත්සන

මැජික් අංකය, හෝ අත්සන, - සම්පතක් හෝ දත්තයක් අනන්‍ය ලෙස හඳුනා ගැනීමට භාවිතා කරන පූර්ණ සංඛ්‍යාවක් හෝ පෙළ නියතයකි. එවැනි අංකයකට කිසිදු අර්ථයක් නොමැති අතර එය සුදුසු සන්දර්භය හෝ අදහස් දැක්වීමකින් තොරව වැඩසටහන් කේතයේ දිස්වන්නේ නම් එය ව්‍යාකූලත්වයට හේතු විය හැකි අතර, එය තවත් අගයකට, ආසන්න අගයකට වෙනස් කිරීමට උත්සාහ කිරීම සම්පූර්ණයෙන්ම අනපේක්ෂිත ප්‍රතිවිපාකවලට තුඩු දිය හැකිය. මේ හේතුව නිසා, එවැනි සංඛ්යා උත්ප්රාසාත්මක ලෙස මැජික් සංඛ්යා ලෙස හැඳින්වේ. වර්තමානයේ, මෙම නම පදයක් ලෙස ස්ථිරව පිහිටුවා ඇත. උදාහරණයක් ලෙස, ඕනෑම සම්පාදනය කරන ලද ජාවා භාෂා පන්තියක් ෂඩාස්රාකාර "මැජික් අංකය" 0xCAFEBABE සමඟ ආරම්භ වේ. දෙවන පුළුල් ලෙස දන්නා උදාහරණය ඕනෑම ය ක්රියාත්මක කළ හැකි ගොනුව OS Microsoft Windowsදිගුව සමඟ .exe ආරම්භ වන්නේ 0x4D5A බයිට් අනුක්‍රමයෙනි (එය ASCII අක්ෂර MZ ට අනුරූප වේ - MS-DOS හි නිර්මාතෘවරයෙකු වන Mark Zbikowski ගේ මුලකුරු). අඩු ප්‍රකට උදාහරණයක් වන්නේ Microsoft Visual C++ හි (Microsoft Visual Studio හි 2005 අනුවාදයේ සිට) 0xDEADBEEF ලිපිනය දෝශ නිරාකරණ ප්‍රකාරයේ ඇති UNInitialized pointer ය.

UNIX වගේ මෙහෙයුම් පද්ධතිගොනු වර්ගය සාමාන්‍යයෙන් තීරණය වන්නේ එහි නමේ දිගුව නොසලකා ගොනු අත්සන මගිනි. ඔවුන් ගොනු අත්සන අර්ථ නිරූපණය කිරීම සඳහා සම්මත ගොනු උපයෝගීතාවයක් සපයයි.

නරක ක්‍රමලේඛන පුහුණුව

“මැජික් සංඛ්‍යා” ලෙසද හඳුන්වනු ලබන්නේ මූලාශ්‍ර පෙළෙහි සංඛ්‍යාත්මක අගයක් ඇති වූ විට සහ එයින් අදහස් කරන්නේ කුමක්ද යන්න පැහැදිලි නැති විට නරක ක්‍රමලේඛන භාවිතයකි. උදාහරණයක් ලෙස, ජාවා හි ලියා ඇති මෙවැනි ස්නිපට් එකක් නරක වනු ඇත:

DrawSprite (53, 320, 240);

අවසාන int SCREEN_WIDTH = 640 ; අවසාන int SCREEN_HEIGHT = 480 ; අවසාන int SCREEN_X_CENTER = SCREEN_WIDTH / 2 ; අවසාන int SCREEN_Y_CENTER = SCREEN_HEIGHT / 2 ; අවසාන int SPRITE_CROSSHAIR = 53 ; ... drawSprite(SPRITE_CROSSHAIR, SCREEN_X_CENTER, SCREEN_Y_CENTER);

දැන් එය පැහැදිලිය: මෙම රේඛාව තිරයේ මධ්‍යයේ ස්ප්‍රයිට් - දර්ශනයේ හරස්කඩක් පෙන්වයි. බොහෝ ක්‍රමලේඛන භාෂා වලදී, එවැනි නියතයන් සඳහා භාවිතා කරන සියලුම අගයන් සම්පාදනය කරන අවස්ථාවේදී ගණනය කර අගයන් භාවිතා කරන ස්ථානවලට ආදේශ කරනු ලැබේ. එබැවින්, මූලාශ්ර පාඨයේ එවැනි වෙනසක් වැඩසටහනේ කාර්ය සාධනය පිරිහීමට ලක් නොවේ.

ඊට අමතරව, මැජික් අංක යනු වැඩසටහනක දෝෂ වල විභව ප්‍රභවයකි:

  • ක්‍රමලේඛයක එකම මැජික් අංකය එක් වරකට වඩා භාවිතා කරන්නේ නම් (හෝ භාවිතා කළ හැකි නම්), එය වෙනස් කිරීම එක් එක් සිදුවීමට සංස්කරණය කිරීම් අවශ්‍ය වේ (නම් කරන ලද නියතයේ අගයට එක් සංස්කරණයක් වෙනුවට). සියලුම සිදුවීම් නිවැරදි නොකළහොත්, අවම වශයෙන් එක් දෝෂයක් සිදුවනු ඇත.
  • අවම වශයෙන් එක් සිදුවීමක දී, මැජික් අංකය මුලින් වැරදි ලෙස අක්ෂර වින්‍යාස කළ හැකි අතර, මෙය හඳුනා ගැනීම තරමක් අපහසු වේ.
  • මැජික් අංකය ව්‍යංග පරාමිතියක් හෝ වෙනත් මැජික් අංකයක් මත රඳා පවතී. පැහැදිලිව හඳුනා නොගත් මෙම පරායත්තතා සෑහීමකට පත් නොවන්නේ නම්, අවම වශයෙන් එක් දෝෂයක් හෝ සිදුවනු ඇත.
  • එක් මැජික් අංකයක සිදුවීම් වෙනස් කිරීමේදී, ස්වාධීන නමුත් එකම සංඛ්‍යාත්මක අගයක් ඇති තවත් මැජික් අංකයක් වැරදීමකින් වෙනස් කළ හැකිය.

මැජික් අංක සහ හරස් වේදිකාව

සමහර විට මැජික් අංක හරස් වේදිකා කේතයට හානි කරයි. කාරණය නම්, C හි, 32- සහ 64-bit මෙහෙයුම් පද්ධතිවල, char වල ප්‍රමාණය , කෙටි සහ දිගු දිගු වර්ග සහතික කර ඇති අතර, int , long , size_t සහ ptrdiff_t වල ප්‍රමාණය වෙනස් විය හැක (පළමු දෙක සඳහා, සම්පාදක සංවර්ධකයින්ගේ මනාපයන් මත පදනම්ව, අවසාන දෙක සඳහා - ඉලක්ක පද්ධතියේ බිට් ධාරිතාව මත පදනම්ව). පැරණි හෝ දුර්වල ලෙස ලියා ඇති කේතයේ, වර්ගයක ප්‍රමාණය දැක්වෙන “මැජික් අංක” තිබිය හැකිය - වෙනස් බිට් ධාරිතාවක් සහිත යන්ත්‍ර වෙත ගමන් කරන විට, ඒවා සියුම් දෝෂ වලට තුඩු දිය හැකිය.

උදාහරණ වශයෙන්:

const size_t NUMBER_OF_ELEMENTS = 10 ; දිගු a [NUMBER_OF_ELEMENTS]; memset(a, 0, 10 * 4); // වැරදි - දිගු බයිට් 4 ක් ලෙස උපකල්පනය කෙරේ, මූලද්‍රව්‍යවල මැජික් අංකය භාවිතා වේ memset(a, 0, NUMBER_OF_ELEMENTS * 4); // වැරදි - දිග බයිට් 4ක් යැයි උපකල්පනය කෙරේ memset(a, 0, NUMBER_OF_ELEMENTS * size of(දිග)); // සම්පූර්ණයෙන්ම නිවැරදි නොවේ - වර්ගයේ නම අනුපිටපත් කිරීම (වර්ගය වෙනස් වුවහොත්, ඔබට එය මෙහිද වෙනස් කිරීමට සිදුවේ) memset (a , 0 , NUMBER_OF_ELEMENTS * size of (a [ 0 ])); // නිවැරදි, ශුන්‍ය නොවන ප්‍රමාණයේ ගතික අරා සඳහා ප්‍රශස්ත memset(a, 0, sizeof(a)); // නිවැරදි, ස්ථිතික අරා සඳහා ප්‍රශස්ත

මැජික් නොවන ඉලක්කම්

සියලුම සංඛ්යා නියත බවට පරිවර්තනය කිරීම අවශ්ය නොවේ. උදාහරණයක් ලෙස, සඳහා කේතය

දන්නා වර්ගවල ගොනු පරිලෝකනය කිරීමෙන් සෙවීම (හෝ, බොහෝ විට පවසන පරිදි, අත්සන මගින් ගොනු සෙවීම) R-Studio දත්ත ප්‍රතිසාධන උපයෝගීතාවයේ භාවිතා කරන වඩාත් ඵලදායී එකකි. ඩිරෙක්ටරි ව්‍යුහය සහ ගොනු නාම පිළිබඳ තොරතුරු අර්ධ වශයෙන් හෝ සම්පූර්ණයෙන්ම අස්ථානගත වී ඇති (හානි වී ඇති) අවස්ථාවක දී ලබා දී ඇති අත්සනක් භාවිතා කිරීමෙන් යම් ආකාරයක ගොනු ප්‍රතිසාධනය කිරීමට ඔබට ඉඩ සලසයි.

සාමාන්යයෙන්, තැටි කොටස් වගුව ගොනු පිහිටීම තීරණය කිරීමට භාවිතා කරයි. ඔබ තැටියක් පොතක් සමඟ සංසන්දනය කරන්නේ නම්, කොටස් වගුව එහි අන්තර්ගත වගුවට සමාන වේ. ස්කෑන් කරන විට, R-Studio නිශ්චිත අත්සන් භාවිතා කරමින් තැටි කොටස් වගුවේ දන්නා ගොනු වර්ග සොයයි. සෑම ගොනු වර්ගයකම පාහේ අනන්‍ය අත්සනක් හෝ දත්ත රටාවක් තිබීම මෙය කළ හැකි ය. ගොනු අත්සන් ගොනුවේ ආරම්භයේ නිශ්චිත ස්ථානයක දක්නට ලැබෙන අතර බොහෝ අවස්ථාවලදී ගොනුවේ අවසානයේද දක්නට ලැබේ. ස්කෑන් කරන විට, R-Studio සොයාගත් දත්ත දන්නා ගොනු වර්ගවල අත්සන් සමඟ ගැලපේ, එමඟින් ඒවා හඳුනා ගැනීමට සහ ඒවායේ දත්ත ප්‍රතිසාධනය කිරීමට ඉඩ සලසයි.

දන්නා ගොනු වර්ග පරිලෝකනය කිරීම සඳහා තාක්ෂණය භාවිතා කරමින්, R-Studio මඟින් ඔබට නැවත ආකෘතිකරණය කර ඇති සහ කොටස් වගු උඩින් ලියැවී ඇති තැටි වලින් දත්ත ලබා ගැනීමට ඉඩ සලසයි. තව ද, තැටි කොටසක් උඩින් ලියැවී ඇත්නම්, හානි වී හෝ මකා දැමුවහොත්, දන්නා ගොනු වර්ග පරිලෝකනය කිරීම එකම විකල්පය වේ.

නමුත් සෑම දෙයක්ම පාහේ එහි අඩුපාඩු ඇති අතර, R-Studio හි භාවිතා කරන ලද දන්නා ගොනු වර්ග ව්යතිරේකයක් නොවේ. එබැවින්, දන්නා ගොනු වර්ග පරිලෝකනය කරන විට, R-Studio ඔබට ඛණ්ඩනය නොකළ ගොනු පමණක් නැවත ලබා ගැනීමට ඉඩ සලසයි, නමුත්, දැනටමත් සඳහන් කර ඇති පරිදි, බොහෝ අවස්ථාවලදී මෙය හැකි නවතම ක්රමයකි.

R-Studio හි දැනටමත් වඩාත් පොදු ගොනු වර්ගවල අත්සන් ඇතුළත් වේ (බලන්න සම්පූර්ණ ලැයිස්තුවදන්නා වර්ගවල ගොනු R-Studio ඔන්ලයින් උදවු කොටසෙහි සොයා ගත හැක.)

අවශ්ය නම්, පරිශීලකයාට R-Studio වෙත නව ගොනු වර්ග එකතු කළ හැකිය. උදාහරණයක් ලෙස, ඔබට අනන්‍ය වර්ගයක ගොනු සොයා ගැනීමට අවශ්‍ය නම්, හෝ R-Studio හි අවසන් නිකුත් කළ දිනට පසුව සංවර්ධනය කළ ඒවා නම්, ඔබට දන්නා වර්ගවල ගොනුවලට ඔබේම අත්සන එක් කළ හැක. මෙම ක්රියාවලිය ඊළඟට සාකච්ඡා කරනු ඇත.

දන්නා වර්ගවල අභිරුචි ගොනු
දන්නා ගොනු වර්ගවල අභිරුචි ගොනු අත්සන් ගබඩා කර ඇත XML ගොනුව e සිටුවම් සංවාද කොටුවේ දක්වා ඇත. අත්සනක් එකතු කිරීම කොටස් දෙකකින් සමන්විත වේ:

  1. ගොනුවේ ආරම්භයේ සහ තිබේ නම්, ගොනුවේ අවසානයේ පිහිටා ඇති ගොනු අත්සන තීරණය කිරීම.
  2. ගොනු අත්සනක් සහ ගොනු වර්ගය පිළිබඳ වෙනත් තොරතුරු අඩංගු XML ගොනුවක් ජනනය කරන්න.

මේ සියල්ල R-Studio භාවිතයෙන් කළ හැකිය. ඒ අතරම, ඔබ XML ලේඛන රචනා කිරීමේ (සංස්කරණය කිරීමේ) ක්ෂේත්‍රයේ හෝ ෂඩාස්රාකාර සංස්කරණ ක්ෂේත්‍රයේ ප්‍රවීණයෙකු වීමට අවශ්‍ය නැත - මෙම මාර්ගෝපදේශයේ (ලිපියේ), එය පරිශීලකයා ඉලක්ක කර ගෙන ඇත. ඇතුල්වීමේ මට්ටම, මෙම ක්රියාවලියේ සියලුම අදියරයන් විස්තරාත්මකව සාකච්ඡා කරනු ඇත.

උදාහරණය: MP4 ගොනුවක් සඳහා අත්සනක් එකතු කිරීම (XDCam-EX Codec)
Sony XDCAM-EX භාවිතයෙන් සාදන ලද .MP4 ගොනුවක උදාහරණය භාවිතා කරමින් ගොනු අත්සනක් එකතු කිරීම දෙස බලමු. උදාහරණයක් ලෙස, ඔබේ පරිගණකයේ දෘඪ තැටියේ සුරැකීමට ඔබ තවමත් කළමනාකරණය කර නොමැති ගොනු සඳහා SD කාඩ්පතට හානි වූ විට ඔබට එය භාවිතා කළ හැකිය.

පළමු අදියර: ගොනු අත්සන තීරණය කිරීම
ගොනු අත්සන තීරණය කිරීම සඳහා, එකම ආකෘතියේ ගොනු උදාහරණ සලකා බලන්න.

මේවා Sony XDCAM-EX වෙතින් වීඩියෝ ගොනු හතරක් වීමට ඉඩ දෙන්න:
ZRV-3364_01.MP4
ZRV-3365_01.MP4
ZRV-3366_01.MP4
ZRV-3367_01.MP4

සලකා බැලීමේ පහසුව සඳහා, මේවා කුඩා ගොනු වීමට ඉඩ දෙන්න. විශාල ගොනු ෂඩාස්‍රාකාරයෙන් බැලීම වඩාත් අපහසු වේ.

1. R-Studio හි ගොනු විවෘත කරන්න. මෙය සිදු කිරීම සඳහා, එක් එක් ගොනුව මත දකුණු-ක්ලික් කර සන්දර්භය මෙනුවෙන් View/Edit තෝරන්න.

2. අපි ගොනු සංසන්දනය කරමු. අපි ගොනු හතරේම ඇති එකම රටාව සොයමු. ඔහු පෙනී සිටිනු ඇත ගොනු අත්සන. සාමාන්යයෙන්, ගොනු අත්සන් ගොනුවේ ආරම්භයේ දක්නට ලැබේ, නමුත් සමහර විට අවසානයේ.

3. ගොනුවේ ආරම්භයේ ඇති ගොනු අත්සන නිර්වචනය කරන්න. අපගේ උදාහරණයේ, එය ගොනුවේ ආරම්භයේම පිහිටා ඇත. මෙය සැමවිටම සිදු නොවන බව සලකන්න - බොහෝ විට ගොනු අත්සන ගොනුවේ ආරම්භයේ ඇත, නමුත් පළමු පේළියේ (ඕෆ්සෙට්) නොවේ.

පහත පින්තූර වලින්, ගොනු හතරේම අන්තර්ගතය වෙනස් බව පෙනේ, නමුත් ඒවා සියල්ලම එකම ගොනු අත්සනකින් ආරම්භ වේ.


එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න


එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න


එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න


එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න

රූපවල උද්දීපනය කර ඇති ප්‍රදේශය ගොනු අත්සනකි මෙම වර්ගයේගොනු. එය පෙළ සහ ෂඩ් දශම ආකාරයෙන් ඉදිරිපත් කෙරේ.

පෙළ ආකාරයෙන්, ගොනු අත්සන මේ ආකාරයෙන් පෙනේ:
....ftypmp42....mp42........ නොමිලේ

තිත් (“.”) මඟින් පෙළ ආකාරයෙන් නිරූපණය කළ නොහැකි අක්ෂර දක්වයි. එබැවින්, ගොනු අත්සනෙහි ෂඩාස්රාකාර ස්වරූපය සැපයීම ද අවශ්ය වේ:
00 00 00 18 66 74 79 6D 70 34 32 00 00 00 6D 70 34 32 00 00 00 00 00 00 00 08 66 72 65 65

4. ඒ ආකාරයෙන්ම, අපි ගොනු අත්සන නිර්වචනය කරමු, නමුත් ගොනුවේ අවසානයේ දී. එය වෙනස් ගොනු අත්සනක්, වෙනස් දිගක් විය හැක.

පහත පින්තූර ගොනුවේ අවසානයේ ඇති ගොනු අත්සන උද්දීපනය කරයි:


එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න


එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න


එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න


එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න

තෝරාගත් ප්‍රදේශයට පෙර දත්ත (ගොනු අත්සන) ගොනු හතරේම සමාන බව කරුණාවෙන් සලකන්න. මෙය ගොනු අත්සනක් නොවන තාක්ෂණික තොරතුරු වන නමුත්, පින්තූර හතරම (ගොනු) එකම පරාමිතීන් සහිත එකම කැමරාවක් භාවිතයෙන් ගෙන ඇති බව පෙන්නුම් කරයි. සාමාන්‍යයෙන් ගොනු අත්සනකින් තාක්ෂණික තොරතුරු සමඟ ගැළපෙන රටා වෙන්කර හඳුනාගත හැකිය. අපගේ උදාහරණයේ, ගොනු අත්සන ආරම්භ කිරීමට පෙර අවසාන පේළියේ, 'RecordingMode type="සාමාන්‍ය"' යන පෙළ අපට පෙනේ, එය පැහැදිලිව පෙන්නුම් කරන්නේ මෙය යම් ආකාරයක ගොනු පරාමිතියක් මිස අත්සනක් නොවන බවයි. වැරදියට ඇතුළත් නොකිරීමට සෑම විටම මෙම රේඛාව කෙරෙහි විශේෂ අවධානයක් යොමු කරන්න තාක්ෂණික තොරතුරුගොනු අත්සන කොටසක්.

අපගේ නඩුවේදී, ගොනු අත්සන පහත පෙළ වේ:
...
තිත් මඟින් පෙළ ආකාරයෙන් නිරූපණය කළ නොහැකි අක්ෂර පෙන්නුම් කරන බව අපි ඔබට මතක් කරමු.

ෂඩාස්රාකාර වලදී, ගොනු අත්සන මේ ආකාරයෙන් පෙනේ:
3N 2F 4E 6F 6E 52 65 61 6N 54 69 6A 65 4A 65 74 61 3E 0D 0A 00
කරුණාකර සටහන් කරන්න: අත්සන සෑම විටම ගොනුවේ අවසානයේ නොතිබෙනු ඇත.

දෙවන අදියර: දන්නා ගොනු වර්ගයක් විස්තර කරන XML ගොනුවක් නිර්මාණය කිරීම
දැන්, ගොනු අත්සන අර්ථ දැක්වීමෙන් පසුව, ඔබට XML ගොනුවක් සාදා R-Studio හි අනුරූප ගොනු වර්ගය ඇතුළත් කළ හැකිය. මෙය ආකාර දෙකකින් කළ හැකිය:

2.1 බිල්ට් භාවිතා කිරීම චිත්රක සංස්කාරකයගොනු අත්සන්:
මෙවලම් මෙනුවෙන් සිටුවම් අයිතමය තෝරන්න, විවෘත වන සැකසුම් සංවාද කොටුව තුළ, දන්නා ගොනු වර්ග ටැබය ක්ලික් කර පසුව පරිශීලක ගොනු වර්ග සංස්කරණය කරන්න බොත්තම ක්ලික් කරන්න.

එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න

Edit User's File Types සංවාද කොටුවේ Create File Type බොත්තම ක්ලික් කරන්න.
පහත විකල්ප සකසන්න:

  • Id - අද්විතීය ඩිජිටල් හඳුනාගැනීමක්. මෙම අංකයඅහඹු ලෙස තෝරා ගනු ලැබේ; එකම දෙය නම් එය වෙනත් ගොනු වර්ගයක ඩිජිටල් හඳුනාගැනීම් සමඟ නොගැලපීමයි.
  • කණ්ඩායම් විස්තරය - සොයාගත් ගොනු R-Studio හි ඇති කණ්ඩායමයි. ඔබට එක්කෝ සැකසිය හැක නව කණ්ඩායම, හෝ දැනටමත් පවතින ඒවායින් එකක් තෝරන්න. අප සඳහා මෙය "බහු මාධ්ය වීඩියෝ (බහු මාධ්ය: වීඩියෝ)" කණ්ඩායම වනු ඇත.
  • විස්තර - කෙටි විස්තරයගොනු වර්ගය. අපගේ උදාහරණයේ, ඔබට උදාහරණයක් ලෙස, "Sony cam video, XDCam-EX" භාවිතා කළ හැකිය.
  • දිගුව - මෙම වර්ගයේ ගොනු දිගු කිරීම. අපගේ නඩුවේදී - mp4.

විශේෂාංග පරාමිතිය විකල්ප වේ, අපගේ නඩුවේදී අපට එය භාවිතා කිරීමට අවශ්‍ය නොවේ.

එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න

ඊළඟට, ඔබ ආරම්භක සහ අවසන් ගොනු අත්සන ඇතුළත් කළ යුතුය. මෙය සිදු කිරීම සඳහා, ආරම්භ කරන්න සහ ඉන්පසු තෝරන්න සන්දර්භය මෙනුවඅත්සන එකතු කරන්න විධානය.

එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න

ඉන්පසු ක්ෂේත්‍රය මත දෙවරක් ක්ලික් කරන්න<пустая сигнатура> () සහ සුදුසු පෙළ ඇතුළත් කරන්න.

එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න

ඉන්පසු අවසන් ගොනු අත්සන සාදන්න. From තීරුවේ 21 ඇතුලත් කිරීමට වග බලා ගන්න.

එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න

දන්නා ගොනු වර්ග සඳහා ඔබ ඔබේම අත්සනක් සාර්ථකව නිර්මාණය කර ඇත.

දැන් ඔබ එය සුරැකිය යුතුය. ක්‍රම දෙකක් තිබේ: ඔබට එය සුරකින්න බොත්තම ක්ලික් කිරීමෙන් සැකසීම් සංවාද කොටුවේ ප්‍රධාන පටිත්තෙහි දක්වා ඇති පෙරනිමි ගොනුවට සුරැකිය හැක. නැතිනම් Save As... බොත්තම ක්ලික් කර අත්සන වෙනත් ගොනුවක සුරකින්න.

2.2 දන්නා ගොනු වර්ගයක් විස්තර කරන XML ගොනුවක් අතින් නිර්මාණය කිරීම:
නිර්මාණය කිරීම සඳහා මෙම ගොනුවඅපි XML අනුවාදය 1.0 සහ UTF-8 කේතනය භාවිතා කරමු. එය කුමක්දැයි ඔබ නොදන්නේ නම් බලාපොරොත්තු සුන් නොකරන්න - ඕනෑම එකක් විවෘත කරන්න පෙළ සංස්කාරකය(උදාහරණයක් ලෙස, Notepad.exe) සහ පළමු පේළියේ පහත පෙළ ඇතුළත් කරන්න:

මීළඟට අපි ගොනු වර්ගය (FileType) නිර්වචනය කරන XML ටැගයක් සාදන්නෙමු. කලින් විස්තර කළ XML ගුණාංග සැලකිල්ලට ගනිමින්, ටැගය මේ ආකාරයෙන් පෙනෙනු ඇත:

අපි එය වහාම ඇතුල් කරමු

ඊළඟට, අපි ගොනු අත්සන නිර්වචනය කරමු (ටැගය ) ආරම්භක අත්සන (ගොනුවේ ආරම්භයේ) ටැගය තුළ ඇත කිසිදු ගුණාංගයකින් තොරව. අපි අත්සනෙහි පෙළ වර්ගය භාවිතා කරමු, නමුත් ඒ සමඟම පෙළ ආකාරයෙන් නිරූපණය කළ නොහැකි ෂඩාස්රාකාර අක්ෂර ආදේශ කරමු. එක් එක් ෂඩ් දශම අක්ෂරයකට පෙර අපි "\x" ටැගය ඇතුල් කරන්නෙමු ගොනු අත්සනක් සමඟ මේ ආකාරයෙන් පෙනෙනු ඇත:

තිබේ නම්, ඔබ අවසන් අත්සන ද නිර්වචනය කළ යුතුය (ගොනුව අවසානයේ). මෙය එකම ටැගය භාවිතා කරයි, නමුත් "සිට" මූලද්‍රව්‍යයක් සහ "අවසාන" ගුණාංගයක් සමඟින්. එය මේ ආකාරයෙන් පෙනෙනු ඇත:

අවසාන ගොනු අත්සනෙහි අකුරු නොවන අකුරු අඩංගු නොවූ නමුත් slashes සහ ත්‍රිකෝණ වරහන් අඩංගු වූ බව මතක තබා ගන්න. XML වාක්‍ය ඛණ්ඩයේ ව්‍යාකූලත්වය සහ දෝෂ මඟහරවා ගැනීම සඳහා, අපි අත්සනෙහි "/", " අක්ෂර ආදේශ කරන්නෙමු.<" и ">"ඔවුන්ගේ ෂඩාස්රාකාර අගයන්.

අවසානයේදී, ගොනු අත්සන් කිරීමෙන් පසුව, FileType සහ FileTypeList යන වසා දැමීමේ ටැග් තිබිය යුතුය:

එබැවින් සම්පූර්ණ ගොනුව මෙලෙස විය යුතුය:


\x00\x00\x00\x18ftypmp42\x00\x00\x00\x00mp42\x00\x00\x00\x00\x00\x00\x00\x08නොමිලේ
\x3C\x2FNonRealTimeMeta\x3E\x0D\x0A\x00

මතක තබා ගන්න: XML වාක්‍ය ඛණ්ඩය සිද්ධි සංවේදී වේ, එබැවින් නිවැරදි ටැගය වනු ඇත , නමුත් නැහැ .

.xml දිගුව සමඟ ගොනුව පෙළ ආකෘතියෙන් සුරකිමු. උදාහරණයක් ලෙස: SonyCam.xml.

දන්නා ගොනු වර්ග සඳහා අපි අපේම අත්සනක් සාර්ථකව නිර්මාණය කර ඇත්තෙමු. අභිරුචි ගොනු වර්ගයක් නිර්මාණය කිරීමේ මූලික මූලධර්ම තේරුම් ගැනීමට මෙම උදාහරණය ප්‍රමාණවත් වේ. වඩාත් පළපුරුදු පරිශීලකයින්ට XML අනුවාදය 2.0 භාවිතා කළ හැකිය. ඔබට R-Studio මාර්ගගත උදවු අංශයෙන් මේ ගැන වැඩිදුර කියවිය හැක.

පියවර 3: දන්නා ගොනු වර්ගයක් විස්තර කරන ගොනුවක් පරීක්ෂා කිරීම සහ එකතු කිරීම
මීළඟ පියවර වන්නේ ඔබේ XML ගොනුව R-Studio වෙත එක් කිරීමයි (උඩුගත කිරීම). මෙම අවස්ථාවේදී, එය ස්වයංක්රීයව පරීක්ෂා කරනු ලැබේ.

අපි කලින් අදියරේදී නිර්මාණය කළ XML ගොනුව R-Studio වෙත පූරණය කරමු. මෙය සිදු කිරීම සඳහා, මෙවලම් මෙනුවේ සිටුවම් අයිතමය තෝරන්න. සැකසුම් සංවාද කොටුවේ ප්‍රධාන පටිත්තෙහි පරිශීලක ගොනු වර්ග ප්‍රදේශය තුළ, අප විසින් සාදන ලද XML ගොනුව එක් කරන්න (SonyCam.xml). Apply බොත්තම ක්ලික් කරන්න.

එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න

2. නව ගොනු වර්ගයක් බාගත කිරීම සඳහා වන ඉල්ලීමට ඔව් පිළිතුරු දෙන්න.

එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න

3. ගොනු වර්ගය සාර්ථකව පූරණය වී ඇති බව තහවුරු කර ගැනීමට, සැකසීම් සංවාද කොටුවේ දන්නා ගොනු වර්ග ටැබය මත ක්ලික් කරන්න. අපි බහුමාධ්‍ය වීඩියෝ කණ්ඩායමට ගොනු වර්ගය එකතු කළ බව මතක තබා ගන්න (බහුමාධ්‍ය: වීඩියෝ). මෙම කණ්ඩායම (ෆෝල්ඩරය) පුළුල් කිරීමෙන් පසුව, අපි XML ගොනුව සෑදීමේදී සඳහන් කළ විස්තරය සහිත අංගයක් දැකිය යුතුය: Sony cam video, XDCam-EX (.mp4).

එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න


එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න

ගොනු සින්ටැක්ස් හි කිසියම් දෝෂයක් තිබේ නම්, ඔබට අනුරූප පණිවිඩයක් පෙනෙනු ඇත:

එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න

මෙම අවස්ථාවේදී, දෝෂ සඳහා ඔබේ XML ගොනුව නැවත පරීක්ෂා කරන්න. මතක තබා ගන්න: XML වාක්‍ය ඛණ්ඩය සිද්ධි සංවේදී වන අතර සෑම ටැගයකම අවසානයේ අවසන් ටැගයක් තිබිය යුතුය.

පියවර 4: දන්නා ගොනු වර්ගයක් විස්තර කරන ගොනුව පරීක්ෂා කිරීම
අප විසින් සාදන ලද අභිරුචි ගොනු වර්ගයෙහි නිවැරදි භාවය පරීක්ෂා කිරීම සඳහා, ඉවත් කළ හැකි USB ෆ්ලෑෂ් ධාවකය මත අපගේ .mp4 ගොනු සොයා ගැනීමට උත්සාහ කරමු.

1. Windows Vista හෝ Windows 7 යටතේ, තැටියේ සම්පූර්ණ (ඉක්මන් නොවන) හැඩතල ගැන්වීම හෝ තැටි අවකාශය පිරිසිදු කිරීමේ උපයෝගිතා භාවිතා කරන්න (උදාහරණයක් ලෙස, R-Wipe & Clean) සම්පූර්ණ ඉවත් කිරීමතැටියේ ඇති සියලුම දත්ත. ඉඩ USB තැටිය FAT32 හි ආකෘතිගත කර ඇත (සෙවූ ගොනු වල ප්‍රමාණය 2 GB නොඉක්මවන).

2. අපි එය පිටපත් කරමු පරීක්ෂණ ගොනුතැටියට සහ පරිගණකය නැවත ආරම්භ කිරීමට, එවිට හැඹිලි මතකයේ අන්තර්ගතය තැටියේ සුරැකේ. ඔබට අක්රිය කිරීමටද හැකිය බාහිර ධාවකයඉන්පසු එය නැවත සම්බන්ධ කරන්න.

3. OS තුළ, ධාවකය නිර්වචනය කරනු ලැබේ, උදාහරණයක් ලෙස, තාර්කික ධාවකය F:\.

4. අපි R-Studio දියත් කරමු. අපගේ ධාවකය තෝරන්න (F:\) සහ ස්කෑන් බොත්තම ක්ලික් කරන්න

එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න

5. ස්කෑන් සංවාද කොටුවේ, (ගොනු පද්ධතිය) ප්‍රදේශයේ, වෙනස් කරන්න... බොත්තම ක්ලික් කර සියලුම කොටු සලකුණු නොකරන්න. මේ ආකාරයට අපි කොටස් වගුව භාවිතයෙන් ගොනු පද්ධති සහ ගොනු සෙවීම අක්‍රිය කරන්නෙමු.
එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න

6. දන්නා ගොනු වර්ග සඳහා අමතර සෙවීම පිරික්සුම් කොටුව පරීක්ෂා කරන්න. මෙය R-Studio හට පරිලෝකනය කිරීමේදී දන්නා ගොනු වර්ග සෙවීමට ඉඩ සලසයි.

7. ස්කෑන් කිරීම ආරම්භ කිරීමට, ස්කෑන් බොත්තම ක්ලික් කරන්න.

8. R-Studio තැටිය ස්කෑන් කරන තෙක් අපි බලා සිටිමු. ස්කෑන් තොරතුරු ටැබය ස්කෑන් කිරීමේ ප්‍රගතිය (ප්‍රගතිය) පෙන්වයි.


එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න

9. ස්කෑන් කිරීම සම්පූර්ණ වූ පසු, අමතර සොයාගත් ගොනු මූලද්‍රව්‍යය තෝරා එය මත දෙවරක් ක්ලික් කරන්න.


එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න

10. අපගේ පරීක්ෂණ ගොනු Sony cam වීඩියෝ, XDCam-EX ෆෝල්ඩරයේ (හෝ දෙවන අදියරේ දක්වා ඇති ගොනු වර්ගය විස්තරයට අනුරූප වන වෙනත් නමක් සහිත ෆෝල්ඩරයක) ස්ථානගත වනු ඇත.


එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න

ගොනු නාම, දින සහ ස්ථාන (ෆෝල්ඩර) ප්‍රතිසාධනය නොකළ නිසා ඔබට පෙනෙනවා මෙම තොරතුරුගොනු පද්ධතියේ ගබඩා කර ඇත. එබැවින්, R-Studio සෑම ගොනුවක්ම නව නමකින් ස්වයංක්‍රීයව පෙන්වනු ඇත.

කෙසේ වෙතත්, ගොනු වල අන්තර්ගතයට හානි නොවන බව පැහැදිලිය. මෙය සත්‍යාපනය කිරීම සඳහා, අපි ඒවා සුදුසු වැඩසටහනක විවෘත කරමු, උදාහරණයක් ලෙස VLC මාධ්‍ය වාදකය.


එය විශාල කිරීමට රූපය මත ක්ලික් කරන්න

නිගමනය
R-Studio හි දන්නා ගොනු වර්ග සඳහා පරිලෝකනය කිරීමේ හැකියාව ඔබට ගොනු පද්ධති උඩින් ලියැවී ඇති තැටියකින් පවා දත්ත ප්‍රතිසාධනය කිරීමට ඉඩ සලසයි. ඔබට ඒවායේ අත්සන භාවිතයෙන් ඉතා ඵලදායී ලෙස ලිපිගොනු සෙවිය හැක, අපගේ උදාහරණයේ දී මෙන්, ප්‍රතිසාධනය කෙරෙන ගොනු වර්ගය ඔබ හරියටම දන්නේ නම් එය විශේෂයෙන් ප්‍රයෝජනවත් වේ. අභිරුචි ගොනු වර්ග සෑදීමේ හැකියාව ඔබට දන්නා ගොනු වර්ග ලැයිස්තුවට නිශ්චිත ගොනු අත්සනක් ඇති ඕනෑම ගොනුවක් එක් කිරීමට ඉඩ සලසයි.

rarjpeg වැනි ලිපිගොනු ගැන බොහෝ දෙනෙක් අසා ඇති.මෙය jpeg රූපයක් සහ rar archive එකක් ඉතා සමීපව ඇලවූ විශේෂ ගොනු වර්ගයකි.තොරතුරු සම්ප්‍රේෂණය කිරීමේ සත්‍යය වසන් කිරීමට මෙය කදිම කන්ටේනරයකි.මෙය භාවිතයෙන් rarjpeg එකක් සාදාගත හැක. පහත විධාන:

UNIX: cat image1.jpg archive.rar > image2.jpg
වින්ඩෝස්: පිටපත /b image1.jpg+archive.rar image2.jpg

නැතහොත් ඔබට හෙක්ස් සංස්කාරකයක් තිබේ නම්.

ඇත්ත වශයෙන්ම, තොරතුරු සම්ප්රේෂණය කිරීමේ කාරනය සැඟවීමට, ඔබට JPEG ආකෘතිය පමණක් නොව, තවත් බොහෝ අය භාවිතා කළ හැකිය. සෑම ආකෘතියකටම තමන්ගේම ලක්ෂණ ඇත, එම නිසා එය බහාලුම් භූමිකාව සඳහා සුදුසු හෝ නොවිය හැකිය. ඔබට වඩාත් ජනප්‍රිය ආකෘතිවලින් අලවන ලද ලිපිගොනු සොයා ගත හැකි ආකාරය හෝ ඇලවීමේ කාරණය සඳහන් කරන්නේ කෙසේදැයි මම විස්තර කරමි.

ඒකාබද්ධ ගොනු හඳුනාගැනීමේ ක්රම කාණ්ඩ තුනකට බෙදිය හැකිය:

  1. EOF සලකුණෙන් පසු ප්‍රදේශය පරීක්ෂා කිරීමේ ක්‍රමය. බොහෝ ජනප්‍රිය ගොනු ආකෘති වලට ඊනියා ගොනුවේ අවසාන සලකුණක් ඇත, එය අපේක්ෂිත දත්ත පෙන්වීම සඳහා වගකිව යුතුය. උදාහරණයක් ලෙස, ඡායාරූප නරඹන්නන් මෙම සලකුණු කාරකය දක්වා සියලුම බයිට් කියවන නමුත්, ඉන් පසුව ඇති ප්‍රදේශය නොසලකා හරිනු ලැබේ. මෙම ක්‍රමය පහත දැක්වෙන ආකෘති සඳහා සුදුසු වේ: JPEG, PNG, GIF, ZIP, RAR, PDF.
  2. ගොනු විශාලත්වය පරීක්ෂා කිරීමේ ක්රමය. සමහර ආකෘතිවල ව්යුහය (ශ්රව්ය සහ දෘශ්ය බහාලුම්) ඔබට සැබෑ ගොනු ප්රමාණය ගණනය කිරීමට සහ මුල් ප්රමාණය සමඟ සංසන්දනය කිරීමට ඉඩ සලසයි. ආකෘති: AVI, WAV, MP4, MOV.
  3. CFB ගොනු පරීක්ෂා කිරීමේ ක්රමය. CFB හෝ Compound File Binary Format යනු මයික්‍රොසොෆ්ට් විසින් සංවර්ධනය කරන ලද ලේඛන ආකෘතියකි, එය තමන්ගේම ගොනු පද්ධතියක් සහිත බහාලුමක් වේ. මෙම ක්‍රමය පදනම් වන්නේ ගොනුවක විෂමතා හඳුනා ගැනීම මතය.

ගොනුවක් අවසන් වූ පසු ජීවයක් තිබේද?

JPEG

මෙම ප්රශ්නයට පිළිතුර සොයා ගැනීම සඳහා, ඒකාබද්ධ ගොනු වල "මුතුන්මිත්තන්" වන ආකෘතියේ පිරිවිතරයන් සොයා බැලීම සහ එහි ව්යුහය තේරුම් ගැනීම අවශ්ය වේ. ඕනෑම JPEG 0xFF 0xD8 අත්සනින් ආරම්භ වේ.

මෙම අත්සනට පසුව සේවා තොරතුරු, විකල්ප වශයෙන් රූප නිරූපකයක් සහ අවසාන වශයෙන් සම්පීඩිත රූපය ඇත. මෙම ආකෘතියේ, රූපයේ අවසානය 0xFF 0xD9 බයිට් දෙකක අත්සනකින් සලකුණු කර ඇත.

PNG

PNG ගොනුවේ පළමු බයිට අට පහත අත්සන මගින් අල්ලාගෙන ඇත: 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A. දත්ත ප්‍රවාහය අවසන් කරන අවසන් අත්සන: 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82.

RAR

සියලුම rar ලේඛනාගාර සඳහා පොදු අත්සන: 0x52 0x61 0x72 0x21 (Rar!). එය පසුව සංරක්ෂිත අනුවාදය සහ අනෙකුත් අදාළ දත්ත පිළිබඳ තොරතුරු පැමිණේ. ලේඛනාගාරය අවසන් වන්නේ 0x0A, 0x25, 0x25, 0x45, 0x4F, 0x46 යන අත්සනින් බව පර්යේෂණාත්මකව තීරණය කරන ලදී.

ආකෘති වගුව සහ ඒවායේ අත්සන්:
මෙම ආකෘතිවල ඇලවීම සඳහා පරීක්ෂා කිරීමේ ඇල්ගොරිතම අතිශයින්ම සරල ය:

  1. ආරම්භක අත්සන සොයන්න;
  2. අවසාන අත්සන සොයන්න;
  3. අවසාන අත්සනින් පසුව දත්ත නොමැති නම්, ඔබගේ ගොනුව පිරිසිදු වන අතර ඇමුණුම් අඩංගු නොවේ! එසේ නොමැති නම්, අවසාන අත්සනින් පසුව වෙනත් ආකෘති සොයා බැලීම අවශ්ය වේ.

GIF සහ PDF

PDF ලේඛනයක EOF සලකුණු එකකට වඩා තිබිය හැක, උදාහරණයක් ලෙස වැරදි ලේඛන උත්පාදනය හේතුවෙන්. GIF ගොනුවක අවසාන අත්සන් ගණන එහි ඇති රාමු ගණනට සමාන වේ. මෙම ආකෘතිවල විශේෂාංග මත පදනම්ව, අමුණා ඇති ගොනු තිබේදැයි පරීක්ෂා කිරීම සඳහා ඇල්ගොරිතම වැඩිදියුණු කළ හැකිය.
  1. 1 වන කරුණ පෙර ඇල්ගොරිතමයෙන් නැවත නැවතත් සිදු කෙරේ.
  2. 2 වන කරුණ පෙර ඇල්ගොරිතමයෙන් නැවත නැවතත් සිදු කෙරේ.
  3. ඔබ අවසන් අත්සන සොයාගත් විට, එහි පිහිටීම මතක තබාගෙන තවදුරටත් බලන්න;
  4. ඔබ මේ ආකාරයෙන් අවසාන EOF මාර්කර් වෙත ළඟා වුවහොත්, ගොනුව පිරිසිදුයි.
  5. ගොනුව අවසන් අත්සනකින් අවසන් නොවන්නේ නම්, goto යනු අවසන් අත්සන සොයාගත් ස්ථානයයි.
ලිපිගොනු ප්‍රමාණය සහ අවසාන අත්සනෙන් පසු පිහිටීම අතර විශාල වෙනසක් පෙන්නුම් කරන්නේ ඇලෙන සුළු ඇමුණුමක් තිබීමයි. වෙනත් අගයන් සැකසිය හැකි වුවද වෙනස බයිට් දහයකට වඩා වැඩි විය හැක.

ZIP

ZIP ලේඛනාගාරයේ විශේෂත්වය වන්නේ විවිධ අත්සන් තුනක් තිබීමයි: ලේඛනාගාරයේ ව්‍යුහය පහත පරිදි වේ:
දේශීය ගොනු ශීර්ෂකය 1
ගොනු දත්ත 1
දත්ත විස්තරකය 1
දේශීය ගොනු ශීර්ෂකය 2
ගොනු දත්ත 2
දත්ත විස්තරකය 2
...
දේශීය ගොනු ශීර්ෂකය
ගොනු දත්ත n
දත්ත විස්තරකය n
සංරක්ෂිත විකේතන ශීර්ෂකය
අමතර දත්ත වාර්තාවක් සංරක්ෂණය කරන්න
මධ්යම නාමාවලිය
වඩාත්ම සිත්ගන්නා කරුණ වන්නේ සංරක්ෂිතයේ ඇති ගොනු පිළිබඳ පාර-දත්ත අඩංගු මධ්‍යම නාමාවලියයි. මධ්‍යම නාමාවලිය සැමවිටම 0x50 0x4b 0x01 0x02 අත්සනින් ආරම්භ වන අතර 0x50 0x4b 0x05 0x06 අත්සනින් අවසන් වේ, පසුව පාර-දත්ත බයිට් 18 කින් අවසන් වේ. සිත්ගන්නා කරුණ නම්, හිස් ලේඛනාගාරය සමන්විත වන්නේ අවසාන අත්සන සහ ශුන්‍ය බයිට් 18 කින් පමණි. බයිට් 18කට පසුව ගොනුව සැඟවීමට සුදුසුම බහාලුමක් වන සංරක්ෂිත විවරණ ප්‍රදේශය පැමිණේ.

ZIP සංරක්ෂිතයක් පරීක්ෂා කිරීම සඳහා, ඔබ මධ්‍යම නාමාවලියෙහි අවසාන අත්සන සොයා ගත යුතු අතර, බයිට් 18ක් මඟ හැර, අදහස් ප්‍රදේශයේ දන්නා ආකෘතිවල අත්සන සොයා බැලිය යුතුය. විශාල ප්රමාණයවිවරණයෙන් ඇලවීමේ කාරණය ද දක්වයි.

ප්රමාණය වැදගත් වේ

AVI

AVI ගොනුවක ව්‍යුහය පහත පරිදි වේ: සෑම ගොනුවක්ම RIFF අත්සනකින් (0x52 0x49 0x46 0x46) ආරම්භ වේ. බයිට් 8 හි ආකෘතිය සඳහන් කරන AVI අත්සනක් ඇත (0x41 0x56 0x49 0x20). ඕෆ්සෙට් 4 හි ඇති බ්ලොක්, බයිට් 4 කින් සමන්විත වන අතර, දත්ත වාරණයේ ආරම්භක ප්‍රමාණය අඩංගු වේ (බයිට් අනුපිළිවෙල - කුඩා එන්ඩියන්). ඊළඟ ප්‍රමාණය අඩංගු බ්ලොක් අංකය සොයා ගැනීමට, ඔබ ශීර්ෂ ප්‍රමාණය (බයිට් 8) සහ බයිට් 4-8 බ්ලොක් එකෙන් ලබාගත් ප්‍රමාණය එකතු කළ යුතුය. මෙය සම්පූර්ණ ගොනු ප්‍රමාණය ගණනය කරයි. ගණනය කළ ප්‍රමාණය සැබෑ ගොනු ප්‍රමාණයට වඩා කුඩා විය හැකි බව පිළිගත හැකිය. ප්‍රමාණය ගණනය කළ පසු, ගොනුවේ අඩංගු වන්නේ ශුන්‍ය බයිට් පමණි (1Kb මායිම පෙළගස්වීමට අවශ්‍ය වේ).

ප්රමාණය ගණනය කිරීමේ උදාහරණය:


ඩබ්ලිව්.ඒ.වී

AVI මෙන්ම, WAV ගොනුවක් RIFF අත්සනකින් ආරම්භ වේ, කෙසේ වෙතත්, මෙම ගොනුවට byte 8 - WAVE (0x57 0x41 0x56 0x45) වෙතින් අත්සනක් ඇත. ගොනු විශාලත්වය AVI ලෙසම ගණනය කෙරේ. සැබෑ ප්‍රමාණය ගණනය කළ එකට සම්පූර්ණයෙන්ම අනුරූප විය යුතුය.

MP4

MP4 හෝ MPEG-4 යනු වීඩියෝ සහ ශ්‍රව්‍ය ප්‍රවාහ ගබඩා කිරීමට භාවිතා කරන මාධ්‍ය බහාලුම් ආකෘතියකි, උපසිරැසි සහ රූප ගබඩා කිරීම සඳහා ද සපයයි.
ඕෆ්සෙට් 4 බයිට් වල අත්සන් ඇත: ගොනු වර්ගය ftyp (66 74 79 70) (QuickTime බහාලුම් ගොනු වර්ගය) සහ ගොනු උප වර්ගය mmp4 (6D 6D 70 34). පිළිගැනීම සඳහා සැඟවුණු ගොනු, ගොනු ප්රමාණය ගණනය කිරීමේ හැකියාව ගැන අපි උනන්දු වෙමු.

අපි උදාහරණයක් බලමු. පළමු බ්ලොක් එකේ ප්‍රමාණය ඕෆ්සෙට් බිංදුවෙන් ඇති අතර එය 28 (00 00 00 1C, Big Endian byte order); එය දෙවන දත්ත කොටසෙහි විශාලත්වය පිහිටා ඇති ඕෆ්සෙට් ද දක්වයි. ඕෆ්සෙට් 28 හිදී අපට ඊළඟ බ්ලොක් ප්‍රමාණය 8 (00 00 00 08) ට සමාන වේ. මීළඟ බ්ලොක් ප්‍රමාණය සොයා ගැනීමට, ඔබ කලින් සොයාගත් කුට්ටිවල ප්‍රමාණ එකතු කළ යුතුය. මේ අනුව, ගොනු ප්රමාණය ගණනය කරනු ලැබේ:

MOV

මෙම බහුලව භාවිතා වන ආකෘතිය MPEG-4 බහාලුම් ද වේ. MOV හිමිකාර දත්ත සම්පීඩන ඇල්ගොරිතමයක් භාවිතා කරයි, MP4 හා සමාන ව්‍යුහයක් ඇති අතර එකම අරමුණු සඳහා භාවිතා කරයි - ශ්‍රව්‍ය සහ දෘශ්‍ය දත්ත ගබඩා කිරීම සඳහා මෙන්ම අදාළ ද්‍රව්‍ය.
MP4 මෙන්, ඕනෑම mov ගොනුවක් ඕෆ්සෙට් 4 හි 4-byte ftyp අත්සනක් ඇත, කෙසේ වෙතත්, ඊළඟ අත්සනෙහි අගය qt__ (71 74 20 20) ඇත. ගොනු ප්රමාණය ගණනය කිරීමේ රීතිය වෙනස් වී නැත: ගොනුවේ ආරම්භයේ සිට, අපි ඊළඟ බ්ලොක් එකේ ප්රමාණය ගණනය කර එය එකතු කරන්නෙමු.

"ඇලෙන" ගොනු තිබීම සඳහා මෙම ආකෘති සමූහය පරීක්ෂා කිරීමේ ක්‍රමය නම් ඉහත දක්වා ඇති නීතිරීතිවලට අනුව ප්‍රමාණය ගණනය කිරීම සහ පරීක්ෂා කරන ගොනුවේ ප්‍රමාණය සමඟ සංසන්දනය කිරීමයි. වත්මන් ගොනු ප්‍රමාණය ගණනය කළ ප්‍රමාණයට වඩා බෙහෙවින් කුඩා නම්, මෙය ඇලවීමේ කාරණය පෙන්නුම් කරයි. AVI ගොනු පරීක්ෂා කිරීමේදී, මායිම පෙළගැස්වීම සඳහා එකතු කරන ලද බිංදු තිබීම හේතුවෙන් ගණනය කළ ප්‍රමාණය ගොනු ප්‍රමාණයට වඩා කුඩා විය හැකි බව පිළිගැනේ. මෙම අවස්ථාවේදී, ගණනය කරන ලද ගොනු ප්රමාණයෙන් පසුව ශුන්ය සඳහා පරීක්ෂා කිරීම අවශ්ය වේ.

සංයුක්ත ගොනු ද්විමය ආකෘතිය පරීක්ෂා කිරීම

Microsoft විසින් වැඩි දියුණු කරන ලද මෙම ගොනු ආකෘතිය OLE (Object Linking and Embedding) හෝ COM (Component Object Model) ලෙසද හැඳින්වේ. DOC, XLS, PPT ගොනු CFB ආකෘති සමූහයට අයත් වේ.

CFB ගොනුවක් 512-byte ශීර්ෂයකින් සහ දත්ත ප්‍රවාහ හෝ සේවා තොරතුරු ගබඩා කරන සමාන දිගකින් යුත් අංශ වලින් සමන්විත වේ. විශේෂ සංඛ්‍යා හැරුණු විට සෑම අංශයකටම තමන්ගේම සෘණ නොවන අංකයක් ඇත: “-1” - අංක නිදහස් අංශය, “-2” - දාමය වසා දමන අංශය අංක. සියලුම අංශ දාමයන් FAT වගුවේ අර්ථ දක්වා ඇත.

අපි හිතමු ප්‍රහාරකයෙක් යම් .doc ගොනුවක් වෙනස් කර එහි අවසානයේ තවත් ගොනුවක් අලවා ඇති බව. කිහිපයක් ඇත විවිධ ආකාරවලින්එය හඳුනා ගැනීම හෝ ලේඛනයේ විෂමතාවයක් දක්වන්න.

අසාමාන්‍ය ගොනු ප්‍රමාණය

ඉහත සඳහන් කළ පරිදි, ඕනෑම CFB ගොනුවක් ශීර්ෂයක් සහ සමාන දිගකින් යුත් අංශ වලින් සමන්විත වේ. අංශ ප්‍රමාණය සොයා ගැනීම සඳහා, ඔබ ගොනුවේ ආරම්භයේ සිට ඕෆ්සෙට් 30 හි බයිට් දෙකක අංකයක් කියවිය යුතු අතර මෙම අංකයේ බලයට 2 ඉහළ නංවන්න. මෙම සංඛ්‍යාව පිළිවෙලින් 9 (0x0009) හෝ 12 (0x000C) ට සමාන විය යුතුය, ගොනු අංශයේ විශාලත්වය බයිට් 512 හෝ 4096 වේ. අංශය සොයා ගැනීමෙන් පසු, ඔබ පහත සමානාත්මතාවය පරීක්ෂා කළ යුතුය:

(FileSize - 512) mod SectorSize = 0

මෙම සමානාත්මතාවය සෑහීමකට පත් නොවන්නේ නම්, ඔබට ලිපිගොනු ඇලවීමේ කාරණය පෙන්වා දිය හැකිය. කෙසේ වෙතත්, මෙම ක්රමය සැලකිය යුතු අඩුපාඩුවක් ඇත. ප්‍රහාරකයෙකු අංශ ප්‍රමාණය දන්නේ නම්, ඔහුට ඔහුගේ ගොනුව සහ තවත් n බයිටයක් ඇලවීම අවශ්‍ය වන අතර එමඟින් අලවන ලද දත්තවල ප්‍රමාණය අංශ ප්‍රමාණයෙන් ගුණාකාර වේ.

නොදන්නා අංශ වර්ගය

ප්‍රහාරකයා පෙර චෙක්පත මඟ හැරීමේ ක්‍රමයක් ගැන දන්නේ නම්, එසේ නම් මෙම ක්රමයනිර්වචනය නොකළ වර්ග සහිත අංශ තිබීම හඳුනාගත හැකිය.

සමානාත්මතාවය නිර්වචනය කරමු:

FileSize = 512 + CountReal * SectorSize, මෙහි FileSize යනු ගොනු ප්‍රමාණය, SectorSize යනු අංශ ප්‍රමාණය, CountReal යනු අංශ ගණනයි.

අපි පහත විචල්‍යයන් ද නිර්වචනය කරමු:

  1. CountFat - FAT අංශ ගණන. ගොනුවේ ආරම්භයේ සිට ඕෆ්සෙට් 44 හි පිහිටා ඇත (බයිට් 4);
  2. CountMiniFAT - MiniFAT අංශ ගණන. ගොනුවේ ආරම්භයේ සිට ඕෆ්සෙට් 64 හි පිහිටා ඇත (බයිට් 4);
  3. CountDIFAT - DIFAT අංශ ගණන. ගොනුවේ ආරම්භයේ සිට ඕෆ්සෙට් 72 හි පිහිටා ඇත (බයිට් 4);
  4. CountDE - නාමාවලි ඇතුළත් කිරීමේ අංශ ගණන. මෙම විචල්‍යය සොයා ගැනීමට, ඔබ ඕෆ්සෙට් 48 හි ඇති පළමු අංශයේ DE සොයා ගත යුතුය. එවිට FAT වෙතින් DE හි සම්පූර්ණ නියෝජනයක් ලබා ගැනීම සහ DE අංශ ගණන ගණනය කිරීම අවශ්ය වේ;
  5. CountStreams - දත්ත ප්‍රවාහ සහිත අංශ ගණන;
  6. CountFree - නිදහස් අංශ ගණන;
  7. CountClassified - නිශ්චිත වර්ගයක් සහිත අංශ ගණන;
CountClasified = CountFAT + CountMiniFAT + CountDIFAT + CountDE + CountStreams + CountFree

නිසැකවම, CountClassified සහ CountReal අසමාන නම්, ගොනු ඒකාබද්ධ කළ හැකි බව අපට නිගමනය කළ හැකිය.

මගේ ලොක්කා මට ටිකක් රසවත් කාර්යයක් දුන්නා. කෙටි කාලයකදී, අත්සන් මත පදනම්ව වෛරස් ශරීර සොයා ගැනීමට සහ භාවිතා කරන පැකර්/ක්‍රිප්ටරය තීරණය කිරීමට හැකි ක්‍රියාත්මක කළ හැකි ගොනු විශ්ලේෂකයක් ලියන්න. නිමි මූලාකෘතිය පැය කිහිපයක් ඇතුළත දර්ශනය විය.

කර්තෘගේ වචනය

අත්සන විශ්ලේෂණය

අත්සන භාවිතයෙන් අනිෂ්ට වස්තුවක් සෙවීම ඕනෑම ප්‍රති-වයිරසයකට කළ හැකි දෙයකි. සාමාන්‍යයෙන්, අත්සනක් යනු ස්කෑන් කරන ගොනුව වෛරසයක් සහ හොඳින් නිර්වචනය කරන ලද වෛරසයක් බව තීරණය කළ හැකි ඇතැම් ලක්ෂණ පිළිබඳ විධිමත් විස්තරයකි.

මෙහි විවිධ ශිල්පීය ක්‍රම තිබේ. විකල්පයක් නම් අනිෂ්ට වස්තුවක N බයිට් වලින් සෑදූ අත්සනක් භාවිතා කිරීමයි. මෙම අවස්ථාවේදී, ඔබට මෝඩ සැසඳීමක් නොව, යම් මාස්ක් භාවිතා කර සංසන්දනය කළ හැකිය (බයිට් EB ?? ?? CD 13 සෙවීම වැනි). නැතහොත් "එවැනි සහ එවැනි බයිට් වැඩසටහනට ඇතුල් වීමේ ස්ථානයේ තිබිය යුතුය" වැනි අමතර කොන්දේසි සකසන්න. අනිෂ්ට මෘදුකාංගයේ අත්සන විශේෂිත කරුණකි.

එලෙසම, ක්‍රියාත්මක කළ හැකි ගොනුව එක් හෝ තවත් ක්‍රිප්ටරයක් ​​හෝ පැකර් එකක් සමඟ ඇසුරුම් කර ඇති බව තීරණය කළ හැකි සමහර සලකුණු විස්තර කර ඇත (උදාහරණයක් ලෙස, සාමාන්‍ය ASPack). ඔබ අපගේ සඟරාව ප්‍රවේශමෙන් කියවන්නේ නම්, PE ගොනුව සඳහා බහුලව භාවිතා වන පැකර්, ක්‍රිප්ටර් සහ සම්පාදක (දත්ත ගබඩාවට අත්සන් විශාල සංඛ්‍යාවක් ඇත) හඳුනා ගැනීමට හැකියාව ඇති PEiD වැනි මෙවලමක් ගැන ඔබ අනිවාර්යයෙන්ම අසා ඇත. . අහෝ, වැඩසටහනේ නව අනුවාදයන් දිගු කලක් නිකුත් කර නොමැති අතර, ව්‍යාපෘතියට තවදුරටත් සංවර්ධනයක් නොමැති බවට නිල වෙබ් අඩවියේ මෑතකදී පණිවිඩයක් දර්ශනය විය. එය කණගාටුවට කරුණකි, මන්ද PEiD හි හැකියාවන් (විශේෂයෙන් ප්ලගින පද්ධතිය සැලකිල්ලට ගනිමින්) මට ඉතා ප්‍රයෝජනවත් විය හැකිය. කෙටි විශ්ලේෂණයකින් පසුව, මෙය විකල්පයක් නොවන බව පැහැදිලි විය. නමුත් ඉංග්‍රීසි භාෂා බ්ලොග් හාරා, මට ගැලපෙන දේ මම ඉක්මනින් සොයා ගතිමි. YARA ව්‍යාපෘතිය (code.google.com/p/yara-project).

YARA යනු කුමක්ද?

ආරම්භයේ සිටම, අන්තර්ජාලයේ කොතැනක හෝ දැනටමත් විවෘත මූලාශ්‍ර සංවර්ධනයක් ඇති බව මට ඒත්තු ගොස් ඇති අතර එය යම් අත්සනක් සහ පරීක්ෂා කරන ගොනුව අතර ලිපි හුවමාරුව තීරණය කිරීමේ කාර්යය භාර ගනී. මට එවැනි ව්‍යාපෘතියක් සොයාගත හැකි නම්, එය පහසුවෙන් වෙබ් යෙදුමක රේල් පීලි මත තබා, එහි විවිධ අත්සන් එකතු කර මගෙන් අවශ්‍ය දේ ලබා ගත හැකිය. යාරා ව්‍යාපෘතියේ විස්තරය කියවන විට සැලැස්ම වඩාත් යථාර්ථවාදී බවක් පෙනෙන්නට පටන් ගත්තේය.

අනිෂ්ට මෘදුකාංග පර්යේෂකයන්ට අනිෂ්ට සාම්පල හඳුනා ගැනීමට සහ වර්ග කිරීමට උපකාර වන මෙවලමක් ලෙස සංවර්ධකයින් විසින්ම එය ස්ථානගත කරයි. පර්යේෂකයාට විස්තර නිර්මාණය කළ හැකිය විවිධ වර්ගඅනිෂ්ට මෘදුකාංගයේ විධිමත් ලක්ෂණ විස්තර කරන පෙළ හෝ ද්විමය රටා භාවිතා කරන අනිෂ්ට මෘදුකාංග. අත්සන් ලබාගන්නේ මෙහෙමයි. ඇත්ත වශයෙන්ම, සෑම විස්තරයක්ම රේඛා සමූහයකින් සහ සමහර තාර්කික ප්‍රකාශනයකින් සමන්විත වන අතර, විශ්ලේෂකයාගේ ප්‍රේරක තර්කනය තීරණය කරනු ලබන්නේ එහි පදනම මතය.

පරීක්ෂා කරන ගොනුව සඳහා එක් රීතියක කොන්දේසි සපුරා ඇත්නම්, එය ඒ අනුව තීරණය කරනු ලැබේ (උදාහරණයක් ලෙස, එවැනි සහ එවැනි පණුවෙකු). අප කතා කරන්නේ කුමක් දැයි තේරුම් ගැනීමට රීතියක සරල උදාහරණයක්:

රීතිය නිහඬ_බැංකුකරු: බැංකුකරු
{
මෙටා:
description = "මෙය උදාහරණයක් පමණයි"
thread_level = 3
in_the_wild = ඇත්ත
නූල්:
$a = (6A 40 68 00 30 00 00 6A 14 8D 91)
$b = (8D 4D B0 2B C1 83 C0 27 99 6A 4E 59 F7 F9)
$c = "UVODFRYSIHLNWPEJXQZAKCBGMT"
කොන්දේසිය:
$a හෝ $b හෝ $c
}

මෙම රීතිය තුළ අපි YARA හට පවසන්නේ $a, $b, $c යන විචල්‍යවල විස්තර කර ඇති නියැදි තන්තු වලින් අවම වශයෙන් එකක්වත් අඩංගු ඕනෑම ගොනුවක් නිහඬ_බෑන්කර් ට්‍රෝජන් ලෙස වර්ග කළ යුතු බවයි. තවද මෙය ඉතා සරල රීතියකි. යථාර්ථයේ දී, නීති වඩාත් සංකීර්ණ විය හැකිය (අපි මේ ගැන පහත කතා කරමු).
එය භාවිතා කරන ව්‍යාපෘති ලැයිස්තුව පවා YARA ව්‍යාපෘතියේ අධිකාරිය ගැන කථා කරයි, සහ මෙය:

  • VirusTotal Malware Intelligence Services (vt-mis.com);
  • jsunpack-n (jsunpack.jeek.org);
  • අපි ඔබේ වෙබ් අඩවිය නරඹමු (wewatchyourwebsite.com).

සියලුම කේත Python හි ලියා ඇති අතර, පරිශීලකයාට ඔවුන්ගේ සංවර්ධනය සඳහා භාවිතා කිරීම සඳහා මොඩියුලය දෙකම පිරිනමනු ලැබේ, සහ YARA තනි යෙදුමක් ලෙස භාවිතා කිරීමට ක්‍රියාත්මක කළ හැකි ගොනුවක්. මගේ කාර්යයේ කොටසක් ලෙස, මම පළමු විකල්පය තෝරා ගත්තෙමි, නමුත් මෙම ලිපියේ සරල බව සඳහා අපි විශ්ලේෂකය කොන්සෝල යෙදුමක් ලෙස භාවිතා කරමු.

ටිකක් කැණීමෙන් පසු, මම ඉක්මනින් YARA සඳහා නීති ලියන්නේ කෙසේද යන්නත්, PEiD වෙතින් නිදහස් මෘදුකාංග සහ පැකර් වලින් වෛරස් අත්සන් අමුණන්නේ කෙසේද යන්නත් ඉක්මනින් සොයා ගතිමි. නමුත් අපි ස්ථාපනය ආරම්භ කරමු.

ස්ථාපන

මම දැනටමත් පවසා ඇති පරිදි, ව්‍යාපෘතිය පයිතන් වලින් ලියා ඇත, එබැවින් එය ලිනක්ස්, වින්ඩෝස් සහ මැක් මත පහසුවෙන් ස්ථාපනය කළ හැකිය. මුලදී, ඔබට ද්විමය පමණක් ගත හැකිය. අපි කොන්සෝලයේ යෙදුම අමතන්නේ නම්, අපි දියත් කිරීම සඳහා නීති රීති ලබා ගනිමු.

$යාරා
භාවිතය: යාර ... ... ගොනුව | PID

එනම්, වැඩසටහන ඇමතීමේ ආකෘතිය පහත පරිදි වේ: පළමුව වැඩසටහනේ නම ඇත, පසුව විකල්ප ලැයිස්තුවක් ඇත, ඉන්පසු නීති සහිත ගොනුව දක්වනු ලැබේ, සහ අවසානයේ - ගොනුවේ නම පරීක්ෂා කරන ලදී (හෝ ගොනු අඩංගු නාමාවලිය), හෝ ක්‍රියාවලි හඳුනාගැනීම. දැන් මම මෙම නීති රීති සකස් කරන ආකාරය හොඳ ආකාරයකින් පැහැදිලි කිරීමට කැමැත්තෙමි, නමුත් වියළි න්‍යායෙන් වහාම ඔබට බර පැටවීමට මට අවශ්‍ය නැත. එබැවින්, අපි වෙනස් ලෙස දේවල් කර අන් අයගේ අත්සන් ණයට ගන්නෙමු, එවිට YARA හට අප විසින් සකසා ඇති එක් කාර්යයක් ඉටු කළ හැකිය - අත්සන් මගින් වෛරස් සම්පූර්ණයෙන් හඳුනා ගැනීම.

ඔබේම ප්‍රති-වයිරස

වැදගත්ම ප්රශ්නය: දන්නා වෛරස් වල අත්සන් වල දත්ත ගබඩාව ලබා ගන්නේ කොහෙන්ද? ප්‍රති-වයිරස සමාගම් එවැනි දත්ත සමුදායන් තමන් අතර සක්‍රියව බෙදා ගනී (සමහරක් ත්‍යාගශීලීව, අනෙක් ඒවා අඩු). ඇත්තම කිව්වොත්, අන්තර්ජාලයේ කොතැනක හෝ එවැනි දේවල් විවෘතව පළ කරනු ඇතැයි මම මුලදී පවා සැක කළෙමි. එහෙත්, පෙනෙන පරිදි, හොඳ මිනිසුන් ඇත. ජනප්‍රිය ClamAV ප්‍රති-වයිරසයෙන් සුදුසු දත්ත සමුදායක් සෑම කෙනෙකුටම ලබා ගත හැකිය (clamav.net/lang/en). "නවතම ස්ථාවර නිකුතුව" කොටසේ ඔබට සබැඳියක් සොයාගත හැකිය නවතම අනුවාදයප්‍රති-වයිරස නිෂ්පාදන, මෙන්ම ClamAV වෛරස් දත්ත සමුදායන් බාගත කිරීමට සබැඳි. අපි මූලික වශයෙන් main.cvd (db.local.clamav.net/main.cvd) සහ daily.cvd (db.local.clamav.net/daily.cvd) ගොනු ගැන උනන්දු වනු ඇත.

පළමු අත්සන් වල ප්‍රධාන දත්ත සමුදාය අඩංගු වේ, දෙවැන්න වඩාත්ම සම්පූර්ණ දත්ත සමුදාය අඩංගු වේ මේ මොහොතේවිවිධ එකතු කිරීම් සහිත පදනම. අනිෂ්ට මෘදුකාංග ප්‍රතිරූප 100,000කට වඩා අඩංගු Daily.cvd මේ සඳහා ප්‍රමාණවත් වේ. කෙසේ වෙතත්, ClamAV දත්ත සමුදාය YARA දත්ත ගබඩාවක් නොවේ, එබැවින් අපි එය අපේක්ෂිත ආකෘතියට පරිවර්තනය කළ යුතුය. නමුත් කෙසේද? සියල්ලට පසු, අපි තවමත් ClamAV ආකෘතිය හෝ Yara ආකෘතිය ගැන කිසිවක් නොදනිමු. ClamAV වයිරස් අත්සන දත්ත ගබඩාව YARA නීති මාලාවක් බවට පරිවර්තනය කරන කුඩා පිටපතක් සකස් කිරීමෙන් මෙම ගැටළුව දැනටමත් අප ඉදිරියේ බලා ඇත. පිටපත clamav_to_yara.py ලෙස හඳුන්වන අතර එය ලියා ඇත්තේ Matthew Richard (bit.ly/ij5HVs) විසිනි. ස්ක්‍රිප්ට් බාගත කර දත්ත සමුදායන් පරිවර්තනය කරන්න:

$ python clamav_to_yara.py -f daily.cvd -o clamav.yara

එහි ප්‍රතිඵලයක් ලෙස clamav.yara ගොනුව තුළ අපට වහාම භාවිතයට සූදානම් වන අත්සන දත්ත සමුදායක් ලැබෙනු ඇත. අපි දැන් YARA සහ ClamAV දත්ත සමුදාය ක්‍රියාත්මකව සංයෝජනය උත්සාහ කරමු. අත්සනක් භාවිතයෙන් ෆෝල්ඩරයක් පරිලෝකනය කිරීම එක් විධානයකින් සිදු කෙරේ:

$ yara -r clamav.yara /pentest/msf3/data

වත්මන් ෆෝල්ඩරයේ සියලුම උප ෆෝල්ඩර හරහා ස්කෑන් කිරීම පුනරාවර්තන ලෙස සිදු කළ යුතු බව -r විකල්පය සඳහන් කරයි. /pentest/msf3/data ෆෝල්ඩරයේ (අවම වශයෙන් ClamAV දත්ත ගබඩාවේ ඇති ඒවා) වෛරස් ශරීර තිබේ නම්, YARA වහාම මෙය වාර්තා කරයි. ප්‍රතිපත්තිමය වශයෙන්, මෙය සූදානම් කළ අත්සන ස්කෑනරයකි. වැඩි පහසුව සඳහා, මම ClamAV දත්ත සමුදා යාවත්කාලීන පරීක්ෂා කර, නව අත්සන් බාගත කර YARA ආකෘතියට පරිවර්තනය කළ සරල ස්ක්‍රිප්ට් එකක් ලිව්වෙමි. නමුත් මේවා දැනටමත් විස්තර වේ. කාර්යයේ එක් කොටසක් සම්පූර්ණ කර ඇත, දැන් ඔබට ඇසුරුම්කරුවන් / ගුප්තකේතනයන් හඳුනා ගැනීම සඳහා නීති සැකසීම ආරම්භ කළ හැකිය. ඒත් මේක කරන්න මට එයාලත් එක්ක ටිකක් ගනුදෙනු කරන්න සිද්ධ වුණා.

නීති රීති අනුව සෙල්ලම් කරන්න

එබැවින්, රීතියක් යනු කිසියම් කාණ්ඩයකට ලබා දී ඇති ගොනුවක් පැවරීමට ඔබට ඉඩ සලසන වැඩසටහනක ප්රධාන යාන්ත්රණයයි. නීති රීති වෙනම ගොනුවක (හෝ ගොනු) විස්තර කර ඇති අතර පෙනුමෙන් C/C++ භාෂාවෙන් struct() ගොඩනැගීමට බෙහෙවින් සමාන වේ.

BadBoy පාලනය කරන්න
{
නූල්:
$a = "win.exe"
$b = "http://foo.com/badfi le1.exe"
$c = "http://bar.com/badfi le2.exe"
කොන්දේසිය:
$a සහ ($b හෝ $c)
}

මූලධර්මය අනුව, නීති රීති ලිවීමේදී සංකීර්ණ කිසිවක් නොමැත. මෙම ලිපියෙහි, මම ප්රධාන කරුණු මත පමණක් ස්පර්ශ කළ අතර, ඔබට අත්පොතෙහි විස්තර සොයාගත හැකිය. දැනට, වඩාත්ම වැදගත් කරුණු දහය:

1. සෑම රීතියක්ම මූල පද රීතියෙන් ආරම්භ වන අතර, පසුව රීති හඳුනාගැනීමේ හැකියාව ඇත. හඳුනාගැනීම් වලට C/C++ හි විචල්‍යවලට සමාන නම් තිබිය හැකිය, එනම් ඒවා අකුරු සහ අංක වලින් සමන්විත විය හැකි අතර පළමු අක්ෂරය සංඛ්‍යාවක් විය නොහැක. උපරිම දිගහඳුනාගැනීමේ නම - අක්ෂර 128 යි.

2. සාමාන්‍යයෙන්, රීති කොටස් දෙකකින් සමන්විත වේ: නිර්වචන අංශය (තන්තු) සහ කොන්දේසි අංශය (තත්ත්වය). ලබා දී ඇති ගොනුවක් යම් කොන්දේසි තෘප්තිමත් වේද යන්න කොන්දේසි අංශය තීරණය කරන්නේ කුමන පදනම මතද යන්න තන්තු අංශය දත්ත නියම කරයි.

3. තන්තු කොටසේ සෑම පේළියකටම තමන්ගේම හඳුනාගැනීමක් ඇත, එය $ ලකුණෙන් ආරම්භ වේ - සාමාන්‍යයෙන්, PHP හි විචල්‍ය ප්‍රකාශයක් වැනි. YARA අමුණා ඇති නිත්‍ය නූල් සඳහා සහය දක්වයි ද්විත්ව උපුටා දැක්වීම්("") සහ ෂඩ් දශම තන්තු කොටා ඇත වරහන්(()), මෙන්ම නිත්‍ය ප්‍රකාශන:

$my_text_string = "මෙහි පෙළ"
$my_hex_string = ( E2 34 A1 C8 23 FB )

4. කොන්දේසි කොටසෙහි රීතියේ සියලුම තර්ක අඩංගු වේ. මෙම කොටසෙහි ගොනුවක් හෝ ක්‍රියාවලියක් රීතියට ගැලපෙන විට තීරණය කරන බූලියන් ප්‍රකාශනයක් අඩංගු විය යුතුය. සාමාන්යයෙන්, මෙම කොටස කලින් ප්රකාශිත රේඛා වෙත යොමු වේ. තන්තු හඳුනාගැනීම බූලියන් විචල්‍යයක් ලෙස සලකනු ලබන අතර එය තන්තුව ගොනුවේ හෝ ක්‍රියාවලි මතකයේ තිබේ නම් එය සත්‍ය ලෙස ලබා දෙයි, සහ වෙනත් ආකාරයකින් අසත්‍ය වේ. ඉහත රීතිය සඳහන් කරන්නේ win.exe තන්තුව සහ URL දෙකෙන් එකක් අඩංගු ගොනු සහ ක්‍රියාවලි BadBoy (නීති නාමයෙන්) ලෙස වර්ග කළ යුතු බවයි.

5. ෂඩ් දශම තන්තු ඒවා වඩාත් නම්‍යශීලී කරන ඉදිකිරීම් තුනකට ඉඩ දෙයි: විල්කාඩ්, පැනීම් සහ විකල්ප. ආදේශන යනු නොදන්නා තන්තුවක ස්ථාන වන අතර ඕනෑම අගයකින් ප්‍රතිස්ථාපනය කළ හැකිය. ඒවා "?" සංකේතයෙන් දැක්වේ:

$hex_string = ( E2 34 ?? C8 A? FB )

මෙම ප්රවේශය දිග දන්නා නූල් සඳහන් කිරීමේදී ඉතා පහසු වේ, නමුත් අන්තර්ගතය වෙනස් විය හැක. නූලක කොටසක් විවිධ දිගකින් යුක්ත විය හැකි නම්, පරාස භාවිතා කිරීම පහසුය:

$hex_string = (F4 23 62 B4)

මෙම ප්‍රවේශය යනු පේළියේ මැද විවිධ බයිට් 4 සිට 6 දක්වා විය හැකි බවයි. ඔබට විකල්ප තේරීමක් ද ක්‍රියාත්මක කළ හැකිය:

$hex_string = ( F4 23 (62 B4 | 56) 45 )

මෙයින් අදහස් කරන්නේ තුන්වන බයිටය වෙනුවට 62 B4 හෝ 56 විය හැකි බවයි, එවැනි ප්රවේශයක් F42362B445 හෝ F4235645 රේඛාවලට අනුරූප වේ.

6. ලබා දී ඇති තන්තුවක් ගොනුවක හෝ ක්‍රියාවලි ලිපින අවකාශයක නිශ්චිත ඕෆ්සෙට් එකක තිබේ දැයි පරීක්ෂා කිරීමට, at ක්‍රියාකරු භාවිතා කරයි:

$a 100ට සහ $b 200ට

තන්තුව යම් ලිපින පරාසයක් තුළ විය හැකි නම්, in operator භාවිතා වේ:

$a in (0..100) සහ $b in (100..fi lesize)

ගොනුවක දී ඇති කට්ටලයකින් නිශ්චිත සංඛ්‍යාවක් අඩංගු විය යුතු බව සඳහන් කිරීමට ඔබට අවශ්‍ය වූ විට සමහර විට තත්වයන් පැන නගී. මෙය ක්රියාකරු භාවිතයෙන් සිදු කෙරේ:

රීතිය උදාහරණ 1
{
නූල්:
$foo1 = "dummy1"
$foo2 = "dummy2"
$foo3 = "dummy3"
කොන්දේසිය:
2 ($foo1,$foo2,$foo3)
}

ඉහත රීතියට අනුව ගොනුවේ කට්ටලයෙන් ඕනෑම පේළි දෙකක් ($foo1,$foo2,$foo3) අඩංගු විය යුතුය. ගොනුවේ නිශ්චිත රේඛා සංඛ්‍යාවක් සඳහන් කිරීම වෙනුවට, ඔබට විචල්‍යයන් ඕනෑම (දී ඇති කට්ටලයකින් අවම වශයෙන් එක් පේළියක්) සහ සියල්ල (දී ඇති කට්ටලයකින් සියලුම රේඛා) භාවිතා කළ හැකිය.

7. හොඳයි, සලකා බැලිය යුතු අවසාන රසවත් හැකියාව වන්නේ බොහෝ පේළි සඳහා එක් කොන්දේසියක් යෙදීමයි. මෙම විශේෂාංගය ක්‍රියාකරුගේ ක්‍රියාකරුට බෙහෙවින් සමාන වේ, වඩාත් බලවත් වන්නේ for..of operator:

string_set ප්‍රකාශනය සඳහා: (boolean_expression)

මෙම ප්‍රවේශය මෙසේ කියවිය යුතුය: string_ කට්ටලයේ දක්වා ඇති තන්තු වලින්, අවම වශයෙන් ප්‍රකාශන කෑලි boolean_expression තත්ත්වය තෘප්තිමත් කළ යුතුය. නැතහොත්, වෙනත් වචනවලින් කිවහොත්: තන්තු_කුලකයේ සෑම තන්තුවක් සඳහාම boolean_expression ඇගයීමට ලක් කෙරේ, සහ ඒවායේ ප්‍රකාශන සත්‍ය වෙත ලබා දිය යුතුය. ඊළඟට අපි නිශ්චිත උදාහරණයක් භාවිතා කරමින් මෙම ඉදිකිරීම දෙස බලමු.

PEiD සෑදීම

එබැවින්, නීතිරීති සමඟ සෑම දෙයක්ම අඩු හෝ වැඩි වශයෙන් පැහැදිලි වී ඇති විට, අපගේ ව්යාපෘතියේ පැකර් සහ ගුප්තකේතන අනාවරකයක් ක්රියාත්මක කිරීමට පටන් ගත හැකිය. මුලදී, මූලාශ්‍ර ද්‍රව්‍ය ලෙස, මම එම PEiD වෙතින් සුප්‍රසිද්ධ ඇසුරුම්කරුවන්ගේ අත්සන් ණයට ගත්තෙමි. ප්ලගින ෆෝල්ඩරයේ අපට අවශ්‍ය දේ අඩංගු userdb.txt ගොනුවක් ඇත. මගේ දත්ත ගබඩාවේ අත්සන් 1850ක් තිබුණා.

බොහෝ දේ ඇත, එබැවින් ඒවා සම්පූර්ණයෙන්ම ආනයනය කිරීම සඳහා, යම් ආකාරයක පිටපතක් ලිවීමට මම ඔබට උපදෙස් දෙමි. මෙම දත්ත සමුදායේ ආකෘතිය සරලයි - සුපුරුදු එක භාවිතා වේ පෙළ ගොනුව, වැනි වාර්තා ගබඩා කරන:


අත්සන = 50 E8 ?? ?? ?? ?? 58 25 ?? F0 FF FF 8B C8 83 C1 60 51 83 C0 40 83 EA 06 52 FF 20 9D C3
ep_only = ඇත්ත

පළමු පේළිය ඇසුරුම්කරුගේ නම සඳහන් කරයි, එය PEiD හි දර්ශනය වනු ඇත, නමුත් අපට එය රීති හඳුනාගැනීමක් වනු ඇත. දෙවැන්න අත්සන ම ය. තුන්වැන්න ep_only ධජය වන අතර, එය ලබා දී ඇති රේඛාවක් සඳහා පිවිසුම් ලක්ෂ්‍ය ලිපිනයෙහි පමණක් සොයන්නේද, නැතහොත් සම්පූර්ණ ගොනුව පුරාවටම සොයන්නේද යන්න පෙන්නුම් කරයි.

හොඳයි, අපි ASPack සඳහා රීතියක් නිර්මාණය කිරීමට උත්සාහ කරමු? පෙනෙන පරිදි, මේ සම්බන්ධයෙන් සංකීර්ණ කිසිවක් නොමැත. පළමුව, නීති ගබඩා කිරීම සඳහා ගොනුවක් සාදා එය අමතන්න, උදාහරණයක් ලෙස, packers.yara. ඉන්පසුව අපි ඔවුන්ගේ නම්වල ASPack ඇතුළත් සියලුම අත්සන් සඳහා PEiD දත්ත ගබඩාව සොයාගෙන ඒවා රීතියට මාරු කරමු:

ASPack රීතිය
{
නූල්:
$ = ( 60 E8 ?? ??? ??? ?? 5D 81 ED ?? ?? (43 | 44) ?? B8 ?? ?? (43 | 44) ?? 03 C5 )
$ = (60 EB ?? 5D EB ?? FF ?? ?? ?? ?? ?? E9 )
[.. කපා..]
$ = ( 60 E8 03 00 00 00 E9 EB 04 5D 45 55 C3 E8 01 )
කොන්දේසිය:
ඒවායින් ඕනෑම එකක් සඳහා: ($ඇතුල්වීමේ ස්ථානයේ)
}

සොයාගත් සියලුම වාර්තා වල ep_only ධජය සත්‍ය ලෙස සකසා ඇත, එනම්, මෙම රේඛා ප්‍රවේශ ලක්ෂ්‍ය ලිපිනයේ පිහිටා තිබිය යුතුය. එබැවින්, අපි පහත සඳහන් කොන්දේසිය ලියන්නෙමු: "ඒවායින් ඕනෑම එකක් සඳහා: ($ ඇතුල්වීමේ ස්ථානයේ)".

මේ අනුව, ඇතුල්වීමේ ලක්ෂ්‍ය ලිපිනයේ දී ඇති පේළි වලින් එකක්වත් තිබීමෙන් අදහස් වන්නේ ගොනුව ASPack සමඟ අසුරා ඇති බවයි. මෙම රීතිය තුළ සියලුම රේඛා හුදෙක් හඳුනාගැනීමක් නොමැතිව $ ලකුණ භාවිතයෙන් සඳහන් කර ඇති බව කරුණාවෙන් සලකන්න. මෙය කළ හැක්කේ කොන්දේසි අංශයේ අපි විශේෂිත ඒවාට ප්‍රවේශ නොවන නමුත් සම්පූර්ණ කට්ටලයම භාවිතා කරන බැවිනි.

ලැබෙන පද්ධතියේ ක්‍රියාකාරීත්වය පරීක්ෂා කිරීම සඳහා, කොන්සෝලය තුළ විධානය ක්‍රියාත්මක කරන්න:

$ yara -r packers.yara somefi le.exe

ASPack සමඟ ඇසුරුම් කර ඇති යෙදුම් කිහිපයක් එහි පෝෂණය කිරීමෙන් පසු, සියල්ල ක්‍රියාත්මක වන බව මට ඒත්තු ගියේය!

සූදානම් මූලාකෘතිය

YARA අතිශයින්ම පැහැදිලි සහ විනිවිද පෙනෙන මෙවලමක් බවට පත් විය. ඒ සඳහා webadmin එකක් ලියා වෙබ් සේවාවක් ලෙස ක්‍රියා කිරීමට එය සකසා ගැනීම මට අපහසු නොවීය. කුඩා නිර්මාණශීලීත්වයකින්, විශ්ලේෂකයේ වියළි ප්රතිඵල දැනටමත් විවිධ වර්ණවලින් වර්ණාලේප කර ඇති අතර, අනාවරණය කරගත් අනිෂ්ට මෘදුකාංගයේ අන්තරායකාරී මට්ටම පෙන්නුම් කරයි. දත්ත සමුදායේ කුඩා යාවත්කාලීන කිරීමක් සහ බොහෝ ක්‍රිප්ටර් සඳහා කෙටි විස්තරයක් ලබා ගත හැකි අතර සමහර විට උපදෙස් ඉවත් කිරීම පවා ඇත. මූලාකෘතිය නිර්මාණය කර පරිපූර්ණ ලෙස ක්‍රියාත්මක වන අතර ලොක්කන් සතුටින් නටති!

ටෙලිග්‍රාම් ශීර්ෂයේ ඇති ක්‍රියාකාරී කේතය (FC) විදුලි පණිවුඩ වර්ගය (ඉල්ලීම හෝ යැවීම/ඉල්ලීම) සහ පිළිගැනීම හෝ ප්‍රතිචාර විදුලි පණිවුඩය (පිළිගැනීමේ රාමුව, ප්‍රතිචාර රාමුව) වැනි විදුලි පණිවුඩ වර්ගය හඳුනා ගනී. මීට අමතරව, ශ්‍රිත කේතයේ සැබෑ සම්ප්‍රේෂණ කාර්යය සහ පණිවිඩ නැතිවීම සහ අනුපිටපත් වීම වළක්වන පාලන තොරතුරු හෝ FDL තත්ත්වය සහිත ස්ථාන වර්ගය අඩංගු වේ.

7 6 5 4 3 2 1 0 FC: කාර්ය කේත ඉල්ලීම
1 ටෙලිග්‍රාම් ඉල්ලන්න
x FCV = විකල්ප බිටු ක්‍රියාත්මකයි
x href=”http://profibus.felser.ch/en/funktionscode.htm#aufruffolgebit”>FCB = විකල්ප බිටු (රාමු ගණනින්)
1 0 (0x0) CV = ඔරලෝසු අගය()
1 අනික් වෙන් කර ඇත
0 0 (0x0) TE = කාල සිදුවීම (ඔරලෝසු සමමුහුර්තකරණය)
0 3 (0x3) SDA_LOW = දත්ත යැවීම පිළිගෙන - අඩු ප්‍රමුඛතාවයක්
0 4 (0x4) SDN_LOW = දත්ත යැවීම පිළිගෙන නැත - අඩු ප්‍රමුඛතාවයක්
0 5 (0x5) SDA_HIGH = දත්ත යැවීම පිළිගෙන - ඉහළ ප්‍රමුඛතාවයක්
0 6 (0x6) SDN_HIGH = දත්ත යැවීම පිළිගෙන නොමැත
0 7 (0x7) MSRD = බහු විකාශන පිළිතුරු සමඟ ඉල්ලීම් දත්ත යවන්න
0 9 (0x9) FDL තත්ත්වය ඉල්ලන්න
0 12(0xC) SRD අඩු = දත්ත යැවීම සහ ඉල්ලීම
0 13(0xD) SRD high = දත්ත යැවීම සහ ඉල්ලීම
0 14(0xE) පිළිතුර සමඟ අනන්‍යතාවය ඉල්ලන්න
0 15 (0xF) පිළිතුර සමඟ LSAP තත්ත්වය ඉල්ලන්න 1)
0 අනික් වෙන් කර ඇත

1) මෙම අගය ප්‍රමිතියේ අවසාන අනුවාදයේ තවදුරටත් අර්ථ දක්වා නැති නමුත් වෙන් කර ඇත

7 6 5 4 3 2 1 0 FC: කාර්ය කේත ප්‍රතිචාරය
0 ප්‍රතිචාර විදුලි පණිවුඩය
0 වෙන් කර ඇත
0 0 වහලෙක්
0 1 මාස්ටර් සූදානම් නැත
1 0 ටෝකනයකින් තොරව මාස්ටර් සූදානම්
1 1 මාස්ටර් ලෑස්තියි, සංකේත වළල්ලේ
0 (0x0) හරි
1 (0x1) UE = පරිශීලක දෝෂය
2 (0x2) RR = සම්පත් නැත
3 (0x3) RS = SAP සබල කර නැත
8 (0x8) DL = දත්ත අඩු (DP සමඟ සාමාන්‍ය අවස්ථාව)
9 (0x9) NR = ප්‍රතිචාර දත්ත නොමැත
10(0xA) DH = දත්ත ඉහළ (DP රෝග විනිශ්චය පොරොත්තුවෙන්)
12(0xC) RDL = දත්ත නොලැබුණු අතර දත්ත අඩුයි
13(0xD) RDH = දත්ත නොලැබුණු අතර දත්ත ඉහළයි
අනික් වෙන් කර ඇත

Frame Count Bit FCB (b5) FCB (b5) මඟින් පණිවිඩය පිළිගැනීමෙන් හෝ ප්‍රතිචාර දක්වන ස්ථානයෙන් (ප්‍රතිචාර දක්වන්නා) සහ ඇමතුම් ස්ථානයෙන් (ආරම්භකයෙන්) යම් අලාභයක් සිදු වීම වළක්වයි. මෙයින් බැහැර කරනු ලබන්නේ පිළිගැනීම් රහිත ඉල්ලීම් (SDN) සහ FDL තත්ත්වය, Ident සහ LSAP තත්ත්‍ව ඉල්ලීම් වේ.

ආරක්ෂක අනුපිළිවෙල සඳහා, ආරම්භකයා සෑම ප්‍රතිචාරකයෙකු සඳහාම FCB රැගෙන යා යුතුය. ඉල්ලීමක් විදුලි පණිවුඩයක් (ඉල්ලීම හෝ යැවීම/ඉල්ලීම) ප්‍රතිචාර දක්වන්නෙකුට පළමු වරට යවන විට හෝ එය දැනට ක්‍රියාත්මක නොවන ලෙස සලකුණු කර ඇති ප්‍රතිචාර දක්වන්නෙකු වෙත යවනු ලැබුවහොත්, FCB ප්‍රතිචාරකරු තුළ අර්ථ දක්වා ඇති පරිදි සැකසිය යුතුය. ආරම්භකයා මෙය FCV=0 සහ FCB=1 සහිත ඉල්ලීම් විදුලි පණිවුඩයකින් ලබා ගනී. ප්‍රතිචාර දක්වන්නා මෙවැනි ආකාරයේ විදුලි පණිවුඩයක් පළමු පණිවිඩ චක්‍රය ලෙස තක්සේරු කර FCB=1 ආරම්භකයාගේ ලිපිනය (SA) සමඟ ගබඩා කළ යුතුය (පහත වගුව බලන්න). මෙම පණිවිඩ චක්‍රය ආරම්භකයා විසින් නැවත නැවත සිදු නොවේ. පසුව එම ප්‍රතිචාරකයා වෙත විදුලි පණිවුඩ ඉල්ලීම් වලදී, ආරම්භකයා විසින් FCV=1 සැකසිය යුතු අතර සෑම නව ඉල්ලීම් විදුලි පණිවුඩයක් සමඟම FCB වෙනස් කළ යුතුය. FCV=1 සමඟ එය වෙත යොමු කරන ලද ඉල්ලීම් විදුලි පණිවුඩයක් ලැබෙන ඕනෑම ප්‍රතිචාර දක්වන්නෙකු FCB අගය කළ යුතුය. FCB එකම ආරම්භකයේ (එම SA) අවසාන ඉල්ලීම් විදුලි පණිවුඩය සමඟ සසඳන විට වෙනස් වී ඇත්නම්, මෙය පෙර පණිවිඩ චක්‍රය නිසි ලෙස අවසන් කර ඇති බවට වලංගු තහවුරු කිරීමකි. ඉල්ලීම් විදුලි පණිවුඩය වෙනත් ආරම්භකයකුගෙන් (වෙනස් SA) ආරම්භ වන්නේ නම්, FCB ඇගයීම තවදුරටත් අවශ්‍ය නොවේ. අවස්ථා දෙකේදීම, ප්‍රතිචාර දක්වන්නා විසින් FCB වෙත නව විදුලි පණිවුඩයක් ලැබෙන තෙක් මූලාශ්‍රය SA සමඟ සුරැකිය යුතුය. නැතිවූ හෝ දුර්වල වූ පිළිගැනීමක් හෝ ප්‍රතිචාර විදුලි පණිවුඩයක් සම්බන්ධයෙන්, ඉල්ලීම නැවත උත්සාහ කිරීමේදී ආරම්භකයා විසින් FCB වෙනස් නොකළ යුතුය: මෙය පෙර පණිවිඩ චක්‍රය දෝෂ සහිත බව පෙන්නුම් කරයි. ප්‍රතිචාර දක්වන්නාට FCV=1 සහිත ඉල්ලීම් විදුලි පණිවුඩයක් සහ එම ආරම්භකයේම (එම SA) අවසාන ඉල්ලීම් විදුලි පණිවුඩයට සමාන FCB එකක් ලැබුණේ නම්, මෙය ඉල්ලීම නැවත උත්සාහ කිරීමක් පෙන්නුම් කරයි. ප්‍රතිචාර දක්වන්නා විසින් සූදානම්ව තබා ඇති පිළිගැනීම හෝ ප්‍රතිචාර විදුලි පණිවුඩය නැවත සම්ප්‍රේෂණය කළ යුතුය. ඉහත සඳහන් තහවුරු කිරීම හෝ පිළි නොගත් වෙනත් ලිපිනයක් (SA හෝ DA) සහිත විදුලි පණිවුඩයක් ලැබෙන තුරු (පිළිගැනීමක් නොමැතිව දත්ත යවන්න, SDN) ප්‍රතිචාර දක්වන්නා ඕනෑම ඉල්ලීමක් නැවත උත්සාහ කිරීම සඳහා සූදානම්ව අවසන් පිළිගැනීම හෝ ප්‍රතිචාර විදුලි පණිවුඩය තබා ගත යුතුය. . පිළිගෙන නොමැති සහ ඉල්ලීම් FDL තත්ත්වය, Ident, සහ LSAP තත්ත්‍වය සමඟින්, FCV=0 සහ FCB=0; ප්‍රතිචාර දක්වන්නා විසින් ඇගයීම තවදුරටත් අවශ්‍ය නොවේ.

b5 b4 බිට් පිහිටීම
FCB FCV තත්ත්වය අර්ථය කටයුතු
0 0 DA = TS/127 පිළිගැනීමකින් තොරව ඉල්ලීම
FDL තත්ත්වය/ Ident/ LSAP තත්ත්වය ඉල්ලන්න
අවසාන පිළිගැනීම මකන්න
0/1 0/1 DA#TS වෙනත් ප්‍රතිචාර දක්වන්නෙකුගෙන් ඉල්ලීම
1 0 DA = TS පළමු ඉල්ලීම FCBM:= 1
සෑම්:=සා
අවසාන පිළිගැනීම / ප්‍රතිචාරය මකන්න
0/1 1 DA = TS
SA = SAM
FCB#FCBM
නව ඉල්ලීම අවසාන පිළිගැනීම / ප්‍රතිචාරය මකන්න
FCBM:=FCB
නැවත උත්සාහ කිරීම සඳහා පිළිගැනීම / ප්‍රතිචාරය සූදානම්ව තබා ගන්න
0/1 1 DA = TS
SA = SAM
FCB = FCBM
නැවත උත්සාහ කරන්න ඉල්ලීම FCBM:=FCB
නැවත නැවත පිළිගැනීම / ප්‍රතිචාරය සහ සූදානම දිගටම තබා ගන්න
0/1 1 DA = TS
SA#SAM
නව ආරම්භකයා FCBM:=FCB
SAM:= SA පිළිගැනීම / ප්‍රතිචාරය නැවත උත්සාහ කිරීම සඳහා සූදානම්ව තබා ගන්න

FCBM මතකයේ FCB ගබඩා කර ඇත SAM මතකයේ SA ගබඩා කර ඇත




ඉහල