Plist文件编辑工具PlistEdit Pro 1.9.1动态调试分析
0x00:简介
PlistEdit Pro是为macOS平台最优秀的属性列表和JSON编辑器。
Mac和iOS开发人员在开发应用程序时必须编辑各种属性列表和JSON文件。PlistEdit Pro通过提供直观和强大的界面,使编辑这些文件变得更容易。除了能够复制、粘贴或拖放属性列表数据之外,PlistEdit Pro还提供了强大的查找和替换功能,以及结构定义,可以方便地访问各种标准属性列表文件中常用的键。
高级用户还可以从PlistEdit Pro的preferences浏览器中获益,该浏览器允许轻松访问macOS用于在系统上存储设置的属性列表。浏览您的首选项,或者立即搜索plist文件的整个文件夹,以获得特定的键或值。PlistEdit Pro还通过它的Applescript支持和它的pledit命令行工具,实现了涉及属性列表的任务的自动化。
官方网址:https://www.fatcatsoftware.com/plisteditpro/
下载地址:https://www.fatcatsoftware.com/plisteditpro/PlistEditPro.zip
未破解前,软件不能保存修改后的文件,并且有提示注册的按钮,如图:
0x01:静态分析
使用Hopper加载目标程序/Applications/PlistEdit\ Pro.app/Contents/MacOS/PlistEdit\ Pro。
动态调试时需要合理的设置断点,这就需要我们先进行静态分析之后找到关键的函数,或者关键的跳转等。
静态分析前,我们先看看软件给我们的提示信息有哪些,因为要破解成注册版,所以我们走一遍注册流程,依次点击“PlistEdit Pro”-->“Registration...”
来到软件注册窗口,填写用户名和注册码后(不知道正确的license是什么,所以此处填写的当然是错误的注册信息)点击“Register”按钮,软件给出如下图所示提示信息:

我们在Hopper中,搜索"The name/serial number combination you have entered is not valid. Please check both the serial number and your name to ensure they exactly match your registration information and try again."这句字符串。
通过查找字符串的调用位置,我们找到了关键判断函数"PERegistrationValidator validationInfoForRegistrationInfo"
在函数的起始位置设置断点,如下图所示:准备下一步的动态调试。
0x02:动态分析
打开本地调试器,点击运行按钮。重复上一步的注册操作,软件断在我们设置好的断点,如图所示:

点击我们想要跳转的位置,这里我们直接选在第一个跳转的位置,然后点击运行到指定位置的按钮,如图所示:

查看下跳转标记,为成功跳转,如图:

取消ZF标记按钮选中状态,点击单步跟踪按钮,如图:

这一步如此操作是有理由的,如果我们想完整的调试一个函数,尽量让该跳转的地方不跳转,那样就可以分析函数每一步都在做什么。
继续重复上述操作,程序运行结果如图所示:

软件成功注册。
0x03:修改软件
如图所示,只需要修改两个跳转即可完成软件破解。

Plist文件编辑工具PlistEdit Pro 1.9.1动态调试分析的更多相关文章
- Linux文件编辑工具——VIM
Linux文件编辑工具--VIM 1.VIM基本概述 1.1 什么是vim vi 和 vim 是 Linux 下的一个文本编辑工具.(可以理解为 windows 的记事本,或 Notepad++ 1. ...
- IDA Pro使用(静态分析+动态调试)
链接:http://skysider.com/?p=458 IDA Pro使用(静态分析+动态调试) 1.静态分析 IDA FLIRT Signature Database —— 用于识别静态编译的可 ...
- 【强大的视频编辑工具】Adobe Premiere Pro CC 2019 for Mac
[简介] PR CC是视频编辑爱好者和专业人士必不可少的视频编辑工具.它可以提升您的创作能力和创作自由度,它是易学.高效.精确的视频剪辑软件.PR CC提供了采集.剪辑.调色.美化音频.字幕添加.输出 ...
- Duplicate Manager Pro for Mac(重复文件查找工具)破解版安装
1.软件简介 Duplicate Manager Pro 是 macOS 系统上一款重复文件查找工具,可以帮你在 Mac 电脑上查找出磁盘上面的重复文件,然后让你对这些重复文件进行判断并删除,使 ...
- FFmpeg命令行工具和批处理脚本进行简单的音视频文件编辑
FFmpeg_Tutorial FFmpeg工具和sdk库的使用demo 一.使用FFmpeg命令行工具和批处理脚本进行简单的音视频文件编辑 1.基本介绍 对于每一个从事音视频技术开发的工程师,想必没 ...
- day59:Linux:编辑工具vim&文件类型&文件属性
目录 1.Linux编辑工具vim 2.Linux文件类型 3.Linux文件属性 4.今日份Linux练习题 Linux编辑工具vim 1.什么是vim 文本文件的编辑工具, 和windows的n ...
- [系统安全] 十六.PE文件逆向基础知识(PE解析、PE编辑工具和PE修改)
[系统安全] 十六.PE文件逆向基础知识(PE解析.PE编辑工具和PE修改) 文章来源:https://masterxsec.github.io/2017/05/02/PE%E6%96%87%E4%B ...
- 日志查看工具 logviewer pro的使用
1.logViewer Pro 介绍 logViewer Pro 是一款log文件查看器,它可以在短短数秒内打开上G的LOG文件,支持高亮某行文字(例如警告,错误),支持Unicode名字,支持查看的 ...
- Plist文件和字典转模型
模型与字典 1. 用模型取代字典的好处 使用字典的坏处 编译器没有自动提醒的功能,需要手敲 key如果写错了编译器也不会报错 2. 模型概念 概念 专门用来存放数据的对象 特点 一般继承自NSObje ...
随机推荐
- pytest_函数传参和firture传参数request
前言为了提高代码的复用性,我们在写用例的时候,会用到函数,然后不同的用例去调用这个函数. 比如登录操作,大部分的用例都会先登录,那就需要把登录单独抽出来写个函数,其它用例全部的调用这个登陆函数就行. ...
- 设置elasticsearch的默认分区数和副本数
日志是从logstash传输给ES的,但是logstash配置中只能配置host和index,所以只能在es中进行配置 但是在es配置文件中配置,也就是新增如下参数的话会报错:node setting ...
- 视频推流模式HLS,HTTP,RTSP,RTMP协议的区别
HTTP: 先通过服务器将FLV下载到本地缓存,然后再通过NetConnection的本地连接来播放这个FLV,这种方法是播放本地的视频,并不是播放服务器的视频.因此在本地缓存里可以找到这个FLV.其 ...
- web API .net - .net core 对比学习-文件目录概述
个人正在学习.net web Api的相关知识,因此用这一系列博客做一记录. 1. 首先我们分别创建 .net web api 项目和 .net core web api 项目. 2. 我们首先比较一 ...
- Python的virtualenv管理
原文链接 虚拟环境 Python 开发中所谓的虚拟环境,就是为 Python 版本及第三方库创建独立的开发环境,使不同项目之间互不干扰.借助于虚拟环境,我们可以在同一台电脑上构建出项目 A 在基于 P ...
- Java自学-数组 创建数组
Java 如何创建一个数组 数组是一个固定长度的,包含了相同类型数据的 容器 步骤 1 : 声明数组 int[] a; 声明了一个数组变量. []表示该变量是一个数组 int 表示数组里的每一个元素都 ...
- jdk命令行工具系列
虚拟机堆转储快照分析工具使用jmap等方法生成java的堆文件后jhat:虚拟机堆转储快照分析工具 导出程序执行的堆信息 jps jps -l jmap -dump:format=b,file=D:/ ...
- 工厂交接班易出问题?MES系统实现精准对接
工厂交接班制度非常的严格和复杂,而MES系统能让繁琐的交接班流程简单快捷无措.MES系统在发生事件时记录传递事件,还可以主动对事件进行分类和报告.人员可以查看和深入到以前或当前班次的个别事件. 随着工 ...
- java static变量及函数
java以类为基础,没有游离在类之外单独存在的变量.所以,c++中的全局变量,在java中应该是不存在的.java中有的是成员变量和成员方法.当成员前以static修饰时,即为静态成员变量或静态成员方 ...
- Devops Reference
摘自 https://www.cnblogs.com/yibutian/p/9561657.html DevOps 企业实践 实施DevOps的核心目标是加速团队.企业的IT精益运行,从根本上提升IT ...

