找到关键函数validateSerial
查看伪代码:
如上取余那部分的伪代码相当难以理解的,ida这部分就处理的比hopper好,可以同时打开hopper和ida查看伪代码。
反调试绕过 从入口函数找到 _main
方法,用 ptrace 实现的反调试,将这行 nop 掉即可:
在类 Unix 系统中,提供了一个系统调用 ptrace
用于实现断点调试和对进程进行跟踪和控制,而 PT_DENY_ATTACH
是 macOS
增加的一个 选项,用于阻止 GDB 等调试器依附到某进程:
ptrace(PT_DENY_ATTACH, 0, 0, 0);
po $eax
查看寄存器的值x $eax
查看寄存器中地址指向的值po (char *)$eax
查看寄存器地址指向字符串的值在 label 和 str 都找不到入口时,从 ui 界面(如声音、弹窗等)入手,动态调试查看 callback 栈。