-
iOS逆向-砸壳(Clutch & dumpdecrypted)
MachO文件 -> 苹果加密 -> 加壳文件 加壳文件 -> 苹果解密 -> MachO文件(DYLD) 解密过程: DRM(数字版权管理)检查 找到合适结构进行解密 使用DYLD加载解密的MachO 砸壳工具:Clutch 静态砸壳dumpdecrypted 动态加壳静态砸壳:调用系统的解密程序动态砸壳:得到系统解密后的MachO文件Clutch 静态砸壳前提条件:手机已越狱1. 下载安装Clutch到手机github下载 Clu...…
-
Mac上搭建直播服务器 Nginx+rtmp
简介Nginx 是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择,1、安装增加对 nginx 的扩展;也就是从github上下载,home-brew对ngixn的扩展执行克隆命令,github的项目(https://github.com/denji/homebrew-nginx)$ brew tap denji/nginx 注意: brew tap homebrew/nginx 报下面的错误, 使用brew tap denji/nginx 替代homebrew...…
-
Mac上搭建直播服务器 Nginx+HLS
HLS(HTTP Live Streaming)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议。是苹果公司QuickTime X和iPhone软件系统的一部分。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包含元数据的extended M3U (m3u8) playlist文件,用于寻找可用的媒体...…
-
Logos语法
logos 语法主要是对Cydia Substrate的MSHookMessageEx函数作了一层封装。1.%hook 指定需要hook的class,必须以%end结尾。2.%log 该指令在%hook内部使用,将函数的类名、参数等信息写入syslog,可以%log([(),…..])的格式追加其他打印信息。3.%orig 该指令在%hook内部使用,执行被hook的函数的原始代码;也可以用%orig更改原始函数的参数。4.%group 该指令用于将%hook分组,便于代码管理及按条件初始...…
-
HOOK
一、HOOK概述 HOOK(钩子) 其实就是改变程序执行流程的一种技术的统称!二、iOS中HOOK技术的几种方式1、Method Swizzle利用OC的Runtime特性,动态改变SEL(方法编号)和IMP(方法实现)的对应关系,达到OC方法调用流程改变的目的。主要用于OC方法。2、fishhookfishhook 是Facebook提供的一个动态修改链接mach-O文件的工具。利用MachO文件加载原理,通过修改懒加载和非懒加载两个表的指针达到C函数HOOK的目的。* How it ...…
-
iOS App MachO注入 - Framework注入
Framework注入1. 新建TARGETS2. 添加依赖关系 在Buildd Phases选择New Copy Files Phase新建依赖库文件,选择Destination为Framework。添加刚刚新建的frammework库 验证frammewor注入库添加依赖是否成功编译程序,打开Products下app文件,包内容下Frameworks文件下已生成对应注入库3. 修改MachO文件的Load Commands(将frammewor库注入到可执行文件中) 使用yolo...…
-
iOS App MachO注入 - Dylib注入
dylib 注入1. 新建TARGETS2. 添加依赖关系 在Buildd Phases选择New Copy Files Phase新建依赖库文件,选择Destination为Framework。添加刚刚新建的frammework库3. 修改平台 修改Architectures为iOS 修改Signing为iOS 4. 修改MachO文件的Load Commands(将Dylib库注入到可执行文件中) 使用yololib工具注入(手动)$ yololib We...…
-
iOS App 签名过程及重签
目的:保证 iOS 平台对第三方 APP 有绝对的控制权,每一个安装到 iOS 上的 APP 都是经过苹果官方允许的。签名过程 在你的 Mac 开发机器生成一对公私钥,这里称为公钥L,私钥L。L:Local 苹果自己有固定的一对公私钥,跟上面 AppStore 例子一样,私钥在苹果后台,公钥在每个 iOS 设备上。这里称为公钥A,私钥A。A:Apple 把公钥 L 传到苹果后台,用苹果后台里的私钥 A 去签名公钥 L。得到一份数据包含了公钥 L 以及其签名,把这份数据称为证书。 在...…
-
加密(哈希、AES、RSA)
一、哈希(散列)函数 MD5 SHA1 SHA256/512 HMAC特点: 算法公开 对不同数据加密结果是定长的!32位字符!! 信息摘要(加密之后的数据是不可逆!!)应用: 一般用来做密码加密! 版权问题,MD5值! 搜索引擎 云盘秒传(服务器上只要有这个文件,那么用户可以实现秒传) 签名验证 (信息+信息MD5发送给服务器) HMAC (可用于设备锁) 较为安全的hash登录加密方案:(HMAC+网络时间戳).MD5终端Mac系统有一个开源的密码库open...…
-
ShadowSocks 配置及BBR加速
ShadowSocks势必先要后买VPS,本人目前使用的是 Vultr, 购买流程此文不再赘述。SSH 登录 VPS登录远程vps可使用Vultr提供网页的View Console(体验太差),或使用ssh客户端工具进行登录。此处以Mac终端登录为例:打开终端,登录远程服务器,回车,输入yes确认是否连接,然后输入密码$ ssh root@108.61.219.99Username、IP Address可见创建的服务器详情VPS安装ShadowSocks1. 输入以下命令wget --no...…
-
LLDB 使用
LLDB(Low Lever Debug)命令结构<command> [<subcommand> [<subcommand>...]] <action> [-options [option-value]] [argument [argument...]] 其中: (命令)和(子命令):LLDB调试命令的名称。命令和子命令按层级结构来排列:一个命令对象为跟随其的子命令对象创建一个上下文,子命令又为其子命令创建...…
-
Cycript 安装及使用
Cycript允许开发人员通过交互式控制台,使用Objective-C ++和JavaScript语法的混合,在iOS或Mac OS X上检测和修改正在运行的应用程序。1. 安装 cycript下载 SDK ,将下载好的文件解压到 磁盘/opt目录下http://www.cycript.org/2. 配置环境变量1、 创建或打开 .bash_profile 文件cd 到当前用户目录下 cd ~ ,执行:$ vim .bash_profile2、 增加cycript的绝对路径export...…
-
XtraFinder
https://www.trankynam.com/xtrafinder/在早期的OS X上,只需打开XtraFinderInstaller即可安装XtraFinder。从OS X 10.11开始,系统完整性保护会阻止代码注入(以及其他许多事情)。XtraFinder的工作原理是将其代码注入Finder应用程序进程。为了安装XtraFinder,您需要禁用系统完整性保护。XtraFinder安装完成后,您可以重新启用系统完整性保护。有关系统完整性保护的更多信息,请访问此页XtraFinde...…
-
XtraFinder 系统完整性保护(SIP)
XtraFinder 系统完整性保护原文(译)1、关于OS X 10.11中的系统完整性保护苹果的文章。系统完整性保护阻止代码注入(以及其他许多事情)。XtraFinder的工作原理是将其代码注入Finder应用程序进程。2、如何让XtraFinder在OS X 10.11中工作您需要部分禁用系统完整性保护。我不鼓励您禁用系统完整性保护。它会让你的电脑不安全。3、如何部分禁用系统完整性保护参考这篇苹果的文章。按着这些次序:1. 通过重新启动计算机并在启动时按住Command+R键启动到恢复...…
-
Go2Shell and AppleScript
给Finder加上一个打开当前路径的终端的功能 有两种实现:Go2Shell App 和 AppleScript 扩展: AppleScript 实现 Go2Shell 一样的可视化打开方式一、 Go2Shell1. 安装1、Go2Shell官方安装 (推荐,因为AppStore下载的版本太低,无法打开iTerm2 -坑-)http://zipzapmac.com/Go2Shell2、AppStore下载至此就可以打开shell,不过仅仅是打开系统默认的终端shell2. 进入 ...…
-
MWeb + Jekyll
1. 打开 Mweb 外部模式若经常使用外部模式,可在偏好设置中设置:cmd+, 选中通用设置,勾选启用时默认打开外部模式2. 添加引用文件点击侧边栏左下角+,引入 github.io 项目文件 3. 设置引用文件Jekyll 等静态博客因为可以自定像 http://域名/2015/3/the-blog-post/ 这样的网址,所以在增加图片时,都是用 /images/pic.jpg 这样的绝对路径。然后图片要放在 source/images 文件夹下。总之,最重要一点请选择 绝对位置4....…
-
iTerm2 终端利器
# iTerm2强大的 Mac OS 终端利器,跟着教程走了一遍。1. 安装 iTerm2下载地址:https://www.iterm2.com/downloads.html下载的是压缩文件,解压后是执行程序文件,你可以直接双击,或者直接将它拖到 Applications 目录下。或者你可以直接使用 Homebrew 进行安装:$ brew cask install iterm22. 配置 iTerm2 主题iTerm2 最常用的主题是 Solarized Dark theme,下载地址:...…
-
OpenGL 常见概念性理解整理
什么叫光栅化(Rasterize/rasteriztion)?栅格化或者像素化,就是把矢量图形转化成像素点儿的过程我们屏幕上显示的画面都是由像素组成,而三维物体都是点线面构成的。要让点线面,变成能在屏幕上显示的像素,就需要Rasterize这个过程。就是从矢量的点线面的描述,变成像素的描述图元是什么?图元可以理解为组成图形的基本单元 比如点、线、三角形。 我们可以通过一系列函数或顶点数据帮助我们实现多种多样的图形。什么叫管线?管线(pipeline),可以理解为渲染流水线。管线,实际上指的...…
-
OpenGL ES - GLKit
OpenGL ES - - GLKit(GLKBaseEffect) Speed up OpenGL ES or OpenGL app development. Use math libraries, background texture loading, pre-created shader effects, and a standard view and view controller to implement your rendering loop.加快OpenGL ES或Open...…
-
OpenGL ES - GLSL
不采用GLKBaseEffect,使用编译链接自定义的着色器(shader)。用简单的glsl语言来实现顶点、片元着色器,并图形进行简单的变换。一、创建图层CAEAGLLayer /* CAEAGLLayer is a layer that implements the EAGLDrawable protocol, allowing it to be used as an OpenGLES render target. Use the `drawableProperti...…