吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 18034|回复: 52
收起左侧

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

  [复制链接]
GEEKiDoS 发表于 2019-3-31 18:15
本帖最后由 Kido 于 2019-6-6 18:30 编辑

效果:
QQ截图20190331174051.jpg

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

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

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

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

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

QQ截图20190331175935.jpg

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

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

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

QQ截图20190331180314.jpg

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

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

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

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

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

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

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




免费评分

参与人数 13威望 +1 吾爱币 +20 热心值 +12 收起 理由
风轻然雨朦胧 + 1 + 1 楼主教程能不能详细一点,小白实在看不懂。
世俗红尘 + 1 + 1 热心回复!
Hmily + 1 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Daylight + 1 + 1 我很赞同!
joody + 1 热心回复!
2b菜鸟 + 1 谢谢@Thanks!
笙若 + 1 + 1 谢谢@Thanks!
Mr_Sir + 1 + 1 我很赞同!
xmhwws + 1 + 1 大佬,可以分享一下IDA的配色吗?
Ww吾爱破解 + 1 + 1 我很赞同!
hefen840239 + 1 + 1 我很赞同!
treehero + 1 + 1 谢谢@Thanks!
黑龍 + 3 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

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

[CSS] 纯文本查看 复制代码
   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播放限制
   QQ截图20190401193333.jpg QQ截图20190401193355.jpg

不过这样可能就会出现一种情况,有人做了个“美化包”,然后里面的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
提供了一个新思路,谢谢~
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 05:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表