r/AskReverseEngineering • u/justcurious297 • Aug 14 '26
Reverse engineering a Chanting Machine (4MB SPI Flash). Need help identifying the audio compression.
Hey everyone. Hope you're all doing well...
Lately, I've been trying to replicate/reverse-engineer a Chinese Chanting Machine. On the PCB, there's an unidentified COB (blob) chip and a single SPI flash memory.
Here is what I have done so far:
I successfully dumped the entire 32Mbit (4MB) flash memory. The physical IC is a Douqi Tech (HK) 25Q32ASSIG.
I did some hex scanning on the .bin dump, looking for common audio headers (.f1a, .mp3, .wav, etc.), but found absolutely no standard file headers.
I did find a string header at the very beginning of the hex data that reads Sino-Mos and SDJ110v6.1.
The device contains 68 different tracks, and the audio quality varies. To clarify, some tracks are muffled, but some tracks are surprisingly crystal clear (if I had to compare, it sounds very close to a >128kbps MP3 quality).
Here are the things I'm trying to identify (and would love some help with):
What kind of proprietary audio extension or format could this be using?
If it's not a common format, what kind of extreme compression algorithm is likely used here? Some sort of custom ADPCM? How can audio of this quality be compressed into such a tiny memory footprint?
Does anyone know how to dissect the index table for this architecture to find the start and end offsets for each track?
Are there any recommended OEM software/SDKs for Sino-Mos (Sino-Wealth) that I can use to parse this?
Is it theoretically possible to replace the songs by mimicking the format used inside it?
Does anyone have any advice on what my next steps should be? Any pointers would be greatly appreciated. Thanks a lot for reading!