From 1552a667f6635fa674374df1b94205260d035e0b Mon Sep 17 00:00:00 2001 From: MengYX Date: Mon, 13 Dec 2021 20:42:07 +0800 Subject: [PATCH 1/7] init QMCv2: RC4 (512 Byte Key) --- algo/qmc/key_dec.go | 111 ++++++++++++++++++++ algo/qmc/key_dec_test.go | 52 +++++++++ algo/qmc/qmc_512.go | 125 ++++++++++++++++++++++ algo/qmc/qmc_512_test.go | 48 +++++++++ algo/qmc/rc4.go | 133 ++++++++++++++++++++++++ algo/qmc/rc4_test.go | 72 +++++++++++++ algo/qmc/testdata/rc4_key.bin | 1 + algo/qmc/testdata/rc4_key_raw.bin | 1 + algo/qmc/testdata/rc4_raw.bin | Bin 0 -> 20480 bytes algo/qmc/testdata/rc4_suffix_mflac0.bin | Bin 0 -> 724 bytes algo/qmc/testdata/rc4_target.bin | Bin 0 -> 20480 bytes 11 files changed, 543 insertions(+) create mode 100644 algo/qmc/key_dec.go create mode 100644 algo/qmc/key_dec_test.go create mode 100644 algo/qmc/qmc_512.go create mode 100644 algo/qmc/qmc_512_test.go create mode 100644 algo/qmc/rc4.go create mode 100644 algo/qmc/rc4_test.go create mode 100644 algo/qmc/testdata/rc4_key.bin create mode 100644 algo/qmc/testdata/rc4_key_raw.bin create mode 100644 algo/qmc/testdata/rc4_raw.bin create mode 100644 algo/qmc/testdata/rc4_suffix_mflac0.bin create mode 100644 algo/qmc/testdata/rc4_target.bin diff --git a/algo/qmc/key_dec.go b/algo/qmc/key_dec.go new file mode 100644 index 0000000..2ed86f1 --- /dev/null +++ b/algo/qmc/key_dec.go @@ -0,0 +1,111 @@ +package qmc + +import ( + "encoding/base64" + "errors" + "math" + + "golang.org/x/crypto/tea" +) + +func simpleMakeKey(salt byte, length int) []byte { + keyBuf := make([]byte, length) + for i := 0; i < length; i++ { + tmp := math.Tan(float64(salt) + float64(i)*0.1) + keyBuf[i] = byte(math.Abs(tmp) * 100.0) + } + return keyBuf +} +func DecryptKey(rawKey []byte) ([]byte, error) { + rawKeyDec := make([]byte, base64.StdEncoding.DecodedLen(len(rawKey))) + _, err := base64.StdEncoding.Decode(rawKeyDec, rawKey) + if err != nil { + return nil, err + } + + simpleKey := simpleMakeKey(106, 8) + teaKey := make([]byte, 16) + for i := 0; i < 8; i++ { + teaKey[i<<1] = simpleKey[i] + teaKey[i<<1+1] = rawKeyDec[i] + } + + rs, err := decryptTencentTea(rawKeyDec[8:], teaKey) + if err != nil { + return nil, err + } + return append(rawKeyDec[:8], rs...), nil +} +func decryptTencentTea(inBuf []byte, key []byte) ([]byte, error) { + const saltLen = 2 + const zeroLen = 7 + if len(inBuf)%8 != 0 { + return nil, errors.New("inBuf size not a multiple of the block size") + } + if len(inBuf) < 16 { + return nil, errors.New("inBuf size too small") + } + + blk, err := tea.NewCipherWithRounds(key, 32) + if err != nil { + return nil, err + } + + destBuf := make([]byte, 8) + blk.Decrypt(destBuf, inBuf) + padLen := int(destBuf[0] & 0x7) + outLen := len(inBuf) - 1 - padLen - saltLen - zeroLen + if padLen+saltLen != 8 { + return nil, errors.New("invalid pad len") + } + out := make([]byte, outLen) + + ivPrev := make([]byte, 8) + ivCur := inBuf[:8] + + inBufPos := 8 + + destIdx := 1 + padLen + cryptBlock := func() { + ivPrev = ivCur + ivCur = inBuf[inBufPos : inBufPos+8] + + xor8Bytes(destBuf, destBuf, inBuf[inBufPos:inBufPos+8]) + blk.Decrypt(destBuf, destBuf) + + inBufPos += 8 + destIdx = 0 + } + for i := 1; i <= saltLen; { + if destIdx < 8 { + destIdx++ + i++ + } else if destIdx == 8 { + cryptBlock() + } + } + + outPos := 0 + for outPos < outLen { + if destIdx < 8 { + out[outPos] = destBuf[destIdx] ^ ivPrev[destIdx] + destIdx++ + outPos++ + } else if destIdx == 8 { + cryptBlock() + } + } + + for i := 1; i <= zeroLen; i++ { + if destBuf[destIdx] != ivPrev[destIdx] { + return nil, errors.New("zero check failed") + } + } + + return out, nil +} +func xor8Bytes(dst, a, b []byte) { + for i := 0; i < 8; i++ { + dst[i] = a[i] ^ b[i] + } +} diff --git a/algo/qmc/key_dec_test.go b/algo/qmc/key_dec_test.go new file mode 100644 index 0000000..de419b0 --- /dev/null +++ b/algo/qmc/key_dec_test.go @@ -0,0 +1,52 @@ +package qmc + +import ( + "os" + "reflect" + "testing" +) + +func TestSimpleMakeKey(t *testing.T) { + expect := []byte{0x69, 0x56, 0x46, 0x38, 0x2b, 0x20, 0x15, 0x0b} + t.Run("106,8", func(t *testing.T) { + if got := simpleMakeKey(106, 8); !reflect.DeepEqual(got, expect) { + t.Errorf("simpleMakeKey() = %v, want %v", got, expect) + } + }) +} + +func TestDecryptKey(t *testing.T) { + rc4Raw, err := os.ReadFile("./testdata/rc4_key_raw.bin") + if err != nil { + t.Error(err) + } + rc4Dec, err := os.ReadFile("./testdata/rc4_key.bin") + if err != nil { + t.Error(err) + } + tests := []struct { + name string + rawKey []byte + want []byte + wantErr bool + }{ + { + "512", + rc4Raw, + rc4Dec, + false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := DecryptKey(tt.rawKey) + if (err != nil) != tt.wantErr { + t.Errorf("DecryptKey() error = %v, wantErr %v", err, tt.wantErr) + return + } + if !reflect.DeepEqual(got, tt.want) { + t.Errorf("DecryptKey() got = %v..., want %v...", string(got[:32]), string(tt.want[:32])) + } + }) + } +} diff --git a/algo/qmc/qmc_512.go b/algo/qmc/qmc_512.go new file mode 100644 index 0000000..e0eff66 --- /dev/null +++ b/algo/qmc/qmc_512.go @@ -0,0 +1,125 @@ +package qmc + +import ( + "encoding/binary" + "errors" + "io" + "strconv" + "strings" +) + +type Mflac0Decoder struct { + r io.ReadSeeker + + audioLen int + decodedKey []byte + rc4 *rc4Cipher + offset int + + rawMetaExtra1 int + rawMetaExtra2 int +} + +func (d *Mflac0Decoder) Read(p []byte) (int, error) { + n := len(p) + if d.audioLen-d.offset <= 0 { + return 0, io.EOF + } else if d.audioLen-d.offset < n { + n = d.audioLen - d.offset + } + m, err := d.r.Read(p[:n]) + if m == 0 { + return 0, err + } + + d.rc4.Process(p[:m], d.offset) + d.offset += m + return m, err + +} + +func NewMflac0Decoder(r io.ReadSeeker) (*Mflac0Decoder, error) { + d := &Mflac0Decoder{r: r} + if err := d.searchKey(); err != nil { + return nil, err + } + + if len(d.decodedKey) > 300 { + var err error + d.rc4, err = NewRC4Cipher(d.decodedKey) + if err != nil { + return nil, err + } + } else { + panic("not implement") //todo: impl + } + + _, err := d.r.Seek(0, io.SeekStart) + if err != nil { + return nil, err + } + return d, nil +} + +func (d *Mflac0Decoder) searchKey() error { + if _, err := d.r.Seek(-4, io.SeekEnd); err != nil { + return err + } + buf, err := io.ReadAll(io.LimitReader(d.r, 4)) + if err != nil { + return err + } + if string(buf) == "QTag" { + if err := d.readRawMetaQTag(); err != nil { + return err + } + } // todo: ... + return nil +} + +func (d *Mflac0Decoder) readRawMetaQTag() error { + // get raw meta data len + if _, err := d.r.Seek(-8, io.SeekEnd); err != nil { + return err + } + buf, err := io.ReadAll(io.LimitReader(d.r, 4)) + if err != nil { + return err + } + rawMetaLen := int64(binary.BigEndian.Uint32(buf)) + + // read raw meta data + audioLen, err := d.r.Seek(-(8 + rawMetaLen), io.SeekEnd) + if err != nil { + return err + } + d.audioLen = int(audioLen) + rawMetaData, err := io.ReadAll(io.LimitReader(d.r, rawMetaLen)) + if err != nil { + return err + } + + items := strings.Split(string(rawMetaData), ",") + if len(items) != 3 { + return errors.New("invalid raw meta data") + } + + { + + d.decodedKey, err = DecryptKey([]byte(items[0])) + if err != nil { + return err + } + } + + d.rawMetaExtra1, err = strconv.Atoi(items[1]) + if err != nil { + return err + } + d.rawMetaExtra2, err = strconv.Atoi(items[2]) + if err != nil { + return err + } + + return nil +} diff --git a/algo/qmc/qmc_512_test.go b/algo/qmc/qmc_512_test.go new file mode 100644 index 0000000..218e13f --- /dev/null +++ b/algo/qmc/qmc_512_test.go @@ -0,0 +1,48 @@ +package qmc + +import ( + "bytes" + "io" + "os" + "reflect" + "testing" +) + +func loadTestDataRC4Mflac0() ([]byte, []byte, error) { + encBody, err := os.ReadFile("./testdata/rc4_raw.bin") + if err != nil { + return nil, nil, err + } + encSuffix, err := os.ReadFile("./testdata/rc4_suffix_mflac0.bin") + if err != nil { + return nil, nil, err + } + + target, err := os.ReadFile("./testdata/rc4_target.bin") + if err != nil { + return nil, nil, err + } + return bytes.Join([][]byte{encBody, encSuffix}, nil), target, nil + +} +func TestMflac0Decoder_Read(t *testing.T) { + raw, target, err := loadTestDataRC4Mflac0() + if err != nil { + t.Fatal(err) + } + + t.Run("mflac0-file", func(t *testing.T) { + d, err := NewMflac0Decoder(bytes.NewReader(raw)) + if err != nil { + t.Error(err) + } + buf := make([]byte, len(target)) + if _, err := io.ReadFull(d, buf); err != nil { + t.Errorf("read bytes from decoder error = %v", err) + return + } + if !reflect.DeepEqual(buf, target) { + t.Errorf("Process() got = %v, want %v", buf[:32], target[:32]) + } + }) +} diff --git a/algo/qmc/rc4.go b/algo/qmc/rc4.go new file mode 100644 index 0000000..f886d17 --- /dev/null +++ b/algo/qmc/rc4.go @@ -0,0 +1,133 @@ +package qmc + +import ( + "errors" +) + +// A rc4Cipher is an instance of RC4 using a particular key. +type rc4Cipher struct { + box []byte + key []byte + hash uint32 + boxTmp []byte +} + +// NewRC4Cipher creates and returns a new rc4Cipher. The key argument should be the +// RC4 key, at least 1 byte and at most 256 bytes. +func NewRC4Cipher(key []byte) (*rc4Cipher, error) { + n := len(key) + if n == 0 { + return nil, errors.New("crypto/rc4: invalid key size") + } + + var c = rc4Cipher{key: key} + c.box = make([]byte, n) + c.boxTmp = make([]byte, n) + + for i := 0; i < n; i++ { + c.box[i] = byte(i) + } + + var j = 0 + for i := 0; i < n; i++ { + j = (j + int(c.box[i]) + int(key[i%n])) % n + c.box[i], c.box[j] = c.box[j], c.box[i] + } + c.getHashBase() + return &c, nil +} + +func (c *rc4Cipher) getHashBase() { + c.hash = 1 + for i := 0; i < len(c.key); i++ { + v := uint32(c.key[i]) + if v == 0 { + continue + } + nextHash := c.hash * v + if nextHash == 0 || nextHash <= c.hash { + break + } + c.hash = nextHash + } +} + +const rc4SegmentSize = 5120 + +func (c *rc4Cipher) Process(src []byte, offset int) { + toProcess := len(src) + processed := 0 + markProcess := func(p int) (finished bool) { + offset += p + toProcess -= p + processed += p + return toProcess == 0 + } + + if offset < 128 { + blockSize := toProcess + if blockSize > 128-offset { + blockSize = 128 - offset + } + c.encFirstSegment(src[:blockSize], offset) + if markProcess(blockSize) { + return + } + } + + if offset%rc4SegmentSize != 0 { + blockSize := toProcess + if blockSize > rc4SegmentSize-offset%rc4SegmentSize { + blockSize = rc4SegmentSize - offset%rc4SegmentSize + } + k := src[processed : processed+blockSize] + c.encASegment(k, offset) + if markProcess(blockSize) { + return + } + } + for toProcess > rc4SegmentSize { + c.encASegment(src[processed:processed+rc4SegmentSize], offset) + markProcess(rc4SegmentSize) + } + + if toProcess > 0 { + c.encASegment(src[processed:], offset) + } +} +func (c *rc4Cipher) encFirstSegment(buf []byte, offset int) { + n := len(c.box) + for i := 0; i < len(buf); i++ { + idx1 := offset + i + segmentID := int(c.key[idx1%n]) + idx2 := int(float64(c.hash) / float64((idx1+1)*segmentID) * 100.0) + buf[i] ^= c.key[idx2%n] + } +} + +func (c *rc4Cipher) encASegment(buf []byte, offset int) { + n := len(c.box) + copy(c.boxTmp, c.box) + + segmentID := (offset / rc4SegmentSize) & 0x1FF + + if n <= segmentID { + return + } + + idx2 := int64(float64(c.hash) / + float64((offset/rc4SegmentSize+1)*int(c.key[segmentID])) * + 100.0) + skipLen := int((idx2 & 0x1FF) + int64(offset%rc4SegmentSize)) + + j, k := 0, 0 + + for i := -skipLen; i < len(buf); i++ { + j = (j + 1) % n + k = (int(c.boxTmp[j]) + k) % n + c.boxTmp[j], c.boxTmp[k] = c.boxTmp[k], c.boxTmp[j] + if i >= 0 { + buf[i] ^= c.boxTmp[int(c.boxTmp[j])+int(c.boxTmp[k])%n] + } + } +} diff --git a/algo/qmc/rc4_test.go b/algo/qmc/rc4_test.go new file mode 100644 index 0000000..780ec8f --- /dev/null +++ b/algo/qmc/rc4_test.go @@ -0,0 +1,72 @@ +package qmc + +import ( + "os" + "reflect" + "testing" +) + +func loadTestData() (*rc4Cipher, []byte, []byte, error) { + key, err := os.ReadFile("./testdata/rc4_key.bin") + if err != nil { + return nil, nil, nil, err + } + raw, err := os.ReadFile("./testdata/rc4_raw.bin") + if err != nil { + return nil, nil, nil, err + } + target, err := os.ReadFile("./testdata/rc4_target.bin") + if err != nil { + return nil, nil, nil, err + } + c, err := NewRC4Cipher(key) + if err != nil { + return nil, nil, nil, err + } + return c, raw, target, nil +} +func Test_rc4Cipher_Process(t *testing.T) { + c, raw, target, err := loadTestData() + if err != nil { + t.Errorf("load testing data failed: %s", err) + } + t.Run("overall", func(t *testing.T) { + c.Process(raw, 0) + if !reflect.DeepEqual(raw, target) { + t.Error("overall") + } + }) + +} + +func Test_rc4Cipher_encFirstSegment(t *testing.T) { + c, raw, target, err := loadTestData() + if err != nil { + t.Errorf("load testing data failed: %s", err) + } + t.Run("first-block(0~128)", func(t *testing.T) { + c.Process(raw[:128], 0) + if !reflect.DeepEqual(raw[:128], target[:128]) { + t.Error("first-block(0~128)") + } + }) +} + +func Test_rc4Cipher_encASegment(t *testing.T) { + c, raw, target, err := loadTestData() + if err != nil { + t.Errorf("load testing data failed: %s", err) + } + t.Run("align-block(128~5120)", func(t *testing.T) { + c.Process(raw[128:5120], 128) + if !reflect.DeepEqual(raw[128:5120], target[128:5120]) { + t.Error("align-block(128~5120)") + } + }) + t.Run("simple-block(5120~10240)", func(t *testing.T) { + c.Process(raw[5120:10240], 5120) + if !reflect.DeepEqual(raw[5120:10240], target[5120:10240]) { + t.Error("align-block(128~5120)") + } + }) +} diff --git a/algo/qmc/testdata/rc4_key.bin b/algo/qmc/testdata/rc4_key.bin new file mode 100644 index 0000000..3bd0914 --- /dev/null +++ b/algo/qmc/testdata/rc4_key.bin @@ -0,0 +1 @@ +dRzX3p5ZYqAlp7lLSs9Zr0rw1iEZy23bB670x4ch2w97x14Zwpk1UXbKU4C2sOS7uZ0NB5QM7ve9GnSrr2JHxP74hVNONwVV77CdOOVb807317KvtI5Yd6h08d0c5W88rdV46C235YGDjUSZj5314YTzy0b6vgh4102P7E273r911Nl464XV83Hr00rkAHkk791iMGSJH95GztN28u2Nv5s9Xx38V69o4a8aIXxbx0g1EM0623OEtbtO9zsqCJfj6MhU7T8iVS6M3q19xhq6707E6r7wzPO6Yp4BwBmgg4F95Lfl0vyF7YO6699tb5LMnr7iFx29o98hoh3O3Rd8h9Juu8P1wG7vdnO5YtRlykhUluYQblNn7XwjBJ53HAyKVraWN5dG7pv7OMl1s0RykPh0p23qfYzAAMkZ1M422pEd07TA9OCKD1iybYxWH06xj6A8mzmcnYGT9P1a5Ytg2EF5LG3IknL2r3AUz99Y751au6Cr401mfAWK68WyEBe5 \ No newline at end of file diff --git a/algo/qmc/testdata/rc4_key_raw.bin b/algo/qmc/testdata/rc4_key_raw.bin new file mode 100644 index 0000000..39c8a3b --- /dev/null +++ b/algo/qmc/testdata/rc4_key_raw.bin @@ -0,0 +1 @@ +ZFJ6WDNwNVrjEJZB1o6QjkQV2ZbHSw/2Eb00q1+4z9SVWYyFWO1PcSQrJ5326ubLklmk2ab3AEyIKNUu8DFoAoAc9dpzpTmc+pdkBHjM/bW2jWx+dCyC8vMTHE+DHwaK14UEEGW47ZXMDi7PRCQ2Jpm/oXVdHTIlyrc+bRmKfMith0L2lFQ+nW8CCjV6ao5ydwkZhhNOmRdrCDcUXSJH9PveYwra9/wAmGKWSs9nemuMWKnbjp1PkcxNQexicirVTlLX7PVgRyFyzNyUXgu+R2S4WTmLwjd8UsOyW/dc2mEoYt+vY2lq1X4hFBtcQGOAZDeC+mxrN0EcW8tjS6P4TjOjiOKNMxIfMGSWkSKL3H7z5K7nR1AThW20H2bP/LcpsdaL0uZ/js1wFGpdIfFx9rnLC78itL0WwDleIqp9TBMX/NwakGgIPIbjBwfgyD8d8XKYuLEscIH0ZGdjsadB5XjybgdE3ppfeFEcQiqpnodlTaQRm3KDIF9ATClP0mTl8XlsSojsZ468xseS1Ib2iinx/0SkK3UtJDwp8DH3/+ELisgXd69Bf0pve7wbrQzzMUs9/Ogvvo6ULsIkQfApJ8cSegDYklzGXiLNH7hZYnXDLLSNejD7NvQouULSmGsBbGzhZ5If0NP/6AhSbpzqWLDlabTDgeWWnFeZpBnlK6SMxo+YFFk1Y0XLKsd69+jj \ No newline at end of file diff --git a/algo/qmc/testdata/rc4_raw.bin b/algo/qmc/testdata/rc4_raw.bin new file mode 100644 index 0000000000000000000000000000000000000000..af0e06e8da35e6acb3f8a4e505ec26e3f72a607a GIT binary patch literal 20480 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

t6rsLzvALz3hzq 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 O+%NO<^XG36X3al!=I|~6 literal 0 HcmV?d00001 diff --git a/algo/qmc/testdata/rc4_target.bin b/algo/qmc/testdata/rc4_target.bin new file mode 100644 index 0000000000000000000000000000000000000000..0d16010a547e97832cc7f28a11299d70a05b7224 GIT binary patch literal 20480 zcmeI02Ut^Uy6+Kz9U@`~p^8dEf>eRf6$KJnC_)NVdXuVj1Pg)*gr*Qel_C(jf+FY! z*&>+GMXFd)5RjrE#ey5i2^(ha%sF%B&faI9d+*%gdluh%|G)KqW&PLUTWiJB)CJAP z#s&kifml0UHU&o@9rc;*ku{2wTB#B8S+L-3p)LPt`#qK2Z0tZ*%3qbuHmt&Rduz{$ z&E6(^1GWf{t?V{|h;I?0kA!U^`fiKBK?k=9^u`uZs2iGXbqvAv%f4cv~R`nGbu?Hk=Du_?ci zU0h4Yw@I?j77+|2ZWHQOqg|3?3EL#+(N>Q7@}E2`4A>$@m)f>-$`!W=flF_jRDa$g zPWx-ON&Ss2;&b=YHfeI+B0*KNAT|y*wn%Z74)XBy2=X}N<{|Fq?P_4EixyWpqI^V2 z9I2?JqNIdW-Ob9`&-x=^2&VeSr<=1Ue$M!io-`9vJkda&q~%OBHf|o)HAPvP{q4h> zqwC@b7(C(l^wp}VjJRoPPBh!0Y8KupI}YqPu;ajv13M1vII!cujsrUm>^QLFz>Whu z4(vFv^QLFz>Whu4(vGaf7Aiy_fBE9RxleI zhc@%yyTtvz(~n}MFK;(lzO<=+D;rOP{uKVN$ zW$gEMC-=hG=^tpbG^zfVSxtWy!GDhap9#LFu(3h^*lgBbzqtFuuXfdh)qLst@9Lwr z;72&?)-wNHjsEw^IZ?mmtd#uM)b&3jYAJQlqhM2(NdFnKg0<#NwWhsU{~MP_Cwf_n zL^=Bv(BFG``1JPQz@qO_{{|=d_f9dMjcwOHR)R79Z)dHVDE#dM|Cj08|MeF4&zQ-k z1^;+id;5>){%d4zoJ-k!Z`j?<`iS{`9~DpjHBRt%&hqo`%>Vx`U1)mqe&870`l$6# z-Bg?}w$zf&rsC?`Qr#~%)lVZ^%D!e(0e)<$D-N5Adwokmq&5|BWlPD|ZmK=YTdJ{r zQ}Ik~DaY7NwRdbwbuMoz-svs%*?Uv%Ti8;k#WoeFc1t}aZz{fe)TXT0Zes@?`cGHp zKYuO$mj}RqoA4vbd~hXmtxjQm&xXk6YPm)xC`@Xie?T^em`MfZJ56Oljz;yx%Lq~m zqYCk`sE*t^l^jS8Bv12)@gdgBP^%^ePLYNuVBofJ3RbF|#u7Ldl7SWJv*2c^kD_3t zYz2+V3350LB!x;L)2MP33}TM}(1J!`C14O>j2YsFRh& z+9bgk3Z{U`EE_a8Uu*sm88Yp(BrcS`2g5&T&Q$0i(JEM91~3!W)RFM`?k+vKat9#y zI)W7`Fjvc%RBa@RB1VE@;AuP*Ba2QbtJ5qD5<)Qo(U53Gq$w{yJX?ChJ&uQBO2Oov zC|I>ZEs8PiaSYbwWiRJE;=*{ z8cK2D(LhB%>V%SZLsQ;aP+SC{SU43CFAZa$C>G@utRM!)fa5IeSzf}6u&_>82W`_6 zV=00Kt%&6u`39VVmIRSGd18fa2T1ug#ujD9Asx9T7_y&C)LL-^x-9~z)XxILsnoorw$^jY|urd4916GuF&F*BL%cK>_9=#5Ll#_10qwN zJxQ+7h%_kI5DY3AOg#~O5O-ZAer5?^GTvyPj(`&gi5LL^L7YC^7RI{&sEEzk%D`;} zpcq&uBvDXbiV}~akl;9}I2c8bAXk(ijR1BcQgSNi6fha7wz8O8#Z~E0n4U$gQIQ@P z0Mi8!(@(+epM8EVEZk92;}C>Io)S69##9wp@E=aDNVw%DYO z4wT{*k(5?|OOk1p> zlO8TnON|pv!5Rkx={}CO>oKGwb`dk2mpm4N63apyvk z7_=+4sUK#husn#gg3Mt}I zY(FOBYlS%*fyk(TV?FxBz%%G7MDcx`Fkbn~hbHfmU+x2;v0~_?Ntt5*1$bs6*n27` z{nOfMsWRd51eZ8rs}P(-Q6X?bqnHCA6_XGw5h;yWD5GGIBlbv8fwB`@Yl>*k% zU-%flxgKt9BvzQx83$M1*1u834_&`44-_N!?JNK*P}KNSqcmRD!U~LptOK&~soJcu z``W6Is(rgOlJCQzmnTwRL6l zGhtDz?|fRk0<-WEekzy7lq+DaQcg2jv%`4tMe|dct7tScThbH>0fKs1bAe~MBV7~= zJ6ID`qyoXLr$elJ9FR4td!hN%Y3YF|^g1+06w+nBfj3|6={%W_vzS6rPEX?^D5lfi zgBdt4?*XS(jJZy{v~(G2raLvCWInTcp)PX<#(Iu22MRXqOgi%Qm>r~(l$lh-Br092 zVil*S1jl$RL4(muv^iCKk~eBbyJyoE*0^Y5N+Ayk5TGFfO(}$@al=z?SgtpOUyp2GMQIryq1e?Ms5GaO~$lBno7$Ddbx#^!I1}K(= zpXqBf&W^mOvXY^fS;(J}?L}bDbmiN}FBRfxtjeN!>)U)d>LyaCj z6Tf^}93Tt=2`jpJKp>&A<-w0yh|pO0$hW}7-Xs_0p-utoJ7k@Bo;DTvv>_S4Xn>9` zg0Z&HD|^e`J~?)p|Eu_86)yJOyLWL2BcX-5EvPG3F5f5|owIS_>3YyqU40v*L?(;( z^jmd3*9)zsS4zzV&`UhMlBt0V>ZHsw=w7T%W+j@Bhlia_2O#V$4iW}QK*n@YSH&QZ z;I3g?gwz-TJ8XiLYGD_qs~JIaj)KT80ON~!kxMFouXvS+1r+CMRCU(wx0b&WC-%N-$eWw&BI-RHBRb)nlCrnyo1J42+?+2f^6X|4XU&HP0F5O{Sx9M&_2$`Twd}3zZ(kM4OnS^Q^a_T5 ziXg(Q441!Q^>s!2d0t${jsmUkd4s(XleqOPMR8${-E5Dz*d9596kp|PR7+_D1p2~E z+;gj?tQTJ4MbZ?Bn&U{XP8(P53)fsn`?Gmc<4@wL_{PbHcVWi$?U7E$xprOF;b6PW z>S@=mXl~73AfyC%Y{CJPH*(cdv&-(W5*WoXVj_@)$s$(Nd>LRH|GxS13vLozQ&}@w zv*wAnO{(ZTba%BXITa(R#Ph27{=EEwO4av#cWUhma=YKS zKD@PlGeI>e9xQ@&)4H%4qRH3SCDAW~8He{Zcc%<=mGP2` zfu~PBV_bikO930epM<9#6v$uCfF3AT9ePNYN#_gOphaZVw-LpS+w8l3dHZ(2%N@!u z5#)5*dSvPTvXh8eotGKhJIYRfVFh7EK}FtuJL8o;xNsuk>qm7ZkZVM?b-{y`tNp^B z@L^e{xeXJcu=U8jBwv7O0^Ev-Uvn!kM%CJzKST}Kfx=(Fx)%~Qgzs>*?H8tRoWNHl zV39I`F_NCNs|7vGJvjA)1T%Q7q$%G}YNDmW2@+UE&%k!fbk40GW`JUk77gCJjR5)xXbVt?u zrFzXBle7&zhEdbxhX+egp0O)xZpYGPu4Hy;a+5!L(hUxKCn|cxynbUzlOL^!O$VUG z$W=1q&APESibOr)*?)fh`Nck>fG?-TtwU96&bsQtuj_AoAnjqd4vyYc+@&b-*!?0V zYH#oD^jDB0m&xV694a#0hJyPa-Q*MG)3E3%5zNWpdAh$uC}A=|UXpJJq)2QU{>tD4 z>H@=^hb*oGQ0KE$kESMR>vfEIm*BE9T!dee8OKgI*$MEIpEo|bIpnxEeH!IP66NGP z#cQXl_@aZ0D}caJ-0!dCa@dw)302LMIfaHI{3nocaHifPF``aqbe%Qbi)4?s9F!} zIw4&~u0kn)YQYH|H#%(eemXJKRQ`i_Z6IC8q#YPlp6FL+KY@7A87E-tqse{#z*+wa zwd>@z{;O|pPF^}nDRrvhf}TB+$L(-R`I$?~GuYivRt>b=!V?l%OE!tQ3ZUWJhCcoI zO3;m<_J!V4H}a3=sabkr7nC?&_y;=X#i+u=785=Abt*XekQ^`NaTkmC8clHg41jyL zn^?^Jyx+zA9Qr4krz}T?GmUr?x9@T%BHPrfHuqru^1O&il}q07R}3G**KvQ`VSwfy{UX~%wIgx%GIrP;$^n&y$Gc7lpfS~`SM8D5K69}JA#{3< z&+Z#px8j%krkZdFMdjq$DjJ4Moyi-GP@eh(!H6y&m#YD>UL}Mcns&POmHPnNa&$Cm zBKwCI?Q-NjtQ>v!E+$65JRT#Yb4%59=ow#RJf5PfhA5 zg)A02YNNXqF9q;Tu(1Mi<@DS`+TDYz#&JeYSFH;3>3EY~ZaltzI*!Y7#@A?wo%{2JHXVD}NaDR=uSyHWmUtpT6jYENIod zKy0YBj&TRR8*a!3O@6FZALEx(bcmrj0;0cK?oZ|Z;4gr*6v`xuW028MH;z4WC4P3i z?;W0=8$akEBAs_HprHK@Zm669#;3}nRp)d$1Xph8mQ(!R=c`Cv837yY0Vw%Xc>@rV z5zg_uLICepK(QyK6HO(C**%lxvroK^2Wn)}uU_%7ef2#n$S$B6vOHAMooW}n=bTIY z@~7t}pav!Ms_ms58Np$RlPHXHQS!m!pYtlr(@%d6DRlrsRN+eg$zTkFv)-;K`Hudc zb20ENlvHeTxL%E0M(!(X4+jb2p)taVB!%7%c~?lTxKSFr)cUIDSv&`~5u>B(xa#1u zXBDqWG^tOQ?#APj&-I9ya$Rg7&hO1Z}Y*Witu(Z5S_{Hsx#d*%~+0zvRf)tTYL0Z#u#Slj&|GA-N zYV8?n$dxY7FHk$Dqt9bU>|PbY4@Gm9$|SUKA4DkumwfzYFP^@k4_<$-S#y|OdA=vU zNXCCwY7qtmza}umh@Cwb^ry7P7LyC44L-TvDp&Fjs(2VG@V-wRzVtv;q47Ya#ON5e zsipnw5q2pAxlJoF$v>Bw6{}o5%yY{`<5z4%r*Sp`pWN~`9X- zhs3IXL4{g{f1!P=McJPJ8hVkcAIX8jdtvvj zV4?!0ba|5(r{WugU=wrmHs9m)_$x?fqeu$ls;~Bo6Z@Esna;sXU|{3xX12E9^jaK(=U?r3m`Fn{o#*sj}83;gi`cFJ{}_9I#}RjZPT^7 zX=?T$?-Om`)LYtNV4=ba2Mn8&e~e4GGfI zB;W(ugW?ORLJar2v~;fK*1pcwJ|*6k1cSpBM+~*0a=vK@!_ZdrS_>5qD0+F1cTbG9 z%Yo#q&fbCt&3uf&YZdqAJFJ;vyvIn`Y)2yg~83 zFO@Tvq1!sp_Y4{Z;!D6c3&py!no=~9XGJ=$-oJ+ z_(-avtVtUAsbC#&X~LkX1vL;%%r88swS0qGVYKoyeKt-`CFVwLPC)1J3d6_5evzsel0ZCX>KQzBEUxebsiDQS0U1@HB2CBkYF$;MtL(pW4XiU2 z&u1UL;C}c}xj1#`<&f+X68@dFpkG$Z#Cxtsr5R{GQZ=9`f_GsYI(^g=69u^9ZdEto z_|`47-{;hKX@x*~qMQ7|gGO=eANk6vN=WkKBA#tk@a7=9Xo~`;q|EHcqZ%y>ki^{i zi8Qy{c~!WKG?K2$l;4r&d~|FFv7=;fzr#a6z#VTf>wY^Xb}x$FrsjjUPp;*RxLM;V zn4#G4*uHgT4t%*i*-Egm^SE(*6N#^MiMzFFIaX-m*c5g4;>ou-7Y^63*H6^+bn4tb zI>*qdG6fW4jeG4qE14xcj*S-!7?>(U^_q^aRodsl-Kss!e&Us?sG6uTTmJiGGC?)~ z|5L`K6ZWIVsa~jk>Indb<}|S1W#HkbXShz-t6S$P91JKP)g;bw^&7q;B^L77 z^xK;U4@{cn2WBeCqh!<$ zHZtPK-KWczeXOze`iqCS^*s^1lrig}A9^#@75dsX?FRQn)Pt>W;zC=v>H=daVOmtA zNR?|&thVee)nKLJpFdn$<$ZqGlm1u|Uf^QgSs$cENQ(@>nMIt87*CSxH|9RxNc6uEYkC&SNVXtQXhJu!j%KpPn7U7q*%P^*7mJU?Q*tg=9?`$4vvAgZ zSfN$QU(Bia4)Gd~?vLb&{pv3&pPq`98$o^;nGfElrKo3Y-BScoYiJx->w97>>B}*e zIC`dGgzh-0mK0+?;p^#%Jkmh$X{;dLTjV8CNKWal-&>>9Yb>z79OBwsm>fA+j z1(SyS3;B=BlW|49qGg2Z!P)-0yz=u%7jUk7yc6FKM5*}Cr-P2KB?UVT^XD}?(J{!_ z`3qros{%i}kTQ)PGl*P*5xjICn@})~VvPXTA2_vFUnWZB7YP8O99bgT8}sFmSIamG z;4^Zyg3b?2#zbCeN#EA0Z-$lw`$Uq6k>I4o_x z9jJOpx!Gh`Rd(BUOd8l2crz7>|I?c!1ER7@0HAd?VpI~Ty3WHm& zOEBZ;p+sWn(N1q$U%EdGd3rJb>ms)TA5YBdKyS;Zbk~7afhZ6mSuDUjy{)cAiHpwZxK^?u-n#?3=NeFi2`VX_!QGU+8e1ct z6cO@t2xqZu9s%!=2iLirFA%P#p9NeEsxQ=zpkxte~pG&lZ zB|VK&$~l`t=^#XUll`y0YnD0mz(aW1d6GZryGOm2<$k!aZOViPq9_Y7|K2|#?@UVX zka&jTy#(yW&6n2QC9IG^@)Kv$5C2H5d*hPzAiP;eU}*EVDgFn7yA^id z<gpC&_T!Z!E(dKFbMo~+*;?Hb^LotuK z2v0M;FFnH`1aqtzyhZhq)Hz)h#+-s>2b$g}>Nf*qn&$*o53N=pos?x(N{21gljfh^ SMflzvrVptB2ZuiRy8Z{2x*%u( literal 0 HcmV?d00001 From 38648d57e6c2fb0843972724b917804806a59984 Mon Sep 17 00:00:00 2001 From: MengYX Date: Mon, 13 Dec 2021 22:54:08 +0800 Subject: [PATCH 2/7] feat(QMCv2): Add mapCipher & mflac/mgg key discovery --- algo/qmc/cipher.go | 5 + algo/qmc/cipher_map.go | 39 ++++++++ algo/qmc/cipher_map_test.go | 40 ++++++++ algo/qmc/{rc4.go => cipher_rc4.go} | 4 +- algo/qmc/cipher_rc4_test.go | 90 ++++++++++++++++++ algo/qmc/key_dec.go | 6 +- algo/qmc/key_dec_test.go | 42 ++++---- algo/qmc/qmc_512.go | 70 ++++++++++---- algo/qmc/qmc_512_test.go | 55 +++++++---- algo/qmc/rc4_test.go | 72 -------------- .../{rc4_key.bin => mflac0_rc4_key.bin} | 0 ...rc4_key_raw.bin => mflac0_rc4_key_raw.bin} | 0 algo/qmc/testdata/mflac0_rc4_raw.bin | Bin 0 -> 65536 bytes ...uffix_mflac0.bin => mflac0_rc4_suffix.bin} | Bin algo/qmc/testdata/mflac0_rc4_target.bin | Bin 0 -> 65536 bytes algo/qmc/testdata/rc4_raw.bin | Bin 20480 -> 0 bytes algo/qmc/testdata/rc4_target.bin | Bin 20480 -> 0 bytes 17 files changed, 292 insertions(+), 131 deletions(-) create mode 100644 algo/qmc/cipher.go create mode 100644 algo/qmc/cipher_map.go create mode 100644 algo/qmc/cipher_map_test.go rename algo/qmc/{rc4.go => cipher_rc4.go} (95%) create mode 100644 algo/qmc/cipher_rc4_test.go delete mode 100644 algo/qmc/rc4_test.go rename algo/qmc/testdata/{rc4_key.bin => mflac0_rc4_key.bin} (100%) rename algo/qmc/testdata/{rc4_key_raw.bin => mflac0_rc4_key_raw.bin} (100%) create mode 100644 algo/qmc/testdata/mflac0_rc4_raw.bin rename algo/qmc/testdata/{rc4_suffix_mflac0.bin => mflac0_rc4_suffix.bin} (100%) create mode 100644 algo/qmc/testdata/mflac0_rc4_target.bin delete mode 100644 algo/qmc/testdata/rc4_raw.bin delete mode 100644 algo/qmc/testdata/rc4_target.bin diff --git a/algo/qmc/cipher.go b/algo/qmc/cipher.go new file mode 100644 index 0000000..150f52f --- /dev/null +++ b/algo/qmc/cipher.go @@ -0,0 +1,5 @@ +package qmc + +type streamCipher interface { + Decrypt(buf []byte, offset int) +} diff --git a/algo/qmc/cipher_map.go b/algo/qmc/cipher_map.go new file mode 100644 index 0000000..56e0626 --- /dev/null +++ b/algo/qmc/cipher_map.go @@ -0,0 +1,39 @@ +package qmc + +import "errors" + +type mapCipher struct { + key []byte + box []byte + size int +} + +func NewMapCipher(key []byte) (*mapCipher, error) { + if len(key) == 0 { + return nil, errors.New("qmc/cipher_map: invalid key size") + } + c := &mapCipher{key: key, size: len(key)} + c.box = make([]byte, c.size) + return c, nil +} + +func (c *mapCipher) getMask(offset int) byte { + if offset > 0x7FFF { + offset %= 0x7FFF + } + idx := (offset*offset + 71214) % c.size + return c.rotate(c.key[idx], byte(idx)&0x7) +} + +func (c *mapCipher) rotate(value byte, bits byte) byte { + rotate := (bits + 4) % 8 + left := value << rotate + right := value >> rotate + return left | right +} + +func (c *mapCipher) Decrypt(buf []byte, offset int) { + for i := 0; i < len(buf); i++ { + buf[i] ^= c.getMask(offset + i) + } +} diff --git a/algo/qmc/cipher_map_test.go b/algo/qmc/cipher_map_test.go new file mode 100644 index 0000000..f3a4b98 --- /dev/null +++ b/algo/qmc/cipher_map_test.go @@ -0,0 +1,40 @@ +package qmc + +import ( + "os" + "reflect" + "testing" +) + +func loadTestMapCipherData() ([]byte, []byte, []byte, error) { + key, err := os.ReadFile("./testdata/mflac_map_key.bin") + if err != nil { + return nil, nil, nil, err + } + raw, err := os.ReadFile("./testdata/mflac_map_raw.bin") + if err != nil { + return nil, nil, nil, err + } + target, err := os.ReadFile("./testdata/mflac_map_target.bin") + if err != nil { + return nil, nil, nil, err + } + return key, raw, target, nil +} +func Test_mapCipher_Decrypt(t *testing.T) { + key, raw, target, err := loadTestMapCipherData() + if err != nil { + t.Fatalf("load testing data failed: %s", err) + } + t.Run("overall", func(t *testing.T) { + c, err := NewMapCipher(key) + if err != nil { + t.Errorf("init mapCipher failed: %s", err) + return + } + c.Decrypt(raw, 0) + if !reflect.DeepEqual(raw, target) { + t.Error("overall") + } + }) +} diff --git a/algo/qmc/rc4.go b/algo/qmc/cipher_rc4.go similarity index 95% rename from algo/qmc/rc4.go rename to algo/qmc/cipher_rc4.go index f886d17..9b140bf 100644 --- a/algo/qmc/rc4.go +++ b/algo/qmc/cipher_rc4.go @@ -17,7 +17,7 @@ type rc4Cipher struct { func NewRC4Cipher(key []byte) (*rc4Cipher, error) { n := len(key) if n == 0 { - return nil, errors.New("crypto/rc4: invalid key size") + return nil, errors.New("qmc/cipher_rc4: invalid key size") } var c = rc4Cipher{key: key} @@ -54,7 +54,7 @@ func (c *rc4Cipher) getHashBase() { const rc4SegmentSize = 5120 -func (c *rc4Cipher) Process(src []byte, offset int) { +func (c *rc4Cipher) Decrypt(src []byte, offset int) { toProcess := len(src) processed := 0 markProcess := func(p int) (finished bool) { diff --git a/algo/qmc/cipher_rc4_test.go b/algo/qmc/cipher_rc4_test.go new file mode 100644 index 0000000..7a1519d --- /dev/null +++ b/algo/qmc/cipher_rc4_test.go @@ -0,0 +1,90 @@ +package qmc + +import ( + "os" + "reflect" + "testing" +) + +func loadTestRC4CipherData() ([]byte, []byte, []byte, error) { + key, err := os.ReadFile("./testdata/mflac0_rc4_key.bin") + if err != nil { + return nil, nil, nil, err + } + raw, err := os.ReadFile("./testdata/mflac0_rc4_raw.bin") + if err != nil { + return nil, nil, nil, err + } + target, err := os.ReadFile("./testdata/mflac0_rc4_target.bin") + if err != nil { + return nil, nil, nil, err + } + + return key, raw, target, nil +} +func Test_rc4Cipher_Decrypt(t *testing.T) { + key, raw, target, err := loadTestRC4CipherData() + if err != nil { + t.Fatalf("load testing data failed: %s", err) + } + t.Run("overall", func(t *testing.T) { + c, err := NewRC4Cipher(key) + if err != nil { + t.Errorf("init rc4Cipher failed: %s", err) + return + } + c.Decrypt(raw, 0) + if !reflect.DeepEqual(raw, target) { + t.Error("overall") + } + }) + +} + +func Test_rc4Cipher_encFirstSegment(t *testing.T) { + key, raw, target, err := loadTestRC4CipherData() + if err != nil { + t.Fatalf("load testing data failed: %s", err) + } + t.Run("first-block(0~128)", func(t *testing.T) { + c, err := NewRC4Cipher(key) + if err != nil { + t.Errorf("init rc4Cipher failed: %s", err) + return + } + c.Decrypt(raw[:128], 0) + if !reflect.DeepEqual(raw[:128], target[:128]) { + t.Error("first-block(0~128)") + } + }) +} + +func Test_rc4Cipher_encASegment(t *testing.T) { + key, raw, target, err := loadTestRC4CipherData() + if err != nil { + t.Fatalf("load testing data failed: %s", err) + } + + t.Run("align-block(128~5120)", func(t *testing.T) { + c, err := NewRC4Cipher(key) + if err != nil { + t.Errorf("init rc4Cipher failed: %s", err) + return + } + c.Decrypt(raw[128:5120], 128) + if !reflect.DeepEqual(raw[128:5120], target[128:5120]) { + t.Error("align-block(128~5120)") + } + }) + t.Run("simple-block(5120~10240)", func(t *testing.T) { + c, err := NewRC4Cipher(key) + if err != nil { + t.Errorf("init rc4Cipher failed: %s", err) + return + } + c.Decrypt(raw[5120:10240], 5120) + if !reflect.DeepEqual(raw[5120:10240], target[5120:10240]) { + t.Error("align-block(128~5120)") + } + }) +} diff --git a/algo/qmc/key_dec.go b/algo/qmc/key_dec.go index 2ed86f1..9f7ddf8 100644 --- a/algo/qmc/key_dec.go +++ b/algo/qmc/key_dec.go @@ -18,10 +18,14 @@ func simpleMakeKey(salt byte, length int) []byte { } func DecryptKey(rawKey []byte) ([]byte, error) { rawKeyDec := make([]byte, base64.StdEncoding.DecodedLen(len(rawKey))) - _, err := base64.StdEncoding.Decode(rawKeyDec, rawKey) + n, err := base64.StdEncoding.Decode(rawKeyDec, rawKey) if err != nil { return nil, err } + if n < 16 { + return nil, errors.New("key length is too short") + } + rawKeyDec = rawKeyDec[:n] simpleKey := simpleMakeKey(106, 8) teaKey := make([]byte, 16) diff --git a/algo/qmc/key_dec_test.go b/algo/qmc/key_dec_test.go index de419b0..aa4fc4d 100644 --- a/algo/qmc/key_dec_test.go +++ b/algo/qmc/key_dec_test.go @@ -1,6 +1,7 @@ package qmc import ( + "fmt" "os" "reflect" "testing" @@ -14,38 +15,41 @@ func TestSimpleMakeKey(t *testing.T) { } }) } - -func TestDecryptKey(t *testing.T) { - rc4Raw, err := os.ReadFile("./testdata/rc4_key_raw.bin") +func loadDecryptKeyData(name string) ([]byte, []byte, error) { + keyRaw, err := os.ReadFile(fmt.Sprintf("./testdata/%s_key_raw.bin", name)) if err != nil { - t.Error(err) + return nil, nil, err } - rc4Dec, err := os.ReadFile("./testdata/rc4_key.bin") + keyDec, err := os.ReadFile(fmt.Sprintf("./testdata/%s_key.bin", name)) if err != nil { - t.Error(err) + return nil, nil, err } + return keyRaw, keyDec, nil +} +func TestDecryptKey(t *testing.T) { + tests := []struct { - name string - rawKey []byte - want []byte - wantErr bool + name string + filename string + wantErr bool }{ - { - "512", - rc4Raw, - rc4Dec, - false, - }, + {"mflac0_rc4(512)", "mflac0_rc4", false}, + {"mflac_map(256)", "mflac_map", false}, } for _, tt := range tests { + raw, want, err := loadDecryptKeyData(tt.filename) + if err != nil { + t.Fatalf("load test data failed: %s", err) + } t.Run(tt.name, func(t *testing.T) { - got, err := DecryptKey(tt.rawKey) + got, err := DecryptKey(raw) if (err != nil) != tt.wantErr { t.Errorf("DecryptKey() error = %v, wantErr %v", err, tt.wantErr) return } - if !reflect.DeepEqual(got, tt.want) { - t.Errorf("DecryptKey() got = %v..., want %v...", string(got[:32]), string(tt.want[:32])) + if !reflect.DeepEqual(got, want) { + t.Errorf("DecryptKey() got = %v..., want %v...", + string(got[:32]), string(want[:32])) } }) } diff --git a/algo/qmc/qmc_512.go b/algo/qmc/qmc_512.go index e0eff66..fe37c47 100644 --- a/algo/qmc/qmc_512.go +++ b/algo/qmc/qmc_512.go @@ -13,7 +13,7 @@ type Mflac0Decoder struct { audioLen int decodedKey []byte - rc4 *rc4Cipher + cipher streamCipher offset int rawMetaExtra1 int @@ -21,6 +21,14 @@ type Mflac0Decoder struct { } func (d *Mflac0Decoder) Read(p []byte) (int, error) { + if d.cipher != nil { + return d.readRC4(p) + } else { + panic("not impl") + //return d.readPlain(p) + } +} +func (d *Mflac0Decoder) readRC4(p []byte) (int, error) { n := len(p) if d.audioLen-d.offset <= 0 { return 0, io.EOF @@ -32,32 +40,37 @@ func (d *Mflac0Decoder) Read(p []byte) (int, error) { return 0, err } - d.rc4.Process(p[:m], d.offset) + d.cipher.Decrypt(p[:m], d.offset) d.offset += m return m, err - } func NewMflac0Decoder(r io.ReadSeeker) (*Mflac0Decoder, error) { d := &Mflac0Decoder{r: r} - if err := d.searchKey(); err != nil { + err := d.searchKey() + if err != nil { return nil, err } - if len(d.decodedKey) > 300 { - var err error - d.rc4, err = NewRC4Cipher(d.decodedKey) + if len(d.decodedKey) == 0 { + return nil, errors.New("invalid decoded key") + } else if len(d.decodedKey) > 300 { + d.cipher, err = NewRC4Cipher(d.decodedKey) if err != nil { return nil, err } } else { - panic("not implement") //todo: impl + d.cipher, err = NewMapCipher(d.decodedKey) + if err != nil { + return nil, err + } } - _, err := d.r.Seek(0, io.SeekStart) + _, err = d.r.Seek(0, io.SeekStart) if err != nil { return nil, err } + return d, nil } @@ -73,7 +86,35 @@ func (d *Mflac0Decoder) searchKey() error { if err := d.readRawMetaQTag(); err != nil { return err } - } // todo: ... + } else { + size := binary.LittleEndian.Uint32(buf) + if size < 0x300 { + return d.readRawKey(int64(size)) + } else { + // todo: try to use fixed key + panic("not impl") + } + } + return nil +} + +func (d *Mflac0Decoder) readRawKey(rawKeyLen int64) error { + audioLen, err := d.r.Seek(-(4 + rawKeyLen), io.SeekEnd) + if err != nil { + return err + } + d.audioLen = int(audioLen) + + rawKeyData, err := io.ReadAll(io.LimitReader(d.r, rawKeyLen)) + if err != nil { + return err + } + + d.decodedKey, err = DecryptKey(rawKeyData) + if err != nil { + return err + } + return nil } @@ -104,12 +145,9 @@ func (d *Mflac0Decoder) readRawMetaQTag() error { return errors.New("invalid raw meta data") } - { - - d.decodedKey, err = DecryptKey([]byte(items[0])) - if err != nil { - return err - } + d.decodedKey, err = DecryptKey([]byte(items[0])) + if err != nil { + return err } d.rawMetaExtra1, err = strconv.Atoi(items[1]) diff --git a/algo/qmc/qmc_512_test.go b/algo/qmc/qmc_512_test.go index 218e13f..b2bfd50 100644 --- a/algo/qmc/qmc_512_test.go +++ b/algo/qmc/qmc_512_test.go @@ -2,23 +2,24 @@ package qmc import ( "bytes" + "fmt" "io" "os" "reflect" "testing" ) -func loadTestDataRC4Mflac0() ([]byte, []byte, error) { - encBody, err := os.ReadFile("./testdata/rc4_raw.bin") +func loadTestDataQmcDecoder(filename string) ([]byte, []byte, error) { + encBody, err := os.ReadFile(fmt.Sprintf("./testdata/%s_raw.bin", filename)) if err != nil { return nil, nil, err } - encSuffix, err := os.ReadFile("./testdata/rc4_suffix_mflac0.bin") + encSuffix, err := os.ReadFile(fmt.Sprintf("./testdata/%s_suffix.bin", filename)) if err != nil { return nil, nil, err } - target, err := os.ReadFile("./testdata/rc4_target.bin") + target, err := os.ReadFile(fmt.Sprintf("./testdata/%s_target.bin", filename)) if err != nil { return nil, nil, err } @@ -26,23 +27,35 @@ func loadTestDataRC4Mflac0() ([]byte, []byte, error) { } func TestMflac0Decoder_Read(t *testing.T) { - raw, target, err := loadTestDataRC4Mflac0() - if err != nil { - t.Fatal(err) + tests := []struct { + name string + filename string + wantErr bool + }{ + {"mflac0_rc4(512)", "mflac0_rc4", false}, + {"mflac_map(256)", "mflac_map", false}, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + raw, target, err := loadTestDataQmcDecoder(tt.filename) + if err != nil { + t.Fatal(err) + } + + d, err := NewMflac0Decoder(bytes.NewReader(raw)) + if err != nil { + t.Error(err) + } + buf := make([]byte, len(target)) + if _, err := io.ReadFull(d, buf); err != nil { + t.Errorf("read bytes from decoder error = %v", err) + return + } + if !reflect.DeepEqual(buf, target) { + t.Errorf("Decrypt() got = %v, want %v", buf[:32], target[:32]) + } + }) } - t.Run("mflac0-file", func(t *testing.T) { - d, err := NewMflac0Decoder(bytes.NewReader(raw)) - if err != nil { - t.Error(err) - } - buf := make([]byte, len(target)) - if _, err := io.ReadFull(d, buf); err != nil { - t.Errorf("read bytes from decoder error = %v", err) - return - } - if !reflect.DeepEqual(buf, target) { - t.Errorf("Process() got = %v, want %v", buf[:32], target[:32]) - } - }) } diff --git a/algo/qmc/rc4_test.go b/algo/qmc/rc4_test.go deleted file mode 100644 index 780ec8f..0000000 --- a/algo/qmc/rc4_test.go +++ /dev/null @@ -1,72 +0,0 @@ -package qmc - -import ( - "os" - "reflect" - "testing" -) - -func loadTestData() (*rc4Cipher, []byte, []byte, error) { - key, err := os.ReadFile("./testdata/rc4_key.bin") - if err != nil { - return nil, nil, nil, err - } - raw, err := os.ReadFile("./testdata/rc4_raw.bin") - if err != nil { - return nil, nil, nil, err - } - target, err := os.ReadFile("./testdata/rc4_target.bin") - if err != nil { - return nil, nil, nil, err - } - c, err := NewRC4Cipher(key) - if err != nil { - return nil, nil, nil, err - } - return c, raw, target, nil -} -func Test_rc4Cipher_Process(t *testing.T) { - c, raw, target, err := loadTestData() - if err != nil { - t.Errorf("load testing data failed: %s", err) - } - t.Run("overall", func(t *testing.T) { - c.Process(raw, 0) - if !reflect.DeepEqual(raw, target) { - t.Error("overall") - } - }) - -} - -func Test_rc4Cipher_encFirstSegment(t *testing.T) { - c, raw, target, err := loadTestData() - if err != nil { - t.Errorf("load testing data failed: %s", err) - } - t.Run("first-block(0~128)", func(t *testing.T) { - c.Process(raw[:128], 0) - if !reflect.DeepEqual(raw[:128], target[:128]) { - t.Error("first-block(0~128)") - } - }) -} - -func Test_rc4Cipher_encASegment(t *testing.T) { - c, raw, target, err := loadTestData() - if err != nil { - t.Errorf("load testing data failed: %s", err) - } - t.Run("align-block(128~5120)", func(t *testing.T) { - c.Process(raw[128:5120], 128) - if !reflect.DeepEqual(raw[128:5120], target[128:5120]) { - t.Error("align-block(128~5120)") - } - }) - t.Run("simple-block(5120~10240)", func(t *testing.T) { - c.Process(raw[5120:10240], 5120) - if !reflect.DeepEqual(raw[5120:10240], target[5120:10240]) { - t.Error("align-block(128~5120)") - } - }) -} diff --git a/algo/qmc/testdata/rc4_key.bin b/algo/qmc/testdata/mflac0_rc4_key.bin similarity index 100% rename from algo/qmc/testdata/rc4_key.bin rename to algo/qmc/testdata/mflac0_rc4_key.bin diff --git a/algo/qmc/testdata/rc4_key_raw.bin b/algo/qmc/testdata/mflac0_rc4_key_raw.bin similarity index 100% rename from algo/qmc/testdata/rc4_key_raw.bin rename to algo/qmc/testdata/mflac0_rc4_key_raw.bin diff --git a/algo/qmc/testdata/mflac0_rc4_raw.bin b/algo/qmc/testdata/mflac0_rc4_raw.bin new file mode 100644 index 0000000000000000000000000000000000000000..fd7e4afe62236f24c18cdec4f26f6317c1688798 GIT binary patch literal 65536 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

t6rsLzvALz3hzq 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�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­3$+SHRto681zN;>&dC_ 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 literal 0 HcmV?d00001 diff --git a/algo/qmc/testdata/rc4_raw.bin b/algo/qmc/testdata/rc4_raw.bin deleted file mode 100644 index af0e06e8da35e6acb3f8a4e505ec26e3f72a607a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20480 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

t6rsLzvALz3hzq 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 SMflzvrVptB2ZuiRy8Z{2x*%u( From 8cc7f6664032f56185e2c522dfb38f3dfb0d5b3a Mon Sep 17 00:00:00 2001 From: MengYX Date: Mon, 13 Dec 2021 22:55:31 +0800 Subject: [PATCH 3/7] chore(QMCv2): Rename old files --- algo/qmc/{consts.go => old_consts.go} | 0 algo/qmc/{mask_key256.go => old_mask.go} | 0 algo/qmc/{qmc.go => old_qmc.go} | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename algo/qmc/{consts.go => old_consts.go} (100%) rename algo/qmc/{mask_key256.go => old_mask.go} (100%) rename algo/qmc/{qmc.go => old_qmc.go} (100%) diff --git a/algo/qmc/consts.go b/algo/qmc/old_consts.go similarity index 100% rename from algo/qmc/consts.go rename to algo/qmc/old_consts.go diff --git a/algo/qmc/mask_key256.go b/algo/qmc/old_mask.go similarity index 100% rename from algo/qmc/mask_key256.go rename to algo/qmc/old_mask.go diff --git a/algo/qmc/qmc.go b/algo/qmc/old_qmc.go similarity index 100% rename from algo/qmc/qmc.go rename to algo/qmc/old_qmc.go From 10250103957b4e0fa457f73b830bcfde4dbe07d2 Mon Sep 17 00:00:00 2001 From: MengYX Date: Mon, 13 Dec 2021 22:58:38 +0800 Subject: [PATCH 4/7] fix(QMCv2): add missing test data --- algo/qmc/testdata/mflac_map_key.bin | 1 + algo/qmc/testdata/mflac_map_key_raw.bin | 1 + algo/qmc/testdata/mflac_map_raw.bin | Bin 0 -> 65536 bytes algo/qmc/testdata/mflac_map_suffix.bin | Bin 0 -> 368 bytes algo/qmc/testdata/mflac_map_target.bin | Bin 0 -> 65536 bytes 5 files changed, 2 insertions(+) create mode 100644 algo/qmc/testdata/mflac_map_key.bin create mode 100644 algo/qmc/testdata/mflac_map_key_raw.bin create mode 100644 algo/qmc/testdata/mflac_map_raw.bin create mode 100644 algo/qmc/testdata/mflac_map_suffix.bin create mode 100644 algo/qmc/testdata/mflac_map_target.bin diff --git a/algo/qmc/testdata/mflac_map_key.bin b/algo/qmc/testdata/mflac_map_key.bin new file mode 100644 index 0000000..7fd7a72 --- /dev/null +++ b/algo/qmc/testdata/mflac_map_key.bin @@ -0,0 +1 @@ +yw7xWOyNQ8585Jwx3hjB49QLPKi38F89awnrQ0fq66NT9TDq1ppHNrFqhaDrU5AFk916D58I53h86304GqOFCCyFzBem68DqiXJ81bILEQwG3P3MOnoNzM820kNW9Lv9IJGNn9Xo497p82BLTm4hAX8JLBs0T2pilKvT429sK9jfg508GSk4d047Jxdz5Fou4aa33OkyFRBU3x430mgNBn04Lc9BzXUI2IGYXv3FGa9qE4Vb54kSjVv8ogbg47j3 \ No newline at end of file diff --git a/algo/qmc/testdata/mflac_map_key_raw.bin b/algo/qmc/testdata/mflac_map_key_raw.bin new file mode 100644 index 0000000..f088613 --- /dev/null +++ b/algo/qmc/testdata/mflac_map_key_raw.bin @@ -0,0 +1 @@ +eXc3eFdPeU6+3f7GVeF35bMpIEIQj5JWOWt7G+jsR68Hx3BUFBavkTQ8dpPdP0XBIwPe+OfdsnTGVQqPyg3GCtQSrkgA0mwSQdr4DPzKLkEZFX+Cf1V6ChyipOuC6KT37eAxWMdV1UHf9/OCvydr1dc6SWK1ijRUcP6IAHQhiB+mZLay7XXrSPo32WjdBkn9c9sa2SLtI48atj5kfZ4oOq6QGeld2JA3Z+3wwCe6uTHthKaEHY8ufDYodEe3qqrjYpzkdx55pCtxCQa1JiNqFmJigWm4m3CDzhuJ7YqnjbD+mXxLi7BP1+z4L6nccE2h+DGHVqpGjR9+4LBpe4WHB4DrAzVp2qQRRQJxeHd1v88= \ No newline at end of file diff --git a/algo/qmc/testdata/mflac_map_raw.bin b/algo/qmc/testdata/mflac_map_raw.bin new file mode 100644 index 0000000000000000000000000000000000000000..18f70e55b2df793815231875452af81d852399ba GIT binary patch literal 65536 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 wmR|l Bck2KE literal 0 HcmV?d00001 diff --git a/algo/qmc/testdata/mflac_map_target.bin b/algo/qmc/testdata/mflac_map_target.bin new file mode 100644 index 0000000000000000000000000000000000000000..791905758c6648b87d3b76ed31ea358811bf8d7e GIT binary patch literal 65536 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 literal 0 HcmV?d00001 From 7cc7aa19fdb3588eb17b0ab0afe15367938e95e2 Mon Sep 17 00:00:00 2001 From: MengYX Date: Tue, 14 Dec 2021 02:19:32 +0800 Subject: [PATCH 5/7] feat(QMCv2): support static cipher (legacy) --- algo/qmc/cipher_static.go | 57 ++++++++++++++++++ algo/qmc/old_qmc.go | 23 +++---- algo/qmc/{qmc_512.go => qmc.go} | 70 ++++++++++++++-------- algo/qmc/{qmc_512_test.go => qmc_test.go} | 49 ++++++++++++--- algo/qmc/testdata/qmc0_static_raw.bin | Bin 0 -> 65536 bytes algo/qmc/testdata/qmc0_static_suffix.bin | 0 algo/qmc/testdata/qmc0_static_target.bin | Bin 0 -> 65536 bytes 7 files changed, 157 insertions(+), 42 deletions(-) create mode 100644 algo/qmc/cipher_static.go rename algo/qmc/{qmc_512.go => qmc.go} (65%) rename algo/qmc/{qmc_512_test.go => qmc_test.go} (53%) create mode 100644 algo/qmc/testdata/qmc0_static_raw.bin create mode 100644 algo/qmc/testdata/qmc0_static_suffix.bin create mode 100644 algo/qmc/testdata/qmc0_static_target.bin diff --git a/algo/qmc/cipher_static.go b/algo/qmc/cipher_static.go new file mode 100644 index 0000000..f6db30b --- /dev/null +++ b/algo/qmc/cipher_static.go @@ -0,0 +1,57 @@ +package qmc + +func NewStaticCipher() *staticCipher { + return &defaultStaticCipher +} + +var defaultStaticCipher = staticCipher{} + +type staticCipher struct{} + +func (c *staticCipher) Decrypt(buf []byte, offset int) { + for i := 0; i < len(buf); i++ { + buf[i] ^= c.getMask(offset + i) + } +} +func (c *staticCipher) getMask(offset int) byte { + if offset > 0x7FFF { + offset %= 0x7FFF + } + idx := (offset*offset + 27) & 0xff + return staticCipherBox[idx] +} + +var staticCipherBox = [...]byte{ + 0x77, 0x48, 0x32, 0x73, 0xDE, 0xF2, 0xC0, 0xC8, //0x00 + 0x95, 0xEC, 0x30, 0xB2, 0x51, 0xC3, 0xE1, 0xA0, //0x08 + 0x9E, 0xE6, 0x9D, 0xCF, 0xFA, 0x7F, 0x14, 0xD1, //0x10 + 0xCE, 0xB8, 0xDC, 0xC3, 0x4A, 0x67, 0x93, 0xD6, //0x18 + 0x28, 0xC2, 0x91, 0x70, 0xCA, 0x8D, 0xA2, 0xA4, //0x20 + 0xF0, 0x08, 0x61, 0x90, 0x7E, 0x6F, 0xA2, 0xE0, //0x28 + 0xEB, 0xAE, 0x3E, 0xB6, 0x67, 0xC7, 0x92, 0xF4, //0x30 + 0x91, 0xB5, 0xF6, 0x6C, 0x5E, 0x84, 0x40, 0xF7, //0x38 + 0xF3, 0x1B, 0x02, 0x7F, 0xD5, 0xAB, 0x41, 0x89, //0x40 + 0x28, 0xF4, 0x25, 0xCC, 0x52, 0x11, 0xAD, 0x43, //0x48 + 0x68, 0xA6, 0x41, 0x8B, 0x84, 0xB5, 0xFF, 0x2C, //0x50 + 0x92, 0x4A, 0x26, 0xD8, 0x47, 0x6A, 0x7C, 0x95, //0x58 + 0x61, 0xCC, 0xE6, 0xCB, 0xBB, 0x3F, 0x47, 0x58, //0x60 + 0x89, 0x75, 0xC3, 0x75, 0xA1, 0xD9, 0xAF, 0xCC, //0x68 + 0x08, 0x73, 0x17, 0xDC, 0xAA, 0x9A, 0xA2, 0x16, //0x70 + 0x41, 0xD8, 0xA2, 0x06, 0xC6, 0x8B, 0xFC, 0x66, //0x78 + 0x34, 0x9F, 0xCF, 0x18, 0x23, 0xA0, 0x0A, 0x74, //0x80 + 0xE7, 0x2B, 0x27, 0x70, 0x92, 0xE9, 0xAF, 0x37, //0x88 + 0xE6, 0x8C, 0xA7, 0xBC, 0x62, 0x65, 0x9C, 0xC2, //0x90 + 0x08, 0xC9, 0x88, 0xB3, 0xF3, 0x43, 0xAC, 0x74, //0x98 + 0x2C, 0x0F, 0xD4, 0xAF, 0xA1, 0xC3, 0x01, 0x64, //0xA0 + 0x95, 0x4E, 0x48, 0x9F, 0xF4, 0x35, 0x78, 0x95, //0xA8 + 0x7A, 0x39, 0xD6, 0x6A, 0xA0, 0x6D, 0x40, 0xE8, //0xB0 + 0x4F, 0xA8, 0xEF, 0x11, 0x1D, 0xF3, 0x1B, 0x3F, //0xB8 + 0x3F, 0x07, 0xDD, 0x6F, 0x5B, 0x19, 0x30, 0x19, //0xC0 + 0xFB, 0xEF, 0x0E, 0x37, 0xF0, 0x0E, 0xCD, 0x16, //0xC8 + 0x49, 0xFE, 0x53, 0x47, 0x13, 0x1A, 0xBD, 0xA4, //0xD0 + 0xF1, 0x40, 0x19, 0x60, 0x0E, 0xED, 0x68, 0x09, //0xD8 + 0x06, 0x5F, 0x4D, 0xCF, 0x3D, 0x1A, 0xFE, 0x20, //0xE0 + 0x77, 0xE4, 0xD9, 0xDA, 0xF9, 0xA4, 0x2B, 0x76, //0xE8 + 0x1C, 0x71, 0xDB, 0x00, 0xBC, 0xFD, 0x0C, 0x6C, //0xF0 + 0xA5, 0x47, 0xF7, 0xF6, 0x00, 0x79, 0x4A, 0x11, //0xF8 +} diff --git a/algo/qmc/old_qmc.go b/algo/qmc/old_qmc.go index ed284c5..54d9df0 100644 --- a/algo/qmc/old_qmc.go +++ b/algo/qmc/old_qmc.go @@ -4,6 +4,7 @@ import ( "encoding/base64" "encoding/binary" "errors" + "github.com/unlock-music/cli/algo/common" ) @@ -13,7 +14,7 @@ var ( ErrQmcKeyLength = errors.New("unexpected decoded qmc key length") ) -type Decoder struct { +type OldDecoder struct { file []byte maskDetector func(encodedData []byte) (*Key256Mask, error) mask *Key256Mask @@ -23,14 +24,14 @@ type Decoder struct { } func NewMflac256Decoder(data []byte) common.Decoder { - return &Decoder{file: data, maskDetector: detectMflac256Mask, audioExt: "flac"} + return &OldDecoder{file: data, maskDetector: detectMflac256Mask, audioExt: "flac"} } func NewMgg256Decoder(data []byte) common.Decoder { - return &Decoder{file: data, maskDetector: detectMgg256Mask, audioExt: "ogg"} + return &OldDecoder{file: data, maskDetector: detectMgg256Mask, audioExt: "ogg"} } -func (d *Decoder) Validate() error { +func (d *OldDecoder) Validate() error { if nil != d.mask { return nil } @@ -45,7 +46,7 @@ func (d *Decoder) Validate() error { return errors.New("no mask or mask detector found") } -func (d *Decoder) validateKey() error { +func (d *OldDecoder) validateKey() error { lenData := len(d.file) if lenData < 4 { return ErrQmcFileLength @@ -70,33 +71,33 @@ func (d *Decoder) validateKey() error { } -func (d *Decoder) Decode() error { +func (d *OldDecoder) Decode() error { d.audio = d.mask.Decrypt(d.file) return nil } -func (d Decoder) GetCoverImage() []byte { +func (d OldDecoder) GetCoverImage() []byte { return nil } -func (d Decoder) GetAudioData() []byte { +func (d OldDecoder) GetAudioData() []byte { return d.audio } -func (d Decoder) GetAudioExt() string { +func (d OldDecoder) GetAudioExt() string { if d.audioExt != "" { return "." + d.audioExt } return "" } -func (d Decoder) GetMeta() common.Meta { +func (d OldDecoder) GetMeta() common.Meta { return nil } func DecoderFuncWithExt(ext string) common.NewDecoderFunc { return func(file []byte) common.Decoder { - return &Decoder{file: file, audioExt: ext, mask: getDefaultMask()} + return &OldDecoder{file: file, audioExt: ext, mask: getDefaultMask()} } } diff --git a/algo/qmc/qmc_512.go b/algo/qmc/qmc.go similarity index 65% rename from algo/qmc/qmc_512.go rename to algo/qmc/qmc.go index fe37c47..61a591e 100644 --- a/algo/qmc/qmc_512.go +++ b/algo/qmc/qmc.go @@ -6,10 +6,13 @@ import ( "io" "strconv" "strings" + + "github.com/unlock-music/cli/algo/common" ) -type Mflac0Decoder struct { - r io.ReadSeeker +type Decoder struct { + r io.ReadSeeker + fileExt string audioLen int decodedKey []byte @@ -20,15 +23,9 @@ type Mflac0Decoder struct { rawMetaExtra2 int } -func (d *Mflac0Decoder) Read(p []byte) (int, error) { - if d.cipher != nil { - return d.readRC4(p) - } else { - panic("not impl") - //return d.readPlain(p) - } -} -func (d *Mflac0Decoder) readRC4(p []byte) (int, error) { +// Read implements io.Reader, offer the decrypted audio data. +// Validate should call before Read to check if the file is valid. +func (d *Decoder) Read(p []byte) (int, error) { n := len(p) if d.audioLen-d.offset <= 0 { return 0, io.EOF @@ -45,25 +42,25 @@ func (d *Mflac0Decoder) readRC4(p []byte) (int, error) { return m, err } -func NewMflac0Decoder(r io.ReadSeeker) (*Mflac0Decoder, error) { - d := &Mflac0Decoder{r: r} +func NewDecoder(r io.ReadSeeker) (*Decoder, error) { + d := &Decoder{r: r} err := d.searchKey() if err != nil { return nil, err } - if len(d.decodedKey) == 0 { - return nil, errors.New("invalid decoded key") - } else if len(d.decodedKey) > 300 { + if len(d.decodedKey) > 300 { d.cipher, err = NewRC4Cipher(d.decodedKey) if err != nil { return nil, err } - } else { + } else if len(d.decodedKey) != 0 { d.cipher, err = NewMapCipher(d.decodedKey) if err != nil { return nil, err } + } else { + d.cipher = NewStaticCipher() } _, err = d.r.Seek(0, io.SeekStart) @@ -74,8 +71,32 @@ func NewMflac0Decoder(r io.ReadSeeker) (*Mflac0Decoder, error) { return d, nil } -func (d *Mflac0Decoder) searchKey() error { - if _, err := d.r.Seek(-4, io.SeekEnd); err != nil { +func (d *Decoder) Validate() error { + buf := make([]byte, 16) + if _, err := io.ReadFull(d.r, buf); err != nil { + return err + } + _, err := d.r.Seek(0, io.SeekStart) + if err != nil { + return err + } + + d.cipher.Decrypt(buf, 0) + fileExt, ok := common.SniffAll(buf) + if !ok { + return errors.New("detect file type failed") + } + d.fileExt = fileExt + return nil +} + +func (d Decoder) GetFileExt() string { + return d.fileExt +} + +func (d *Decoder) searchKey() error { + fileSizeM4, err := d.r.Seek(-4, io.SeekEnd) + if err != nil { return err } buf, err := io.ReadAll(io.LimitReader(d.r, 4)) @@ -88,17 +109,18 @@ func (d *Mflac0Decoder) searchKey() error { } } else { size := binary.LittleEndian.Uint32(buf) - if size < 0x300 { + if size < 0x300 && size != 0 { return d.readRawKey(int64(size)) } else { - // todo: try to use fixed key - panic("not impl") + // try to use default static cipher + d.audioLen = int(fileSizeM4 + 4) + return nil } } return nil } -func (d *Mflac0Decoder) readRawKey(rawKeyLen int64) error { +func (d *Decoder) readRawKey(rawKeyLen int64) error { audioLen, err := d.r.Seek(-(4 + rawKeyLen), io.SeekEnd) if err != nil { return err @@ -118,7 +140,7 @@ func (d *Mflac0Decoder) readRawKey(rawKeyLen int64) error { return nil } -func (d *Mflac0Decoder) readRawMetaQTag() error { +func (d *Decoder) readRawMetaQTag() error { // get raw meta data len if _, err := d.r.Seek(-8, io.SeekEnd); err != nil { return err diff --git a/algo/qmc/qmc_512_test.go b/algo/qmc/qmc_test.go similarity index 53% rename from algo/qmc/qmc_512_test.go rename to algo/qmc/qmc_test.go index b2bfd50..f8fd0bf 100644 --- a/algo/qmc/qmc_512_test.go +++ b/algo/qmc/qmc_test.go @@ -28,24 +28,25 @@ func loadTestDataQmcDecoder(filename string) ([]byte, []byte, error) { } func TestMflac0Decoder_Read(t *testing.T) { tests := []struct { - name string - filename string - wantErr bool + name string + wantErr bool }{ - {"mflac0_rc4(512)", "mflac0_rc4", false}, - {"mflac_map(256)", "mflac_map", false}, + {"mflac0_rc4", false}, + {"mflac_map", false}, + {"qmc0_static", false}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - raw, target, err := loadTestDataQmcDecoder(tt.filename) + raw, target, err := loadTestDataQmcDecoder(tt.name) if err != nil { t.Fatal(err) } - d, err := NewMflac0Decoder(bytes.NewReader(raw)) + d, err := NewDecoder(bytes.NewReader(raw)) if err != nil { t.Error(err) + return } buf := make([]byte, len(target)) if _, err := io.ReadFull(d, buf); err != nil { @@ -59,3 +60,37 @@ func TestMflac0Decoder_Read(t *testing.T) { } } + +func TestMflac0Decoder_Validate(t *testing.T) { + tests := []struct { + name string + fileExt string + wantErr bool + }{ + {"mflac0_rc4", ".flac", false}, + {"mflac_map", ".flac", false}, + {"qmc0_static", ".mp3", false}, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + raw, _, err := loadTestDataQmcDecoder(tt.name) + if err != nil { + t.Fatal(err) + } + d, err := NewDecoder(bytes.NewReader(raw)) + if err != nil { + t.Error(err) + return + } + + if err := d.Validate(); err != nil { + t.Errorf("read bytes from decoder error = %v", err) + return + } + if tt.fileExt != d.GetFileExt() { + t.Errorf("Decrypt() got = %v, want %v", d.GetFileExt(), tt.fileExt) + } + }) + } +} diff --git a/algo/qmc/testdata/qmc0_static_raw.bin b/algo/qmc/testdata/qmc0_static_raw.bin new file mode 100644 index 0000000000000000000000000000000000000000..80f65f9bd42534c80b73435ae411e8c60dc60158 GIT binary patch literal 65536 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

)6m&0&)_#zauQ-iKLwHG`n_w6Esy6Uf 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

P|P9WSZ4}qzoZOjtk#g~F1)jI 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%0Dg7dabr_Fem+w@8s!+nrl|M)kW@@t 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 Date: Tue, 14 Dec 2021 02:56:33 +0800 Subject: [PATCH 6/7] test(QMCv2): add test data & case "mgg_map" --- algo/qmc/cipher_map_test.go | 49 ++++++++++++++++---------- algo/qmc/qmc_test.go | 2 ++ algo/qmc/testdata/mgg_map_key.bin | 1 + algo/qmc/testdata/mgg_map_key_raw.bin | 1 + algo/qmc/testdata/mgg_map_raw.bin | Bin 0 -> 65536 bytes algo/qmc/testdata/mgg_map_suffix.bin | Bin 0 -> 368 bytes algo/qmc/testdata/mgg_map_target.bin | Bin 0 -> 65536 bytes 7 files changed, 35 insertions(+), 18 deletions(-) create mode 100644 algo/qmc/testdata/mgg_map_key.bin create mode 100644 algo/qmc/testdata/mgg_map_key_raw.bin create mode 100644 algo/qmc/testdata/mgg_map_raw.bin create mode 100644 algo/qmc/testdata/mgg_map_suffix.bin create mode 100644 algo/qmc/testdata/mgg_map_target.bin diff --git a/algo/qmc/cipher_map_test.go b/algo/qmc/cipher_map_test.go index f3a4b98..400ef94 100644 --- a/algo/qmc/cipher_map_test.go +++ b/algo/qmc/cipher_map_test.go @@ -1,40 +1,53 @@ package qmc import ( + "fmt" "os" "reflect" "testing" ) -func loadTestMapCipherData() ([]byte, []byte, []byte, error) { - key, err := os.ReadFile("./testdata/mflac_map_key.bin") +func loadTestDataMapCipher(name string) ([]byte, []byte, []byte, error) { + key, err := os.ReadFile(fmt.Sprintf("./testdata/%s_key.bin", name)) if err != nil { return nil, nil, nil, err } - raw, err := os.ReadFile("./testdata/mflac_map_raw.bin") + raw, err := os.ReadFile(fmt.Sprintf("./testdata/%s_raw.bin", name)) if err != nil { return nil, nil, nil, err } - target, err := os.ReadFile("./testdata/mflac_map_target.bin") + target, err := os.ReadFile(fmt.Sprintf("./testdata/%s_target.bin", name)) if err != nil { return nil, nil, nil, err } return key, raw, target, nil } func Test_mapCipher_Decrypt(t *testing.T) { - key, raw, target, err := loadTestMapCipherData() - if err != nil { - t.Fatalf("load testing data failed: %s", err) + + tests := []struct { + name string + wantErr bool + }{ + {"mflac_map", false}, + {"mgg_map", false}, + } + + for _, tt := range tests { + + t.Run(tt.name, func(t *testing.T) { + key, raw, target, err := loadTestDataMapCipher(tt.name) + if err != nil { + t.Fatalf("load testing data failed: %s", err) + } + c, err := NewMapCipher(key) + if err != nil { + t.Errorf("init mapCipher failed: %s", err) + return + } + c.Decrypt(raw, 0) + if !reflect.DeepEqual(raw, target) { + t.Error("overall") + } + }) } - t.Run("overall", func(t *testing.T) { - c, err := NewMapCipher(key) - if err != nil { - t.Errorf("init mapCipher failed: %s", err) - return - } - c.Decrypt(raw, 0) - if !reflect.DeepEqual(raw, target) { - t.Error("overall") - } - }) } diff --git a/algo/qmc/qmc_test.go b/algo/qmc/qmc_test.go index f8fd0bf..6209b15 100644 --- a/algo/qmc/qmc_test.go +++ b/algo/qmc/qmc_test.go @@ -33,6 +33,7 @@ func TestMflac0Decoder_Read(t *testing.T) { }{ {"mflac0_rc4", false}, {"mflac_map", false}, + {"mgg_map", false}, {"qmc0_static", false}, } @@ -69,6 +70,7 @@ func TestMflac0Decoder_Validate(t *testing.T) { }{ {"mflac0_rc4", ".flac", false}, {"mflac_map", ".flac", false}, + {"mgg_map", ".ogg", false}, {"qmc0_static", ".mp3", false}, } diff --git a/algo/qmc/testdata/mgg_map_key.bin b/algo/qmc/testdata/mgg_map_key.bin new file mode 100644 index 0000000..fecf089 --- /dev/null +++ b/algo/qmc/testdata/mgg_map_key.bin @@ -0,0 +1 @@ +zGxNk54pKJ0hDkAo80wHE80ycSWQ7z4m4E846zVy2sqCn14F42Y5S7GqeR11WpOV75sDLbE5dFP992t88l0pHy1yAQ49YK6YX6c543drBYLo55Hc4Y0Fyic6LQPiGqu2bG31r8vaq9wS9v63kg0X5VbnOD6RhO4t0RRhk3ajrA7p0iIy027z0L70LZjtw6E18H0D41nz6ASTx71otdF9z1QNC0JmCl51xvnb39zPExEXyKkV47S6QsK5hFh884QJ \ No newline at end of file diff --git a/algo/qmc/testdata/mgg_map_key_raw.bin b/algo/qmc/testdata/mgg_map_key_raw.bin new file mode 100644 index 0000000..bea6675 --- /dev/null +++ b/algo/qmc/testdata/mgg_map_key_raw.bin @@ -0,0 +1 @@ +ekd4Tms1NHC53JEDO/AKVyF+I0bj0hHB7CZeoLDGSApaQB9Oo/pJTBGA/RO+nk5RXLXdHsffLiY4e8kt3LNo6qMl7S89vkiSFxx4Uoq4bGDJ7Jc+bYL6lLsa3M4sBvXS4XcPChrMDz+LmrJMGG6ua2fYyIz1d6TCRUBf1JJgCIkBbDAEeMVYc13qApitiz/apGAPmAnveCaDhfD5GxWsF+RfQ2OcnvrnIXe80Feh/0jx763DlsOBI3eIede6t5zYHokWkZmVEF1jMrnlvsgbQK2EzUWMblmLMsTKNILyZazEoKUyulqmyLO/c/KYE+USPOXPcbjlYFmLhSGHK7sQB5aBR153Yp+xh61ooh2NGAA= \ No newline at end of file diff --git a/algo/qmc/testdata/mgg_map_raw.bin b/algo/qmc/testdata/mgg_map_raw.bin new file mode 100644 index 0000000000000000000000000000000000000000..fa8704d5efec2b5d9b5b05e9b59d149413d0b30b GIT binary patch literal 65536 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 z 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 ChIgj` literal 0 HcmV?d00001 diff --git a/algo/qmc/testdata/mgg_map_target.bin b/algo/qmc/testdata/mgg_map_target.bin new file mode 100644 index 0000000000000000000000000000000000000000..f318eb9800fff51c7f169e2b3ddf2d06ca994a7d GIT binary patch literal 65536 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 H{_g%Cy_KY^ literal 0 HcmV?d00001 From deaa58e91fbfede04f9e07ecfdcc67a5e0876fc6 Mon Sep 17 00:00:00 2001 From: MengYX Date: Tue, 14 Dec 2021 04:01:04 +0800 Subject: [PATCH 7/7] feat(QMCv2): replace with old decoder --- algo/common/dispatch.go | 6 +- algo/qmc/old_consts.go | 70 ------------- algo/qmc/old_mask.go | 212 ---------------------------------------- algo/qmc/old_qmc.go | 129 ------------------------ algo/qmc/qmc.go | 78 +++++++++++++++ cmd/um/main.go | 31 ++++-- go.mod | 10 +- go.sum | 14 ++- 8 files changed, 119 insertions(+), 431 deletions(-) delete mode 100644 algo/qmc/old_consts.go delete mode 100644 algo/qmc/old_mask.go delete mode 100644 algo/qmc/old_qmc.go diff --git a/algo/common/dispatch.go b/algo/common/dispatch.go index faefa2a..71ce298 100644 --- a/algo/common/dispatch.go +++ b/algo/common/dispatch.go @@ -12,15 +12,15 @@ type decoderItem struct { decoder NewDecoderFunc } -var decoderRegistry = make(map[string][]decoderItem) +var DecoderRegistry = make(map[string][]decoderItem) func RegisterDecoder(ext string, noop bool, dispatchFunc NewDecoderFunc) { - decoderRegistry[ext] = append(decoderRegistry[ext], + DecoderRegistry[ext] = append(DecoderRegistry[ext], decoderItem{noop: noop, decoder: dispatchFunc}) } func GetDecoder(filename string, skipNoop bool) (rs []NewDecoderFunc) { ext := strings.ToLower(strings.TrimLeft(filepath.Ext(filename), ".")) - for _, dec := range decoderRegistry[ext] { + for _, dec := range DecoderRegistry[ext] { if skipNoop && dec.noop { continue } diff --git a/algo/qmc/old_consts.go b/algo/qmc/old_consts.go deleted file mode 100644 index 8ad25bf..0000000 --- a/algo/qmc/old_consts.go +++ /dev/null @@ -1,70 +0,0 @@ -package qmc - -var oggPublicHeader1 = []byte{ - 0x4f, 0x67, 0x67, 0x53, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x1e, 0x01, 0x76, 0x6f, 0x72, - 0x62, 0x69, 0x73, 0x00, 0x00, 0x00, 0x00, 0x02, 0x44, 0xac, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xee, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x4f, 0x67, 0x67, 0x53, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xff, 0xff} - -var oggPublicHeader2 = []byte{ - 0x03, 0x76, 0x6f, 0x72, 0x62, 0x69, 0x73, 0x2c, 0x00, 0x00, 0x00, 0x58, 0x69, 0x70, 0x68, 0x2e, - 0x4f, 0x72, 0x67, 0x20, 0x6c, 0x69, 0x62, 0x56, 0x6f, 0x72, 0x62, 0x69, 0x73, 0x20, 0x49, 0x20, - 0x32, 0x30, 0x31, 0x35, 0x30, 0x31, 0x30, 0x35, 0x20, 0x28, 0xe2, 0x9b, 0x84, 0xe2, 0x9b, 0x84, - 0xe2, 0x9b, 0x84, 0xe2, 0x9b, 0x84, 0x29, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x54, - 0x49, 0x54, 0x4c, 0x45, 0x3d} - -var oggPublicConfidence1 = []uint{ - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, - 0, 0, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 6, 3, 3, 3, 3, 6, 6, 6, 6, - 3, 3, 3, 3, 6, 6, 6, 6, 6, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, - 0, 0, 0, 0} - -var oggPublicConfidence2 = []uint{ - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 0, 1, 3, 3, 0, 1, 3, 3, 3, - 3, 3, 3, 3, 3} - -var ( - defaultKey256Mask44 = []byte{ - 0xde, 0x51, 0xfa, 0xc3, 0x4a, 0xd6, 0xca, 0x90, - 0x7e, 0x67, 0x5e, 0xf7, 0xd5, 0x52, 0x84, 0xd8, - 0x47, 0x95, 0xbb, 0xa1, 0xaa, 0xc6, 0x66, 0x23, - 0x92, 0x62, 0xf3, 0x74, 0xa1, 0x9f, 0xf4, 0xa0, - 0x1d, 0x3f, 0x5b, 0xf0, 0x13, 0x0e, 0x09, 0x3d, - 0xf9, 0xbc, 0x00, 0x11} -) -var key256MappingAll [][]int //[idx256][idx128]idx44 -var key256Mapping128to44 map[int]int - -func init() { - { // init all mapping - key256MappingAll = make([][]int, 256) - for i := 0; i < 128; i++ { - realIdx := (i*i + 27) % 256 - if key256MappingAll[realIdx] == nil { - key256MappingAll[realIdx] = []int{i} - } else { - key256MappingAll[realIdx] = append(key256MappingAll[realIdx], i) - } - } - } - { // init - key256Mapping128to44 = make(map[int]int, 128) - idx44 := 0 - for _, all128 := range key256MappingAll { - if all128 != nil { - for _, _i128 := range all128 { - key256Mapping128to44[_i128] = idx44 - } - idx44++ - } - } - } - -} diff --git a/algo/qmc/old_mask.go b/algo/qmc/old_mask.go deleted file mode 100644 index b31f33d..0000000 --- a/algo/qmc/old_mask.go +++ /dev/null @@ -1,212 +0,0 @@ -package qmc - -import ( - "bytes" - "errors" - "github.com/unlock-music/cli/algo/common" - "github.com/unlock-music/cli/internal/logging" - "go.uber.org/zap" -) - -var ( - ErrFailToMatchMask = errors.New("can not match at least one key") - ErrTestDataLength = errors.New("invalid length of test file") - ErrMaskLength128 = errors.New("incorrect mask length 128") - ErrMaskLength44 = errors.New("incorrect mask length 44") - ErrMaskDecode = errors.New("decode mask-128 to mask-58 failed") - ErrDetectFlacMask = errors.New("can not detect mflac mask") - ErrDetectMggMask = errors.New("can not detect mgg mask") -) - -type Key256Mask struct { - matrix []byte // Mask 128 -} - -func NewKey256FromMask128(mask128 []byte) (*Key256Mask, error) { - if len(mask128) != 128 { - return nil, ErrMaskLength128 - } - q := &Key256Mask{matrix: mask128} - return q, nil -} - -func NewKey256FromMask44(mask44 []byte) (*Key256Mask, error) { - mask128, err := convertKey256Mask44to128(mask44) - if err != nil { - return nil, err - } - q := &Key256Mask{matrix: mask128} - return q, nil -} - -func (q *Key256Mask) GetMatrix44() ([]byte, error) { - if len(q.matrix) != 128 { - return nil, ErrMaskLength128 - } - matrix44 := make([]byte, 44) - idx44 := 0 - for _, it256 := range key256MappingAll { - if it256 != nil { - it256Len := len(it256) - for i := 1; i < it256Len; i++ { - if q.matrix[it256[0]] != q.matrix[it256[i]] { - return nil, ErrMaskDecode - } - } - matrix44[idx44] = q.matrix[it256[0]] - idx44++ - } - } - return matrix44, nil -} - -func (q *Key256Mask) Decrypt(data []byte) []byte { - dst := make([]byte, len(data)) - index := -1 - maskIdx := -1 - for cur := 0; cur < len(data); cur++ { - index++ - maskIdx++ - if index == 0x8000 || (index > 0x8000 && (index+1)%0x8000 == 0) { - index++ - maskIdx++ - } - if maskIdx >= 128 { - maskIdx -= 128 - } - dst[cur] = data[cur] ^ q.matrix[maskIdx] - } - return dst -} - -func convertKey256Mask44to128(mask44 []byte) ([]byte, error) { - if len(mask44) != 44 { - return nil, ErrMaskLength44 - } - mask128 := make([]byte, 128) - idx44 := 0 - for _, it256 := range key256MappingAll { - if it256 != nil { - for _, idx128 := range it256 { - mask128[idx128] = mask44[idx44] - } - idx44++ - } - } - return mask128, nil -} - -func getDefaultMask() *Key256Mask { - y, _ := NewKey256FromMask44(defaultKey256Mask44) - return y -} - -func detectMflac256Mask(input []byte) (*Key256Mask, error) { - var q *Key256Mask - var rtErr = ErrDetectFlacMask - - lenData := len(input) - lenTest := 0x8000 - if lenData < 0x8000 { - lenTest = lenData - } - - for blockIdx := 0; blockIdx < lenTest; blockIdx += 128 { - var err error - q, err = NewKey256FromMask128(input[blockIdx : blockIdx+128]) - if err != nil { - continue - } - if common.SnifferFLAC(q.Decrypt(input[:4])) { - rtErr = nil - break - } - } - return q, rtErr -} - -func detectMgg256Mask(input []byte) (*Key256Mask, error) { - if len(input) < 0x100 { - return nil, ErrTestDataLength - } - - matrixConf := make([]map[uint8]uint, 44) //meaning: [idx58][value]confidence - for i := uint(0); i < 44; i++ { - matrixConf[i] = make(map[uint8]uint) - } - - page2size := input[0x54] ^ input[0xC] ^ oggPublicHeader1[0xC] - spHeader, spConf := generateOggFullHeader(int(page2size)) - lenTest := len(spHeader) - - for idx128 := 0; idx128 < lenTest; idx128++ { - confidence := spConf[idx128] - if confidence > 0 { - mask := input[idx128] ^ spHeader[idx128] - - idx44 := key256Mapping128to44[idx128&0x7f] // equals: [idx128 % 128] - if _, ok2 := matrixConf[idx44][mask]; ok2 { - matrixConf[idx44][mask] += confidence - } else { - matrixConf[idx44][mask] = confidence - } - } - } - - matrix := make([]uint8, 44) - var err error - for i := uint(0); i < 44; i++ { - matrix[i], err = decideMgg256MaskItemConf(matrixConf[i]) - if err != nil { - return nil, err - } - } - q, err := NewKey256FromMask44(matrix) - if err != nil { - return nil, err - } - if common.SnifferOGG(q.Decrypt(input[:4])) { - return q, nil - } - return nil, ErrDetectMggMask -} - -func generateOggFullHeader(pageSize int) ([]byte, []uint) { - spec := make([]byte, pageSize+1) - - spec[0], spec[1], spec[pageSize] = uint8(pageSize), 0xFF, 0xFF - for i := 2; i < pageSize; i++ { - spec[i] = 0xFF - } - specConf := make([]uint, pageSize+1) - specConf[0], specConf[1], specConf[pageSize] = 6, 0, 0 - for i := 2; i < pageSize; i++ { - specConf[i] = 4 - } - allConf := append(oggPublicConfidence1, specConf...) - allConf = append(allConf, oggPublicConfidence2...) - - allHeader := bytes.Join( - [][]byte{oggPublicHeader1, spec, oggPublicHeader2}, - []byte{}, - ) - return allHeader, allConf -} - -func decideMgg256MaskItemConf(confidence map[uint8]uint) (uint8, error) { - lenConf := len(confidence) - if lenConf == 0 { - return 0xff, ErrFailToMatchMask - } else if lenConf > 1 { - logging.Log().Warn("there are 2 potential value for the mask", zap.Any("confidence", confidence)) - } - result := uint8(0) - conf := uint(0) - for idx, item := range confidence { - if item > conf { - result = idx - conf = item - } - } - return result, nil -} diff --git a/algo/qmc/old_qmc.go b/algo/qmc/old_qmc.go deleted file mode 100644 index 54d9df0..0000000 --- a/algo/qmc/old_qmc.go +++ /dev/null @@ -1,129 +0,0 @@ -package qmc - -import ( - "encoding/base64" - "encoding/binary" - "errors" - - "github.com/unlock-music/cli/algo/common" -) - -var ( - ErrQmcFileLength = errors.New("invalid qmc file length") - ErrQmcKeyDecodeFailed = errors.New("base64 decode qmc key failed") - ErrQmcKeyLength = errors.New("unexpected decoded qmc key length") -) - -type OldDecoder struct { - file []byte - maskDetector func(encodedData []byte) (*Key256Mask, error) - mask *Key256Mask - audioExt string - key []byte - audio []byte -} - -func NewMflac256Decoder(data []byte) common.Decoder { - return &OldDecoder{file: data, maskDetector: detectMflac256Mask, audioExt: "flac"} -} - -func NewMgg256Decoder(data []byte) common.Decoder { - return &OldDecoder{file: data, maskDetector: detectMgg256Mask, audioExt: "ogg"} -} - -func (d *OldDecoder) Validate() error { - if nil != d.mask { - return nil - } - if nil != d.maskDetector { - if err := d.validateKey(); err != nil { - return err - } - var err error - d.mask, err = d.maskDetector(d.file) - return err - } - return errors.New("no mask or mask detector found") -} - -func (d *OldDecoder) validateKey() error { - lenData := len(d.file) - if lenData < 4 { - return ErrQmcFileLength - } - - keyLen := binary.LittleEndian.Uint32(d.file[lenData-4:]) - if lenData < int(keyLen+4) { - return ErrQmcFileLength - } - var err error - d.key, err = base64.StdEncoding.DecodeString( - string(d.file[lenData-4-int(keyLen) : lenData-4])) - if err != nil { - return ErrQmcKeyDecodeFailed - } - - if len(d.key) != 272 { - return ErrQmcKeyLength - } - d.file = d.file[:lenData-4-int(keyLen)] - return nil - -} - -func (d *OldDecoder) Decode() error { - d.audio = d.mask.Decrypt(d.file) - return nil -} - -func (d OldDecoder) GetCoverImage() []byte { - return nil -} - -func (d OldDecoder) GetAudioData() []byte { - return d.audio -} - -func (d OldDecoder) GetAudioExt() string { - if d.audioExt != "" { - return "." + d.audioExt - } - return "" -} - -func (d OldDecoder) GetMeta() common.Meta { - return nil -} - -func DecoderFuncWithExt(ext string) common.NewDecoderFunc { - return func(file []byte) common.Decoder { - return &OldDecoder{file: file, audioExt: ext, mask: getDefaultMask()} - } -} - -//goland:noinspection SpellCheckingInspection -func init() { - common.RegisterDecoder("qmc0", false, DecoderFuncWithExt("mp3")) //QQ Music Mp3 - common.RegisterDecoder("qmc3", false, DecoderFuncWithExt("mp3")) //QQ Music Mp3 - - common.RegisterDecoder("qmc2", false, DecoderFuncWithExt("m4a")) //QQ Music M4A - common.RegisterDecoder("qmc4", false, DecoderFuncWithExt("m4a")) //QQ Music M4A - common.RegisterDecoder("qmc6", false, DecoderFuncWithExt("m4a")) //QQ Music M4A - common.RegisterDecoder("qmc8", false, DecoderFuncWithExt("m4a")) //QQ Music M4A - - common.RegisterDecoder("qmcflac", false, DecoderFuncWithExt("flac")) //QQ Music Flac - common.RegisterDecoder("qmcogg", false, DecoderFuncWithExt("ogg")) //QQ Music Ogg - common.RegisterDecoder("tkm", false, DecoderFuncWithExt("m4a")) //QQ Music Accompaniment M4a - - common.RegisterDecoder("bkcmp3", false, DecoderFuncWithExt("mp3")) //Moo Music Mp3 - common.RegisterDecoder("bkcflac", false, DecoderFuncWithExt("flac")) //Moo Music Flac - - common.RegisterDecoder("666c6163", false, DecoderFuncWithExt("flac")) //QQ Music Weiyun Flac - common.RegisterDecoder("6d7033", false, DecoderFuncWithExt("mp3")) //QQ Music Weiyun Mp3 - common.RegisterDecoder("6f6767", false, DecoderFuncWithExt("ogg")) //QQ Music Weiyun Ogg - common.RegisterDecoder("6d3461", false, DecoderFuncWithExt("m4a")) //QQ Music Weiyun M4a - common.RegisterDecoder("776176", false, DecoderFuncWithExt("wav")) //QQ Music Weiyun Wav - - common.RegisterDecoder("mgg", false, NewMgg256Decoder) //QQ Music New Ogg - common.RegisterDecoder("mflac", false, NewMflac256Decoder) //QQ Music New Flac -} diff --git a/algo/qmc/qmc.go b/algo/qmc/qmc.go index 61a591e..9e02bf8 100644 --- a/algo/qmc/qmc.go +++ b/algo/qmc/qmc.go @@ -1,6 +1,7 @@ package qmc import ( + "bytes" "encoding/binary" "errors" "io" @@ -183,3 +184,80 @@ func (d *Decoder) readRawMetaQTag() error { return nil } + +//goland:noinspection SpellCheckingInspection +func init() { + supportedExts := []string{ + "qmc0", "qmc3", //QQ Music MP3 + "qmc2", "qmc4", "qmc6", "qmc8", //QQ Music M4A + "qmcflac", //QQ Music FLAC + "qmcogg", //QQ Music OGG + + "tkm", //QQ Music Accompaniment M4A + "bkcmp3", //Moo Music Mp3 + "bkcflac", //Moo Music Flac + + "666c6163", //QQ Music Weiyun Flac + "6d7033", //QQ Music Weiyun Mp3 + "6f6767", //QQ Music Weiyun Ogg + "6d3461", //QQ Music Weiyun M4a + "776176", //QQ Music Weiyun Wav + + "mgg", "mgg1", //QQ Music New Ogg + "mflac", "mflac0", //QQ Music New Flac + } + for _, ext := range supportedExts { + common.RegisterDecoder(ext, false, newCompactDecoder) + } +} + +type compactDecoder struct { + decoder *Decoder + createErr error + buf *bytes.Buffer +} + +func newCompactDecoder(p []byte) common.Decoder { + r := bytes.NewReader(p) + d, err := NewDecoder(r) + c := compactDecoder{ + decoder: d, + createErr: err, + } + return &c +} + +func (c *compactDecoder) Validate() error { + if c.createErr != nil { + return c.createErr + } + return c.decoder.Validate() +} + +func (c *compactDecoder) Decode() error { + if c.createErr != nil { + return c.createErr + } + c.buf = bytes.NewBuffer(nil) + _, err := io.Copy(c.buf, c.decoder) + return err +} + +func (c *compactDecoder) GetCoverImage() []byte { + return nil +} + +func (c *compactDecoder) GetAudioData() []byte { + return c.buf.Bytes() +} + +func (c *compactDecoder) GetAudioExt() string { + if c.createErr != nil { + return "" + } + return c.decoder.GetFileExt() +} + +func (c *compactDecoder) GetMeta() common.Meta { + return nil +} diff --git a/cmd/um/main.go b/cmd/um/main.go index fbcbec6..74a4fc2 100644 --- a/cmd/um/main.go +++ b/cmd/um/main.go @@ -3,6 +3,15 @@ package main import ( "errors" "fmt" + "os" + "path/filepath" + "runtime" + "sort" + "strings" + + "github.com/urfave/cli/v2" + "go.uber.org/zap" + "github.com/unlock-music/cli/algo/common" _ "github.com/unlock-music/cli/algo/kgm" _ "github.com/unlock-music/cli/algo/kwm" @@ -11,12 +20,6 @@ import ( _ "github.com/unlock-music/cli/algo/tm" _ "github.com/unlock-music/cli/algo/xm" "github.com/unlock-music/cli/internal/logging" - "github.com/urfave/cli/v2" - "go.uber.org/zap" - "os" - "path/filepath" - "runtime" - "strings" ) var AppVersion = "v0.0.6" @@ -31,6 +34,7 @@ func main() { &cli.StringFlag{Name: "input", Aliases: []string{"i"}, Usage: "path to input file or dir", Required: false}, &cli.StringFlag{Name: "output", Aliases: []string{"o"}, Usage: "path to output dir", Required: false}, &cli.BoolFlag{Name: "skip-noop", Aliases: []string{"n"}, Usage: "skip noop decoder", Required: false, Value: true}, + &cli.BoolFlag{Name: "supported-ext", Usage: "Show supported file extensions and exit", Required: false, Value: false}, }, Action: appMain, @@ -43,8 +47,21 @@ func main() { logging.Log().Fatal("run app failed", zap.Error(err)) } } - +func printSupportedExtensions() { + exts := []string{} + for ext := range common.DecoderRegistry { + exts = append(exts, ext) + } + sort.Strings(exts) + for _, ext := range exts { + fmt.Printf("%s: %d\n", ext, len(common.DecoderRegistry[ext])) + } +} func appMain(c *cli.Context) (err error) { + if c.Bool("supported-ext") { + printSupportedExtensions() + return nil + } input := c.String("input") if input == "" { switch c.Args().Len() { diff --git a/go.mod b/go.mod index bc67651..5326dd1 100644 --- a/go.mod +++ b/go.mod @@ -6,12 +6,12 @@ require ( github.com/ulikunitz/xz v0.5.10 github.com/urfave/cli/v2 v2.3.0 go.uber.org/zap v1.19.1 + golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 ) require ( - github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d // indirect - github.com/russross/blackfriday/v2 v2.0.1 // indirect - github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect - go.uber.org/atomic v1.7.0 // indirect - go.uber.org/multierr v1.6.0 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.1 // indirect + github.com/russross/blackfriday/v2 v2.1.0 // indirect + go.uber.org/atomic v1.9.0 // indirect + go.uber.org/multierr v1.7.0 // indirect ) diff --git a/go.sum b/go.sum index 46b5493..9f00169 100644 --- a/go.sum +++ b/go.sum @@ -1,8 +1,9 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.1 h1:r/myEWzV9lfsM1tFLgDyu0atFtJ1fXn261LKYj/3DxU= +github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -13,9 +14,9 @@ github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= @@ -26,15 +27,18 @@ github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0o github.com/urfave/cli/v2 v2.3.0 h1:qph92Y649prgesehzOrQjdWyxFOp/QVM+6imKHad91M= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= +go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.1.11-0.20210813005559-691160354723 h1:sHOAIxRGBp443oHZIPB+HsUGaksVCXVQENPxwTfQdH4= go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/multierr v1.7.0 h1:zaiO/rmgFjbmCXdSYJWQcdvOCsthmdaHfr3Gm2Kx4Ec= +go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= go.uber.org/zap v1.19.1 h1:ue41HOKd1vGURxrmeKIgELGb3jPW9DMUDGtsinblHwI= go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 h1:ObdrDkeb4kJdCP557AjRjq69pTHfNouLtWZG7j9rPN8= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=