逆向学习之路小试牛刀Interface Inspector
逆向学习之路小试牛刀 Interface Inspector
准备
开干
先打开Interface-inspector 看一下
Hopper打开Interface Inspector的可执行文件
左侧tab页搜索register
关键字
从名字上看SMEnterLicenseViewController register
像是注册的用到的,点开看一下,反正不要钱。
rax = [r14 enterLicenseViewControllerDidSelectRegister:r15 withLicenseName:r12 code:rbx];
应该就这这里了进一步跟进去看一看
rbx = [rax registerLicenseWithName:r12 code:rcx];
通过这行代码接着跟
到这里基本算是跟到头了,r12
变量就是干这个验证通过没有通过的活的。
改代码
Modify -> Assemble Instruction
else的地方直接改成赋值为1
000000010010f39b mov r12b, 0x1
File -> Produce New Executable
生成新的可执行文件,在弹框中选择移除签名
打开Interface Inspector
有签名校验,有意思,接着走
通过关键字符串Signature of the Interface inspector is broken
继续找
点开按着X
一层一层找引用
loc_100024851
找下谁在用,就在当前文件里,goto了
if ([rax codeSignState] != 0x2) goto loc_100024851;
改一下goto
改代码
000000010002447e jne loc_100024851
改为
000000010002447e jne loc_100024484
保存为新的可执行文件,依旧是移除签名,再次重新打开Interface inspector
熟悉的界面又回来了
name
和license
随便输入
破解成功
总结
参考了AloneMonkey的文章,但是到修改签名的那部分就有点跟不上了,改二进制,找terminate符号,之后自己按照自己的思路搞一波,发现比他的还要简单一点。
参考
source
https://github.com/1483523635/blogs/blob/master/tweak/MacOs/interface-inspector.md
原文地址:https://www.cnblogs.com/qulianqing/p/12965259.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 手把手教你在 TKE 集群中实现简单的蓝绿发布和灰度发布
- 虚拟机系列 | JVM类加载机制
- 树莓派综合项目2:智能小车(一)四轮驱动
- java 字节流入门(内存数组流->文件流)
- 视频高速上云网关/网络穿透EasyNTS智能组网服务平台ini配置文件丢失如何处理?
- 结构与算法(05):二叉树与多叉树
- 树莓派综合项目2:智能小车(二)tkinter图形界面控制
- 虚拟机系列 | JVM运行时数据区
- 虚拟机系列 | 执行引擎和垃圾回收
- 在Linux系统中编译ARM版EasyNTS上云网关服务报undefined错误的解决方案
- 从全备中恢复单库或单表,小心有坑!
- Zookeeper安装以及常用操作
- Codeforces Round 671 (Div. 2) A-D
- 程序中并没有走缓存,为什么执行时间短了
- ES 常用Linux查询命令汇总