飘云阁(PYG官方)

 找回密码
 快速注册

QQ登录

只需一步,快速开始

查看: 1676|回复: 26

[macOS] 一行代码走天下之Frida+Hopper v4.5.19 Demo调试Ummy Video Downloader算法

  [复制链接]
  • TA的每日心情
    开心
    2019-3-17 22:44
  • 签到天数: 132 天

    [LV.7]常住居民III

    发表于 2020-1-19 21:17:00 | 显示全部楼层 |阅读模式

    一行代码走天下之Frida+Hopper v4.5.19 Demo调试Ummy Video Downloader的注册验证算法

    前言
    最近接触到Frida神器,读完文档后发现确实是逆向神器,做了一期简短视频,介绍了一些入门操作,欢迎观看。

    这里记录一些操作步骤。

    0x1 初识软件
    Ummy Video 是一款下载YouTube视频的小工具,未注册时有使用次数限制,本地注册方式,未采用网络验证,仔细分析的话加解密及注册验证比较容易,可以用来练习练习。
    截屏2020-01-1915.30.08.jpg
    0x2 Hopper Disassembler分析

    接下来,启动Hopper Disassembler v4.5.19 Demo版本,虽然是Demo版本的,但是可以查看伪代码,用来分析足矣~。
    通过关键词license,很容易快速定位到软件使用的加解密类:EllipticLicense
    截屏2020-01-1915.38.10.jpg
    0x3 Frida、Frida-trace跟踪类的运行流程
    打开iTerm2,输入跟踪命令:
    frida-trace "Ummy Video Downloader" -m "*[EllipticLicense *]"
    关于frida-trace的使用可以参考官网文档。
    截屏2020-01-1915.43.28.jpg
    激活Ummy Video Downloader界面后,点击注册按钮,很容易看到下面的信息:
    截屏2020-01-1915.50.17.jpg
    读下来的意思就是:初始化类,导入公钥,设置黑名单,检测黑名单,注册码验证。
    是不是很激动,如此高效的逆向分析工具,相见恨晚不。

    0x4 初识劫持代码
    打开当前文件夹,frida自动创建了文件夹 __handlers__,包含了已注入的一些方法对应的js文件。
    我们把焦点放在这个文件__EllipticLicense_verifyLicenseK_eb1154d4.js。

    [JavaScript] 纯文本查看 复制代码
    {
      onEnter: function (log, args, state) {
        log('-[EllipticLicense verifyLicenseKey:' + args[2] + ' forName:' + args[3] + ']');
      },
    
      onLeave: function (log, retval, state) {
      }
    }


    首先尝试打印一下注册码和用户名,如下修改:

    [JavaScript] 纯文本查看 复制代码
    {
      onEnter: function (log, args, state) {
        log('-[EllipticLicense verifyLicenseKey:' + args[2] + ' forName:' + args[3] + ']');
        var name = new ObjC.Object(args[3]);
        var key = new ObjC.Object(args[2]);
        console.log("name:", name.toString(), "key:", key.toString());
      },
    
    	...
    }

    切换到iTerm2,按下Ctrl+C,中断后,按下向上方向键👆,激活上次命令,再次按下回车。
    点击激活按钮,就显示了内存中的用户名和激活码。
    截屏2020-01-1916.04.43.jpg
    0x5 一行代码走天下
    再次修改代码,添加如下一行代码:

    [JavaScript] 纯文本查看 复制代码
    {
     ... 
     
     onLeave: function (log, retval, state) {
        retval.replace(1);  // add one line code.
      }
    }

    这行代码的意思很明显了,就是修改函数:[EllipticLicense verifyLicenseKey: forName:]的返回值为True。
    好了,保存文档,再次注入,发现Ummy Video Downloader变成了注册版,可以使用下载功能了。
    截屏2020-01-1916.11.27.jpg



    链接:


    评分

    参与人数 9威望 +9 飘云币 +9 收起 理由
    f88u8 + 1 + 1 PYG有你更精彩!
    天玄 + 1 + 1 PYG有你更精彩!
    zyjsuper + 1 + 1
    xmhwws + 1 + 1 相见恨晚
    tiantian89 + 1 + 1 PYG有你更精彩!
    飞天 + 1 + 1 感谢发布原创作品,PYG有你更精彩!
    侠骨留香 + 1 + 1 原创精品 感谢分享!
    Master.lu + 1 + 1 感谢发布原创作品,PYG有你更精彩!
    F-T + 1 + 1 感谢发布原创作品,PYG有你更精彩!

    查看全部评分

    本帖被以下淘专辑推荐:

  • TA的每日心情
    开心
    6 天前
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2020-1-19 21:52:22 | 显示全部楼层
    占座来跟着学习
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-9 08:20
  • 签到天数: 869 天

    [LV.10]以坛为家III

    发表于 2020-1-20 08:08:52 | 显示全部楼层
    膜拜飞树大神
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-1-14 08:08
  • 签到天数: 79 天

    [LV.6]常住居民II

    发表于 2020-1-20 08:42:02 | 显示全部楼层
    来跟着学习学习
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-12-15 09:40
  • 签到天数: 975 天

    [LV.10]以坛为家III

    发表于 2020-1-20 13:27:00 | 显示全部楼层
    感谢大婶分享分析文章,支持。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 15:28
  • 签到天数: 67 天

    [LV.6]常住居民II

    发表于 2020-1-20 14:13:09 | 显示全部楼层
    学习下大神的经验
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2020-1-21 00:13:57 | 显示全部楼层

    膜拜飞树大神
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2020-2-14 00:02
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    发表于 2020-1-21 03:22:30 | 显示全部楼层
    感谢!!!我的大神
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    7 天前
  • 签到天数: 68 天

    [LV.6]常住居民II

    发表于 2020-1-21 09:35:53 | 显示全部楼层
    感谢分享 前来学习一下
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    7 小时前
  • 签到天数: 45 天

    [LV.5]常住居民I

    发表于 2020-1-21 11:02:15 | 显示全部楼层

    太牛了。。还有吗?????
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 快速注册

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|飘云阁安全论坛 ( 粤ICP备15107817号-2 )|扫码赞助

    Powered by Discuz! X3.3© 2001-2017 Comsenz Inc.

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