paint-brush
Zoom M3 MicTrak File Recovery: ናብ ዓለም ዳታ ሪከቨሪ ዝግበር ጀብሃ@wasteofserver
114 ንባባት ሓድሽ ታሪኽ

Zoom M3 MicTrak File Recovery: ናብ ዓለም ዳታ ሪከቨሪ ዝግበር ጀብሃ

Frankie12m2025/03/02
Read on Terminal Reader

ኣዝዩ ነዊሕ፤ ንምንባብ

ናብ ዓለም ዳታ ሪከቨር ዝግበር ጀብሃ። ዳታ ሪከቨር ሶፍትዌር ከመይ ከም ዝሰርሕ ተማሃሩን እቲ Zoom M3 MicTrak ፋይል ሪከቨሪ መሳርሒ ብኸመይ ከም ዝተፈጥረ መስርሕ ተኸታተሉ።
featured image - Zoom M3 MicTrak File Recovery: ናብ ዓለም ዳታ ሪከቨሪ ዝግበር ጀብሃ
Frankie HackerNoon profile picture
0-item


ከመይ ጌሩ ተኸታታሊ ዘይርአ ፍጻመታት ናብ ዓሚቝ ጉዕዞ ናብ ክልተኣዊ ኢንኮዲንግ ናይ RIFF ፋይላትን እዚ ዳታ ምምላስ መሳርሒን ይመርሕ


እንተተሃዊኽካ ብቐጥታ ናብ መኽዘን GitHub ኣቕንዕ ።


ዕድለኛ ኮይነ ንብሉጻት ኩባንያታት ዝኸውን ሶፍትዌር ከማዕብል ከለኹ፡ ወትሩ ግን "ወዲ ሕታሚ" እየ ነይረ፡ እዚ ድማ ብኹርዓት ዝለብሶ ባጅ እዩ።

ምናልባት ድማ እዚ ምኽንያት ክኸውን ይኽእል እዩ፡ ንልዕሊ ርብዒ ዘመን፡ ሰባት ንምድሓን መኽዘን ሒዞም ዝቐረቡሉ ምኽንያት። ብሞያዊ መንገዲ ገይረዮ ኣይፈልጥን እየ፣ በቃ ዘሐጉሰኒ ነገር እዩ፣ መብዛሕትኡ ግዜ ድማ ክሕግዝ ይኽእል እየ።

እቲ መስርሕ

ቀንዲ ኣቀራርባይ ክልተ ዕጽፊ እዩ፤

  • ካብቲ ዝመውት ዘሎ መሳርሒ ዝከኣለካ ምሓዝ

  • ነቲ ዳታ ዳግማይ ክትፈጥሮ ፈትን።


ሓደ ሓደ ግዜ፡ ንባብ ተጻዋርነት ብምትዕርራይ ጥራይ፡ ኩሉ ካብ ዲስክ ዊንዶውስ ወይ ማክ ሪጀክት ክትሕዞ ትኽእል ኢኻ፡ ምኽንያቱ እቲ ኦኤስ ካብቲ ዝሞት ዘሎ ማዕከን ዜና ክምልስ ዝኽእል ንላዕሊ ቅልጡፍ ግዜ ስለዘውዳእ። ን7 ወርሒ ኣብ ሳንዱቕ ዝተኣሳሰረ ዲስክ ኣለኒ፤ 100% ናይ ምሕዋይ ዓወት!


ሓደ ሓደ ግዜ፡ ቁንጣሮ ዳታ ክጎድሉኻ እዮም፡ ግን ሓደ ካብቲ File Allocation Table/Master File Table/Container superblock/root B-tree ጌና ኣሎ፡ ስለዚ መብዛሕትኡ ዳታ ብኽልቲኡ ኣስማት ፋይላትን ቦታ ገረብን ክድሕን ይኽእል።


ኣብ ጫፍ ግን ብዘይካ ገለ ካብቲ ጥረ ዳታ ካልእ ኣይትተርፍን። ክትገብሮ እትኽእል ምቕራጽ ጥራይ እዩ - ብመሰረቱ ነፍሲ ወከፍ ባይት ካብቲ ማእከላይ ምንባብ፣ ከም JPG ( FF D8 ) ወይ MKV ( 1A 45 DF A3 ) ዝኣመሰሉ ዝፍለጡ ርእስታት ምልላይ፣ ክሳብ መወዳእታ ናይቲ ፋይል ድማ ንኹሉ ተኸታታሊ ዳታ ንምሓዝ ምቕጻል። ብዝኾነ ምኽንያት እቲ ፋይል እንተተበታቲኑ ምቕራጽ ከም ዝፈሽል ርዱእ እዩ።

ጻውዒት ካብ ፒየር ዛጎ

ፍራንኪ፡ እዚ ቅድሚ ሕጂ ኣይተፈጸመን፡ ብሓፈሻ ጥንቁቕ እየ... እንታይ ይሓስብ ከም ዝነበርኩ ኣይፈልጥን እየ - ብጌጋ ንሓንቲ SD ካርድ ብድምጺ ንሓደ ምሉእ ክፍለ ግዜ ፎርማት ገይረያ ኣለኹ። ዝገደደ ድማ ገለ ፋይላት ኣብ ልዕሊኡ ኣቐሚጠ ኣለኹ!


ፒየር ንምእማኑ ዘጸግም ንፉዕ ኮሜድያንን ፍሉይ ተዋሳኣይን እዩ። ስርሑ ብዙሕ ሸነኻት ዘለዎ ክኸውን ከሎ፡ ብናይ ጎደና ስእልታት ብሰፊሑ ተፈሊጡ፡ ገሊኡ ድማ ፍጹም ኣድማሳዊ እዩ። በቃ ኣብ ታሕቲ ዘሎ "ይቕሬታ" ጥራይ ዝብል ምልክት ግበር።

እዚ ስእሊ ቅልልነትን ኮሜዲ ስሕበትን ቀሊል ልቢ ዘለዎ ግን ከኣ ኣድማሳዊ ማራኺ ስነ-ጥበባዊ ስራሕ ይፈጥር።


በዚ ቀሊል ስጉምቲ ፒየር ናብታ ክለብ ተጸንቢሩ ነበረ። ኩሉ ሰብ ይሓዋውስ። ዋላ ፒክሳር . ኣይትሻቐሉ፡ ካርድ እናወሰድኩም ከለኹ፡ እቲ ኣብ ልዕሊኡ ዝተጻሕፈ ትሕዝቶ ጠፊኡ’ዩ፡ ግን ዋላ ብዘይ FAT tables፡ ብማይክሮፎን ዝተሰርሐ ካርድ ምዃኑ ኣብ ግምት ብምእታው፡ ምናልባት ዳታ ተኸታታሊ ክኸውን ስለ ዝኽእል፡ ዝበዝሕ ዝቐረጽካዮ ክንቀርጾ ክንክእል ይግባእ በልኩ።


ኣይፈለጥኩን፣ እዚ ሓደ ካብቶም ድሕሪ ቁሩብ ግዜ ዝሰርሓሎም መሳጢ መጻወቲ ፕሮጀክትታት ክኸውን እዩ። ንመወዳእታ ግዜ ክንድዚ ዝኣክል ዘዘናግዕኩሉ እዋን፡ ንሓንቲ ናይ ' ኦስ ኣዘይቶናስ ' ኣልቡም ዝኸውን ማስተርስ ዝሓዘ ሃርድዌር RAID-0 ዳግማይ ምህናጽ ’ ዩ።

እቲ መቓልሕ (መቓልሕ፡ መቓልሕ)...

ከምቲ ትጽቢት ዝተገብረሉ፡ ዳታ ንምምላስ ዝነበረ እንኮ መገዲ ካብቲ ናይ ምስሊ መጉሓፊ ብምቕራጽ እዩ ነይሩ። ካብኡ ክትመርጽ እትኽእል ብዙሕ መሳርሒታት ኣሎ ፡ ፎቶረክ (ክፉት ምንጪ) ፡ ረኩቫ (ንባንድልዌር ተጠንቀቑ) ፡ ሪክላይሚ (ዝኽፈል) ወዘተ... ዋላ እኳ ኣነ ብኸፊል ን R-Studio (ዝኽፈል) እንተኾንኩ፤ ውጽኢቶም ብቐጻሊ ካብቲ ውድድር ይበልጽ።


ኣብዚ ኣጋጣሚ እዚ፡ ብዝኾነ፡ ነገራት ክንድዚ ቀለልቲ ኣይምኾኑን። ኩሉ ዝተፈተነ ሶፍትዌር ነቶም wav ፋይላት ከውጽኦም ክኢሉ፡ ኩሎም ግን እዚ ምድግጋም ስለዝነበሮም፡ መቓልሕ ዓይነት ስለዝነበሮም፡ ኣብቲ ዳታ ምናልባት ጌጋ ነገር ነይሩ።


ቁሩብ ምስማዕ ስለ ዝደኸምኩ፡ እንታይ ይኸውን ከም ዘሎ ንምፍታሽ ኣብ ኣውዳሲቲ ከፊተዮም። ኣብዚ ብንጹር ቅዲ ክትሪኡ ትኽእሉ ኢኹም፤


ኣብ ነፍሲ ወከፍ ~ 0.7 ካልኢት ብመጠኑ ምድግጋም ኣሎ።


እቶም ጨናፍር ቁሩብ ተመሳሳሊ ቅርጺ ማዕበል ክህልዎም እንከሎ - ዝኾነ ዓይነት ክልተኣዊ ምትእስሳር የለን። ብዘይካዚ ገለ ድብዝዝ ዝበለ ነገር እውን ነይሩ፣ ነፍሲ ወከፍ wav ፋይል 2 ተኸታተልቲ ርእሲ ዝመስል ነይርዎ።


Mind you, ኣብዚ እዋን እዚ ብዛዕባ wav files ዘለኒ ኣፍልጦ እቲ header 52 49 46 46 ምዃኑ እዩ ነይሩ። ማይክ ካብ ምጥቃም ወጻኢ፡ ንፒየር ብጭቡጥ ከመይ ጌሩ ነቲ ዳታ ከም ዝቐረጾ ኣይሓተትክዎን። ይኹን እምበር ኣብቲ ርእሲ "ZOOM M3" ዝብል ምልክት ምስ ረኣኹ፡ ነቲ በዓል መዚ ኣብ ኩሉ ድምጺ ደዊለሉ።

ፍጹም ድምጺ፡ ሓደ ዓይነት ስሕተት።

ኤድ ንዝሓሸ ክፋል ናይዚ ዕድሚኡ ኣብ ፍጥነት ምድዋል ጸኒሑ። ዕድለኛ እየ ከምኡ። ኪኖ’ቲ ክትኣምኖ ዘጸግም ኣወሃሃዲ ሙዚቃ ምዃኑ - ትንፋስ ዝህብ ብሉጽ መንእሰይ ጥራይ ስምዑ - ንሱ’ውን ፍጹም ድምጺ ዘለዎ፡ ህያውን ዘስተንፍስን፡ ሳይክሎፔድያ ኣብ ድምጺ’ውን እዩ።


ዙም? እወ እወ። ኣነ ሓንቲ ኣላትኒ። ንኽልቲኡ wavን rawን ይምዝግቡ። ዳታ ተበላሽዩ ድዩ? ኣሕ። እርግፀኛ። ካብ ሕማም ምድሓን፧ ዝተጠዋወዩ ፋይላት? እዚ ዘይከኣል ዕማም ክኸውን እዩ፡ ዋላ እንተዘይኮነ ድማ ዳግማይ ምቕራጽ ጥራይ ቀሊል ክኸውን እዩ።


ኣብኡ ድማ ንዓይ ነይሩኒ። ብርግጽ ዳግማይ ምቕራጽ ጥራይ ምቐለለ፣ ዋላ ፒየር ኣብ ሓደ እዋን ድምጺ ምሃብ ክገብር ሓሳብ ኣቕሪቡ ነይሩ፣ ግን ኣብኡ እቲ ዘዘናግዕ ኣበይ ምኾነ?

ዙም ኤም 3 ማይክትራክ

እቲ ማጂክ ቁጽሪ

ኤድ ክሳብ ዝገልጾ ኣምር raw ማዕበል እኳ ኣየድነቕኩዎን፣ ሕጂ ግን እቲ ማይክ ክልተ ብሓንሳብ ፋይላት ከም ዝዕቅብ ፈሊጠ፣ ኩሉ ኣብ ቦታኡ ወዲቑ።


ዲጂታላዊ ካሜራታት ክልቲኡ ፎርማት ምዕቃብ ልሙድ ኮይኑ፡ ማይክሮፎን ግን ዝተፈለየ ኣራዊት እዩ። ተጠቃሚ ክንደይ ግዜ ከም ዝምዝግብ ኣቐዲምካ ዝውስነሉ መንገዲ የለን፡ እዚ ሓደ ስትሪም እንተዝኸውን ጉዳይ ኣይምኾነን። ንኽልቲኡ ትራክታት ትዕቅብ ስለዘላ፡ ቁሩብ ዝያዳ ጸወታ ተሳቲፉ ኣሎ።


ትርእዮ ኣለኻ፡ record ምስ ሃረምካ፡ እቲ ማይክ ክልተ ፋይላት ይፈጥር እሞ፡ ነቲ ካብ ክልቲኡ ዝተቐረጸ ዳታ ብቐጻሊ ናብቲ ካርድ ይፈስሶ። ንሱ፣ ብቑንጣሮ ዳታ እዩ ዝፍጸም። ሓደ ንራው፡ ካልእ ንዋቭ፡ ደግሞ።


ነቶም ቁራጽ ዳታ ንምፍታሕ ክንነጽሎም ስለዘድልየና ፡ ልክዕ ዓቐኖም ክንፈልጥ ኣሎና . ኣብኡ ድማ ኣሎ እቲ ስሕበት ቁጽርና !


ቀዳማይ ሓሳበይ እቶም ቁንጣሮ ምስ exFAT allocation unit size ክስለፉ ይኽእሉ እዮም ዝብል እዩ ነይሩ። ኣብ ከምዚ ኩነታት 128 KBytes . ንፈትኖ።


እቲ ርእሲ፣ እዚ ስቴሪዮ ፋይል (2 ቻነላት) ምዃኑ ብንጹር ይገልጽ፣ ኣብ ሓደ ቻነል ብ32 ቢት ዝተቐድሐ፣ ኣብ ካልኢት 48k ግዜ ናሙና ተገይሩሉ። ካብዚ ኣብ ላዕሊ ዘሎ ምስሊ እንተዘኪርኩም፡ እቶም ቁንጣሮ ኣብ ኣስታት 0.7 ካልኢት ይደግሙ።


ኣብ ልዕሊ ቻንክ ባይትስ ረሳሕ ግምት ንውሰድ ምእንቲ እቲ ቦልፓርክ ክንፈልጥ።


 1 second of data = 2 channels * 32 bits * 48000 samples 1 second of data = 384000 bytes 0.7 seconds ~ 268800 bytes

ኣብ ከባቢ 268 KBytes ዝኾኑ ቁንጣሮ ንርኢ ኣለና።


ከምኡ ውን ልክዕ ከምኡ ዳታ ናብ exFAT AUS of 128 Kbytes ክጭበጥ ይኽእል እዩ ዝብል ሓሳብ ብቕጽበት ይንጸግ።


እቲ ዝቕጽል ርኡይ ስጉምቲ ኣብ መሰረት 2 ንላዕሊ ምጉዓዝ ምኾነ።4096 ንመዕቆሪታት ጽቡቕ ሚዛን ምዃኑ ኣብ ግምት ብምእታው ካብኡ ንገምግም፤


 4096 * 32 = 131072 (falls short by about 1/2) 4096 * 64 = 262144 (is in the ballpark of what we're expecting) 262144/384000 ~ 0.682 seconds of data


0.682 ካልኢት ምስቲ 0.7 ካልኢት ዝብል ግምትና ኣዝዩ ፍጹም ስለ ዝሰማማዕ ፡ 262144 እቲ ንደልዮ ዝነበርና ቀዋሚ ምዃኑ ብኡንብኡ ፈሊጠ።

እቲ ዳግመ ህንጸት።

ብኣምር እቲ ጸገም ተፈቲሑ። ሕጂ፡ ነቲ መሳርሒ ናይ ምህናጽ ጉዳይ ጥራይ እዩ ነይሩ። ንዕኡ ድማ፤


  • ነቶም ፋይላት ብቐጥታ ካብቲ ናይ ምስሊ መጉሓፊ ምፍታሕ ። ብኻልእ ናይ ምቕራጽ ሶፍትዌር ዝተመልሱ ቁራጽ ፍርቂ ናይቲ ትጽቢት ዝግበረሉ ዓቐን ስለ ዝኸውን (እቲ ዳታ ቻንክ ክልተ ፋይላት ስለዘለዎ፡ ብሓቂ ካብቲ ዝተጸብጸበ መጠን ዕጽፊ እዩ)።


  • ከመይ ጌርካ ርእሲ RIFF ከም እትፈጥር ተማሃር


  • እቶም ዝተመልሱ ፋይላት ምስቲ "M3 ZOOM Edit & Play" ሶፍትዌር ዝሰማምዑ ንምግባር ብ BEXT chunk RIFF header ምፍጣር



ኣብኡ ድማ ዝያዳ ከም ገዛኻ ኮይኑ ከም ዝስምዓካ ርግጸኛ እየ።


ይኹን እምበር፡ ንጉግል ኢንዴክስ ክብል፡ ንኽልቲኡ ርእሲ RIFFን BEXTን ዝፈጥሩ ሜላታት ኣብዚ ገዲፈዮም ኣለኹ፡ እዚ ድማ ክረኽቦ ዘይከኣልኩ ነገር እዩ፡ እዚ ድማ ሕማቕ ኣጋጣሚ ኮይኑ፡ እቲ መስርሕ ካብቲ ክእመነሉ ዝደሊ ንላዕሊ ነዊሕ ከም ዝወስድ ገይርዎ።


 public class RiffFile { /** * Creates a RIFF header with BEXT and fmt chunks * * @param sampleRate the sample rate of the audio (8000Hz, 44100Hz, 48000Hz, etc) times per second the audio is sampled * @param bitsPerSample the bits per sample (8bits, 16bits, 32bits, etc) * @param channels the number of channels (1 mono, 2 stereo, etc) * @param audioDataSize the size of the audio data in bytes * @return the RIFF header * @throws IOException if an I/O error occurs */ public static byte[] createRiffHeader(int sampleRate, short bitsPerSample, short channels, int audioDataSize) throws IOException { // calculate the byte rate, block align and file size int byteRate = sampleRate * channels * bitsPerSample / 8; short blockAlign = (short) (bitsPerSample * channels / 8); // stream that will carry the new RIFF file ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(byteArrayOutputStream); // riff header out.writeBytes("RIFF"); out.writeInt(Integer.reverseBytes(0)); out.writeBytes("WAVE"); // 9-12 Format always WAVE // bext chunk writeBextChunk(out); // fmt chunk out.writeBytes("fmt "); // 13-16 chunkID is "fmt " with trailing whitespace out.writeInt(Integer.reverseBytes(16)); // 17-20 size of this chunk, is 16 byts out.writeShort(Short.reverseBytes((short) 3)); // 21-22 (2 bytes) audioFormat (1 PCM integer, 3 IEEE 754 float) out.writeShort(Short.reverseBytes(channels)); // 23-24 (2 bytes) numChannels (1 mono, 2 stereo, 4, etc) out.writeInt(Integer.reverseBytes(sampleRate)); // 25-28 (4 bytes) sampleRate (8000, 44100, 48000, etc) out.writeInt(Integer.reverseBytes(byteRate)); // 29-32 (4 bytes) byteRate (sampleRate * numChannels * bitsPerSample/8) out.writeShort(Short.reverseBytes(blockAlign)); // 33-34 (2 bytes) blockAlign (numChannels * bitsPerSample/8) out.writeShort(Short.reverseBytes(bitsPerSample)); // 35-36 (2 bytes) bitsPerSample (8bits, 16bits, 32bits, etc) // data chunk out.writeBytes("data"); // 37-40 chunkID ID is "data" out.writeInt(Integer.reverseBytes(audioDataSize)); // 41-44 size of this chunk varies out.close(); // write the full size of the file on the 4-8 bytes byte[] outArr = byteArrayOutputStream.toByteArray(); int size = outArr.length - 8; ByteBuffer.wrap(outArr, 4, 4).order(ByteOrder.LITTLE_ENDIAN).putInt(size); return outArr; } private static void writeBextChunk(DataOutputStream out) throws IOException { // bext chunk out.writeBytes("bext"); out.writeInt(Integer.reverseBytes(256 + 32 + 32 + 10 + 8 + 8 + 8 + 2 + 180 + 4 + 4 + 4 + 4 + 4 + 180)); // bext chunk size (fixed size for BWF) // description 256 bytes writeToArray(out, 256, ""); // 256 bytes description writeToArray(out, 32, "ZOOM M3"); // 32 bytes originator writeToArray(out, 32, ""); // 32 bytes originator reference writeToArray(out, 10, "2023-10-01"); // 10 bytes origination date writeToArray(out, 8, "12:00:00"); // 8 bytes origination time writeToArray(out, 8, "12:00:00"); // 8 bytes time reference out.writeLong(Long.reverseBytes(0L)); // 8 bytes time reference out.writeShort(Short.reverseBytes((short) 0)); // 2 bytes version out.write(new byte[180]); // 180 bytes UMID out.writeFloat(0.0f); // 4 bytes loudness value out.writeFloat(0.0f); // 4 bytes loudness range out.writeFloat(0.0f); // 4 bytes max true peak level out.writeFloat(0.0f); // 4 bytes max momentary loudness out.writeFloat(0.0f); // 4 bytes max short term loudness // zoom m3 needs this bit to allow file to be read from "zoom m3 edit & play" writeToArray(out, 180, "A=PCM,F=48000,W=32,M=stereo,T=M3;VERSION=1.00;MSRAW=ON ;"); } }


ከምቲ ትርእይዎ ዘለኹም ኣብቲ BEXT chunk ብዙሕ ጻዕሪ ኣይተገብረን፤ "Zoom M3 Edit & Play" ዝሰማማዕ ምዃኑ ንምርግጋጽ ጥራይ እየ ፈጢረዮ።

እቲ መሳርሒ

መሳጢ ንባብ ከም ዝነበረኩም ተስፋ እገብር። ነዚ መሳጢ እናገበርኩ ነቲ ናይ ኣተሓሳስባ መስርሕ መጋረጃ ከልዕሎ ፈቲነ። እቲ ጭቡጥ ኮድ ባዕሉ ዝገልጽ ክኸውን ተስፋ ንገብር፡ ኣብዚ ድማ ክትረኽብዎ ኢኹም፤


https://github.com/wasteofserver/zoom_m3_ማይክ_ዋቭ_ዳታ_ምምላስ/


እቲ ብድሆ ዝጠፍኡ ቅዳሓት ምምላስ ጥራይ ኣይነበረን - ባህላዊ መሳርሒታት ንምንታይ ከም ዝፈሸሉ ምርዳእን ዝሰርሕ ኣገባብ ምምዕባልን እዩ ነይሩ።


ዳግማይ ንምምዝጋብ ዝቐለለ ክኸውን ይኽእል እኳ እንተነበረ፡ ነቲ ሕንቅልሕንቅሊተይ ምፍታሕ ዝነበረ ፍናን ግን ነቲ ጻዕሪ ዋጋ ከም ዘለዎ ገበሮ። ኣብ መወዳእታ፡ ንናይ Zoom M3 MicTrak ቅዳሓት ብዓወት ዝመልስ ብፍቓድና ዝተሰርሐ መፍትሒ ረኺብና።


ኣብ ተመሳሳሊ ኩነታት እንተረኺብካዮ፡ ተስፋ ንገብር እዚ ምብትታን ክሕግዘካ። እንተዘይኮይኑ ድማ ጽቡቕ፡ እንተወሓደ ንእሽቶ ጀብሃ ናብ ዓለም ዳታ ሪከቨሪ ከተስተማቕር ረኺብካ።


እዚ ዛንታ ንመጀመርያ ግዜ ኣብ https://wasteofserver.com/zoom-m3-mictrak-file-recovery/ ተሓቲሙ። ንእዋናዊ ሓበሬታን ርእይቶታትን ኣብኡ ክትከታተልዎ ትኽእሉ ኢኹም።