这将是寒假中最后一次发帖,从明天开始我就要学习了:D
Downie,全能的网络视频下载软件。在论坛中搜索Downie,一大把一大把的TNT破解出现在眼前。但是求人不如求己,因此本文主要介绍Downie暴破,技术含量不是很大,包含中变量的tweak,和动态库之间交互的分析。
软件分析
打开Downie,在一系列的初始化后,会弹出试用期限窗口,提醒试用倒计时(14天)。操作可知,在试用期限中,软件的所有功能都可以正常使用。点开菜单栏中的Downie 4,可以看到几个关于注册的按钮。
通过我们观察到的元素,可以分析出如下三种逆向方案:
分析算法写注册机:现在软件都是联网注册,分析算法没啥用;
修改剩余天数为定值:分析非常简单;
修改全局已注册变量:也很简单,需同时去除校对验证函数。
本文就介绍二三两种方法吧。
代码分析
拖进Hopper,对于这种应用程序的启动弹窗来说,懂Apple开发的都知道,可以从macOS应用程序的生命周期入手。搜索appDidFinishLaunching可以找到如下符号:
[Asm] 纯文本查看 复制代码
s6Downie13XUAppDelegateC29applicationDidFinishLaunchingyy10Foundation12NotificationVF SyntaxHighlighter Copyright 2004-2013 Alex Gorbatchev.
函数会在程序启动完成后被调用。在loc_100037546中可以找到一些有关license的代码:
[Asm] 纯文本查看 复制代码
call imp___stubs__$s9Licensing11CMLicensingCMa
mov r13, rax
call imp___stubs__$s9Licensing11CMLicensingC6sharedACvgZ
mov rbx, rax
mov rax, qword [_$s9Licensing11CMLicensingC8delegateAA0B8Delegate_pSgvpWvd_100118910]
mov qword [rbp+var_30], r14
mov r12, qword [rax]
lea r14, qword [rbx+r12]
lea rsi, qword [rbp+var_E8]
mov edx, 0x1
mov rdi, r14
xor ecx, ecx
call imp___stubs__swift_beginAccess
lea rax, qword [_$s6Downie13XUAppDelegateC9Licensing011CMLicensingC0AAWP]
支付4UD,阅读全文
还有更多的精彩内容,作者设置为付费后可见