用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
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-4-1 19:34 编辑
a964866805 发表于 2019-3-31 19:51
这这。。有什么用处吗
可以改UI之类的东西,而且你还可以改逻辑,大部分软件逻辑都在core.js里, 硬编码的还挺少的
例: 将bb.bPi这个函数的返回值永远为true就可以破解ncm播放限制
不过这样可能就会出现一种情况,有人做了个“美化包”,然后里面的core.js会把输入的账号密码ajax给第三者 加油(? ??_??)? 不错啊大佬,不过我还是喜欢用UWP kingkiller 发表于 2019-3-31 18:45
不错啊大佬,不过我还是喜欢用UWP
UWP版本的缓存机制有问题,莫名其妙的吃掉了我几百G空间,之前还不知道,后来有一次空间满了去查发现网易云UWP吃了我几百G的空间,就回去用PC版了 GEEKiDoS 发表于 2019-3-31 18:51
UWP版本的缓存机制有问题,莫名其妙的吃掉了我几百G空间,之前还不知道,后来有一次空间满了去查发现网易 ...
确实是有这个问题,所以我都是定期清理,唉!UWP已经两年没更新了,一些BUG也不修复 谢谢楼主分享 楼主的美化包可以分享一下吗 123hundun123 发表于 2019-3-31 18:56
楼主的美化包可以分享一下吗
我还没做完,只弄了私人FM界面,其他地方全目前都是bug 提供了一个新思路,谢谢~