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

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

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

දත්ත අත්සන

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

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-bit සහ 64-bit OS හි char , කෙටි සහ දිගු දිගු වර්ග වල ප්‍රමාණය සහතික වන අතර int , long , size_t සහ ptrdiff_t වල ප්‍රමාණය වෙනස් විය හැක (පළමු දෙක සඳහා - මත පදනම්ව සම්පාදක සංවර්ධකයින්ගේ මනාපයන්). , අවසාන දෙක සඳහා - ඉලක්ක පද්ධතියේ බිට් ගැඹුර මත පදනම්ව). පැරණි හෝ දුර්වල ලෙස ලියා ඇති කේතයේ, වර්ගයක ප්‍රමාණය දැක්වෙන "මැජික් අංක" තිබිය හැක - වෙනස් බිට්නස් සහිත යන්ත්‍ර වෙත ගමන් කරන විට, ඒවා සියුම් දෝෂ වලට තුඩු දිය හැකිය.

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

const size_t NUMBER_OF_ELEMENTS = 10 ; දිගු [ 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 column කියන තැනට 21 ඇතුලත් කරන්න අමතක කරන්න එපා.

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

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

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

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

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

එය වහාම ඇතුල් කරන්න

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

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

අවසාන ගොනු අත්සනෙහි අකුරු නොවන අකුරු නොතිබූ නමුත් සිඳීම් සහ ත්‍රිකෝණ වරහන් තිබූ බව මතක තබා ගන්න. 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. ස්කෑන් කිරීම සම්පූර්ණ වූ පසු, Extra Found Files අයිතමය තෝරා එය මත දෙවරක් ක්ලික් කරන්න.


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

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


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

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

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


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

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

rarjpeg වැනි ගොනු ගැන බොහෝ දෙනෙක් අසා ඇති. මෙය jpeg රූපයක් සහ rar ලේඛනාගාරයක් තදින් එකට අලවා ඇති විශේෂ ගොනුවකි. තොරතුරු හුවමාරු කිරීමේ කාරනය සැඟවීමට මෙය විශිෂ්ට රුවනයකි. ඔබට 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
දත්ත විස්තරකය n
සංරක්ෂිත විකේතන ශීර්ෂකය
අමතර දත්ත වාර්තාවක් සංරක්ෂණය කරන්න
මධ්යම නාමාවලිය
වඩාත්ම සිත්ගන්නා කරුණ වන්නේ සංරක්ෂිතයේ ඇති ගොනු පිළිබඳ පාර-දත්ත අඩංගු මධ්‍යම නාමාවලියයි. මධ්‍යම නාමාවලිය සෑම විටම 0x50 0x4b 0x01 0x02 අත්සනින් ආරම්භ වන අතර 0x50 0x4b 0x05 0x06 අත්සනින් අවසන් වේ, පසුව පාර-දත්ත බයිට් 18 කින් අවසන් වේ. සිත්ගන්නා කරුණ නම්, හිස් ලේඛනාගාරය සමන්විත වන්නේ අවසාන අත්සන සහ null bytes 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 අත්සනින් ආරම්භ වේ, කෙසේ වෙතත්, මෙම ගොනුවට බයිට් 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 සඳහා නීති ලියන්නේ කෙසේද යන්නත්, නොමිලේ aver එකකින් වෛරස් අත්සන් සහ PEiD වෙතින් පැකර් අමුණන්නේ කෙසේද යන්නත් ඉක්මනින් සොයා ගතිමි. නමුත් අපි ස්ථාපනය සමඟ ආරම්භ කරමු.

ස්ථාපන

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

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

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

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

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

පළමු අත්සන් වල ප්‍රධාන දත්ත සමුදාය අඩංගු වේ, දෙවැන්න - වඩාත්ම සම්පූර්ණයි මේ මොහොතේවිවිධ එකතු කිරීම් සහිත පදනම. මෙම කාර්යය සඳහා, malware casts 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() ගොඩනැගීමට පෙනුමෙන් බෙහෙවින් සමාන වේ.

නරක කොල්ලා පාලනය කරන්න
{
නූල්:
$a = "win.exe"
$b = "http://foo.com/badfile1.exe"
$c = "http://bar.com/badfile2.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_set හි දක්වා ඇති තන්තු වලින්, අවම වශයෙන් ප්‍රකාශන කෑලි boolean_expression තත්ත්වය තෘප්තිමත් කළ යුතුය. නැතහොත්, වෙනත් වචන වලින් කිවහොත්: boolean_expression string_set වෙතින් සෑම තන්තුවක් සඳහාම ඇගයීමට ලක් කෙරේ, සහ ඒවායින් ප්‍රකාශනය සත්‍ය ලෙස ලබා දිය යුතුය. ඊළඟට, අපි මෙම ඉදිකිරීම විශේෂිත උදාහරණයක් මත සලකා බලමු.

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. ඉන්පසුව අපි PEiD දත්ත ගබඩාව ASPack සමඟ ඔවුන්ගේ නම්වල ඇති සියලුම අත්සන් සඳහා සොයමින් ඒවා රීතියට මාරු කරමු:

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 එකක් ලියලා ඒක web service එකක් විදියට හදාගන්න එක මට අමාරු වුනේ නෑ. කුඩා නිර්මාණශීලීත්වයකින්, විශ්ලේෂකයේ වියළි ප්රතිඵල දැනටමත් විවිධ වර්ණවලින් වර්ණාලේප කර ඇති අතර, අනාවරණය කරගත් අනිෂ්ට මෘදුකාංගයේ අන්තරායකාරී මට්ටම පෙන්නුම් කරයි. දත්ත සමුදායේ කුඩා යාවත්කාලීන කිරීමක් සහ බොහෝ ක්‍රිප්ටර් සඳහා කෙටි විස්තරයක් ලබා ගත හැකි අතර සමහර විට ඇසුරුම් ඉවත් කිරීම සඳහා උපදෙස් පවා ඇත. මූලාකෘතිය නිර්මාණය කර පරිපූර්ණ ලෙස ක්‍රියාත්මක වන අතර බලධාරීන් ප්‍රීතියෙන් නටති!

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

7 6 5 4 3 2 1 0 FC: කාර්ය කේත ඉල්ලීම
1 Telegram ඉල්ලන්න
x FCV = විකල්ප බිටු ක්‍රියාත්මකයි
x href="http://profibus.felser.ch/en/funktionscode.htm#aufruffolgebit">FCB = විකල්ප බිටු (රාමු ගණනින්)
1 0 (0x0) CV = ClockValue()
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 ගබඩා කර ඇත




ඉහල