GEEKiDoS 发表于 2019-3-31 18:15

用IDA爆破XX云音乐(Win/Linux版)的NTPK包校验

本帖最后由 Kido 于 2019-6-6 18:30 编辑

效果:


一直很想改网易云音乐的UI,无意中翻到这篇文章:https://blog.csdn.net/qq_35617617/article/details/79654277

知道了NTPK/SKIN文件是加了特殊头的zip包,zip包是有密码的,参考上面的文章跟进去就能获得密码了!

文中也有替换程序中的密钥然后自己重新加密来pass校验的,但是比较麻烦,所以我就直接去爆破了。

我用的工具是IDA,我就直接把cloudmusic.dll拖入ida开搞

我并没有有上文的方法再CreateFileW上面下断点,我直接去搜索了NTPK字符串,找到了这四个字符串



一个一个找过去,在我选中的那个字符串的下面还有一个invaild,我就觉得这个字符串是校验函数用到的,直接进入调用这个字符串的函数按F5,就可以看到这个函数就是校验函数,分析一下逻辑,发现此处的sub_100B5260是决定关键的一个函数


再点进去就可以看到里面的样子了

点进去看到这里这两个sub_100B4E40和sub_100B4F60



点进去看看会发现sub_100B4E40是确认文件的MAGIC以及存储的长度是否正确,sub_100B4F60是在校验文件头,二话不说直接点进这两个函数一通patch应该就搞定了!

首先是sub_100B4E40,观察得这个函数有两个return的地方,第一个地方在上面return的是1


于是我就直接在这个函数最开始的地方jmp到这个地方就完事了,函数就变成了这样。
再看sub_100B4F60,观察发现只有一个return的地方,把最后的mov al, 直接换成mov al, 1, 让他永远返回1,屁股后面再补一个nop,然后从程序开头直接跳到这个地方,完成!(函数就变成了这样)


然后把补丁应用到输入的文件就完成了!

在重新打包的时候只需要把新的压缩包复制到原来的NTPK/SKIN档的0x110处,然后保存就行了
然后就可以做美化包啦,祝各位老哥魔改愉快!

(我的技术挺烂的, 大佬看看就好)

我的美化包: https://www.52pojie.cn/thread-918244-1-1.html




GEEKiDoS 发表于 2019-3-31 19:08

123hundun123 发表于 2019-3-31 18:56
楼主的美化包可以分享一下吗

   body {
                background-image: url(file:///I:/BaiduNetdiskDownload/cloudmusicold/281228.jpg) !important;        
      background-size: cover;
        }
   
    .j-curr-hide ,.j-curr-hide img,.j-next-hide,.j-next-hide img,.j-next,.j-next img,.j-curr,.j-curr img{
            border-radius: 200px !important;
      overflow:hidden !important;
      box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14),
                  0 1px 18px 0 rgba(0, 0, 0, 0.12),
                  0 3px 5px -1px rgba(0, 0, 0, 0.4);
    }
   
    .playbtn {
            background-color: #000 !important;
      border: none !important;
            -webkit-filter: invert();
      box-shadow: 0 6px 10px 0 rgba(255, 255, 255, 0.14),
                  0 1px 18px 0 rgba(255, 255, 255, 0.12),
                  0 3px 5px -1px rgba(255, 255, 255, 0.4) !important;
      
            left: 124px !important;
            top: 124px !important;
            width: 52px !important;
            height: 52px !important;
    }
   
    .btnwrap {
            width:99999px !important;
                left:-16px;
    }
   
    .btnwrap .btn {
      padding:4px;
      border: none !important;
      border-radius:24px !important;
            box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14),
                  0 1px 18px 0 rgba(0, 0, 0, 0.12),
                  0 3px 5px -1px rgba(0, 0, 0, 0.4);
    }
   
    .fmcmt {
            background-color: rgba(255,255,255,0.9);
      padding-top:2em;
      border-radius: 10px;
      box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14),
                  0 1px 18px 0 rgba(0, 0, 0, 0.12),
                  0 3px 5px -1px rgba(0, 0, 0, 0.4);
                margin-bottom: 5em;
    }
   
    .covers::after {
            background: none !important;
    }
   
    .m-fm {
            margin-top: 2em;
    }

        .fmplay {
                position: relative;
                left: -6em;
                margin-bottom: 10em !important;
        }
   
    .fmlrc {
            background-color: rgba(255,255,255,0.9) !important;
                border-radius: 10px;
                padding-bottom: 2em !important;
                padding-right: 2em !important;
                left: 2em !important;
                box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14),
                  0 1px 18px 0 rgba(0, 0, 0, 0.12),
                  0 3px 5px -1px rgba(0, 0, 0, 0.4);
    }

        .g-sd {
                background-color: rgba(255,255,255,0.75) !important;
                color:#000 !important;
                border: none !important;
        }

        .nav * {
                color:#000 !important
        }

        ::-webkit-scrollbar-track {
                background-color: rgba(255,255,255,0.2) !important;
        }

        ::-webkit-scrollbar-thumb {
                background-color: rgba(255,255,255,0.4) !important;
        }

我目前在app.html里面加了这堆css

GEEKiDoS 发表于 2019-3-31 20:09

本帖最后由 GEEKiDoS 于 2019-4-1 19:34 编辑

a964866805 发表于 2019-3-31 19:51
这这。。有什么用处吗
可以改UI之类的东西,而且你还可以改逻辑,大部分软件逻辑都在core.js里, 硬编码的还挺少的

例: 将bb.bPi这个函数的返回值永远为true就可以破解ncm播放限制


不过这样可能就会出现一种情况,有人做了个“美化包”,然后里面的core.js会把输入的账号密码ajax给第三者

原来是平凡 发表于 2019-3-31 18:32

加油(? ??_??)?

kingkiller 发表于 2019-3-31 18:45

不错啊大佬,不过我还是喜欢用UWP

GEEKiDoS 发表于 2019-3-31 18:51

kingkiller 发表于 2019-3-31 18:45
不错啊大佬,不过我还是喜欢用UWP

UWP版本的缓存机制有问题,莫名其妙的吃掉了我几百G空间,之前还不知道,后来有一次空间满了去查发现网易云UWP吃了我几百G的空间,就回去用PC版了

kingkiller 发表于 2019-3-31 18:53

GEEKiDoS 发表于 2019-3-31 18:51
UWP版本的缓存机制有问题,莫名其妙的吃掉了我几百G空间,之前还不知道,后来有一次空间满了去查发现网易 ...

确实是有这个问题,所以我都是定期清理,唉!UWP已经两年没更新了,一些BUG也不修复

吾弑 发表于 2019-3-31 18:55

谢谢楼主分享

123hundun123 发表于 2019-3-31 18:56

楼主的美化包可以分享一下吗

GEEKiDoS 发表于 2019-3-31 18:57

123hundun123 发表于 2019-3-31 18:56
楼主的美化包可以分享一下吗

我还没做完,只弄了私人FM界面,其他地方全目前都是bug

狮王 发表于 2019-3-31 19:00

提供了一个新思路,谢谢~
页: [1] 2 3 4 5 6
查看完整版本: 用IDA爆破XX云音乐(Win/Linux版)的NTPK包校验