c_null 发表于 2016-6-26 01:46:10

Ummy Video Downloader 1.42 爆破

本帖最后由 c_null 于 2016-6-26 01:49 编辑

最近周杰伦发了新的专辑《床边的故事》
身边有个杰迷花了20块钱买了QQ音乐的电子音乐版权,炫耀到不行。他个B还分享到微信里,感觉就好像我们点开就能听了一样。科科。
突然想到,我们还有水管的福利。一搜,果然有这张专辑,水管地址:https://www.youtube.com/watch?v=wxdl5wF-gX4
以前我下载水管视频用的是一个网站:http://en.savefrom.net/1-how-to-download-youtube-video/
在这个网站输入水管视频网页地址就可以下载了,但是对于这种音频不能直接下载mp3格式,而是要用网站推荐的工具Ummy Video Downloader
http://en.savefrom.net/img/articles/youtube_com/ummy_en.png
下载下来之后发现收费了。价格还挺贵的。


实在是想搞,再群里发出来之后,得到大神关注。得到神器Hopper
用Hopper导入可执行文件,文件所在目录如下


导入之后搜索License,找到verifyLicenseKey:forName函数,下端动态调试

关注这个函数的调用,10000645d,查看调用处的伪代码
rsi = @selector(verifyLicenseKey:forName:);
    LOBYTE(r13) = LOBYTE();
    rdi = rbx;
    rbx = *objc_release;
    ;
    ;
    r12 = rbx;
    if (LOBYTE(r13) != 0x0) {
            if (LOBYTE(var_3C) != 0x0) {
                  rdi = *_dispatch_main_q;
                  rbx = var_30;
                  rsi = rbx;
                  dispatch_async(rdi, rsi);
                  r15 = var_38;
            }
            else {
                  rbx = var_30;
                  (*(rbx + 0x10))(rbx);
                  r15 = var_38;
            }
    }
    else {
            if (LOBYTE(var_3C) != 0x0) {
                  rdi = *_dispatch_main_q;
                  r15 = var_38;
                  rsi = r15;
                  dispatch_async(rdi, rsi);
            }
            else {
                  r15 = var_38;
                  (*(r15 + 0x10))(r15);
            }
            rbx = var_30;
    }

Verify函数的返回值跟0进行比较,Debug继续走,没注册时返回值是0,推断出非0的返回值是已注册
继续分析verify函数的返回值通过rax传递
    rbx = *objc_release;
    ;
    ;
    if (r12 == var_30) {
            LODWORD(rax) = sign_extend_64(LOBYTE(r15));
            return rax;
    }
    else {
            rax = __stack_chk_fail();
    }
    return rax;

修改函数头部,使用rax寄存器的最低一个字节al传值
                     -:
0000000100059dc3         mov      al, 0x1
0000000100059dc5         ret      
0000000100059dc6         db0xe5 ; '.'
0000000100059dc7         push       r15
0000000100059dc9         push       r14

整理代码,重新调试,改完这个地方之后程序已经注册了。
mp3可以下载了


下载附件,替换Contents/MacOS/Ummy Video Downloader文件即可,原文件不要忘记备份。


cfc1680 发表于 2016-6-26 06:26:28

支持了,感谢

small-q 发表于 2016-6-26 06:56:36

学习了,感谢

as123dsa 发表于 2016-6-26 06:58:29

感谢楼主分享。。。。。。。。。。。。。

hu007 发表于 2016-6-26 08:45:48

谢谢分享了!

0xcb 发表于 2016-6-26 11:57:40

这需求!杰米以后会赖上你的,:D

zxxiaopi 发表于 2016-6-26 13:21:13

牛逼,支持

tree_fly 发表于 2016-6-26 13:40:22

感谢发布原创作品~ 继续努力~
页: [1]
查看完整版本: Ummy Video Downloader 1.42 爆破