Created with Sketch.
Created with Sketch.
首页
发现
小书
登录/注册
×
注册小专栏
通过微信登录
通过微博登录
通过Github登录
通过邮箱
注册
、
登录
友情提示
Login FAQ
.
×
邮箱登录
通过微信、微博、Github 登录
登录
×
邮箱注册
通过微信、微博、Github 登录
注册
iOS 逆向学习
作者
狼喜欢夏天
文章
26篇
售价
¥ 66
订阅
等共 45 人
马上订阅
icon_gift@2x
Created with Sketch.
送给好友
奖励
你可以在自己的个人网站、微博、朋友圈、微信群等分享本专栏的链接,如果有用户通过你的分享订阅,你将获得该订阅金10%的收入分成。
向大家推荐《iOS 逆向学习》 https://xiaozhuanlan.com/langzuxiaozi?rel=
复制链接
Created with Sketch.
微信扫码
icon_weibo_01@2x
Created with Sketch.
新浪微博
icon_twitter@2x
Created with Sketch.
Twitter
取消
确定
专栏简介:iOS逆向入门,一步一步学习iOS逆向工程14年底开始接触iOS逆向,半年后转做Android开发。由于17年又做iOS开发,回忆iOS逆向知识发现快忘记了。所以重新拾起这项技术,把总结学习的过程变成文字。方便以后查看学习。适宜人群:两年以上iOS开发者;iOS逆向知识小白;iOS逆向知识比较零散的兄弟;
最新文章
Group 14
Created with Sketch.
按发布时间正序
狼喜欢夏天
如何知道一个锁到底被哪个线程占用(下)?
[TOC] 问题 在iOS开发调试的过程中,有时会发现app卡死了,点击 pause program execution暂停程序,会发现程序停到等待某个锁上面。如果程序停止在咱自己的代码上面还好排查一点。如果停在没有源码的第三方...
狼喜欢夏天
如何知道一个锁到底被哪个线程占用(上)?
[TOC] 问题 在iOS开发调试的过程中,有时会发现app卡死了,点击 pause program execution暂停程序,会发现程序停到等待某个锁上面。如果程序停止在咱自己的代码上面还好排查一点。如果停在没有源码的第三方...
狼喜欢夏天
Xcode 编译耗时收集
[TOC] 简述 昨天读了《iOS 微信编译速度优化分享》,里面提到用开源的LLVM输出编译耗时。方法是添加 -ftime-trace 参数,然后输出数据, 该数据显示了LLVM/Clang在编译每个文件上花费的时间,具体到函数粒度...
狼喜欢夏天
iOS逆向学习~iOS 12.4 越狱
设备 iPhone 5s iOS 12.4 首先说一点,能用低版本越狱就用低版本的。因为高版本的不完美越狱会导致好些工具不方便或者不能用。 越狱工具是 unc0ver ,按照Cydia Impactor方法安装越狱 3.5.0 版本的时候不支持 A12 和...
狼喜欢夏天
初学 LLVM
学 LLVM Clang 能做什么? 参考 http://clang.llvm.org/docs/Tooling.html 语法树分析、语言转换。libclang、libTooling。 语言转换就是比如把 oc代码 转成 Swift代码,或者把 oc代码 转成 js代码。 Clang 插件开发 可以用...
狼喜欢夏天
iOS逆向学习~重签名
重签名是为了将修改过的App 安装到非越狱手机里。 咱先做一个实验。 两台iPhone,a、b;两个Apple ID,A、B。 设备a添加到账号A中的设备列表,设备b添加到账号B中的设备列表. 然后用Xcode创建一个iOS工程 Se...
狼喜欢夏天
iOS逆向学习~iOS签名
iOS 为什么要签名?在之前,Windows、Linux 开发和运行软件是不需要签名的,软件可以随便运行,不管这个软件是从官网下的,还是从其他网站下的,还是你逆向修改后的,导致盗版破解流行。苹果是想解决...
狼喜欢夏天
iOS逆向学习~ARM64汇编
iOS汇编分几种,一种是真机,一种是模拟器。咱写的代码跑在真机上和跑在模拟器上最终生成的汇编代码是不一样的,模拟器是x86架构的,它的汇编格式叫 AT&T汇编,这种汇编格式在多种CPU上都可以使用...
狼喜欢夏天
读脱壳源码 dumpdecrypted
如何脱壳,iOS逆向学习~脱壳有介绍两个工具,其中dumpdecrypted的源码非常简单,就一个文件,算上注释才200来行代码。 这个脱壳的方式是取了个巧,它并没有解密的逻辑,当它执行时,其实dyld已经完成了...
狼喜欢夏天
iOS逆向学习~动态调试(2)
打断点指令 (lldb) breakpoint set --name "-[ViewController touchesBegan:withEvent:]" Breakpoint 8: where = SettingView`-[ViewController touchesBegan:withEvent:] + 70 at ViewController.m:43, address = 0x00000001084b5116 当出现 where 。。。 的时候,代表...
狼喜欢夏天
iOS逆向学习~LLDB指令
学习LLDB命令,先熟悉一下Xcode的断点的应用 看到的蓝色的矩形, 就是表示该行设置了断点。 如果希望一个断点暂时失效, 点击蓝色矩形区域, 此时蓝色将会变为灰色, 表示断点失效, 如下图 删除一个断点...
狼喜欢夏天
iOS逆向学习~动态调试(1)
这里有两个概念需要了解一下,静态分析 和 动态调试 静态分析 将二进制的可执行文件翻译成汇编代码,通过对代码的分析来破解软件 动态调试 利用调试器跟踪软件的运行,通过下断点、打印等方式查看...
狼喜欢夏天
iOS逆向学习~去广告套路
这里写的是通过Tweak编写插件方式去广告的套路,学的是思路。 首先建立端口映射 $ sh usb.sh 远程登录手机 $ sh login.sh 上面两个命令的说明 iOS逆向学习~Mac 登录到 iPhone 获取要hook的App的路径 ~ root# ps ...
狼喜欢夏天
iOS逆向学习~Logos指令
%hook %end %hook Classname %end 指定需要hook的类名 ,必须以%end结尾 例如 %hook SBApplicationController -(void)uninstallApplication:(SBApplication *)application { NSLog(@"Hey, we're hooking uninstallApplication:!"); %orig; // Call the original...
狼喜欢夏天
iOS逆向学习~跟踪函数调用
今天学习的是跟踪函数调用,什么意思呢,举个例子,如果想做一个微信自动抢红包的插件,就需要写这么一个功能,当红包来了的时候,自动触发微信的抢红包函数。好,那咱就先找到这个函数。 映射...
狼喜欢夏天
iOS逆向学习~Tweak多文件开发
上一篇Tweak练习hook代码是写在Tweak.xm文件中,那是因为咱写的代码功能简单。如果功能逻辑复杂,需要其他对象,那应该怎么办呢? 做一个简单的实验, $ nic.pl NIC 2.0 - New Instance Creator ------------------------------...
狼喜欢夏天
iOS逆向学习~Tweak练习
Tweak练习,在Cheetah Keyboard 的 settings 界面 添加两个带图片资源的cell,一个是点击cell后退出程序,一个是带一个switch按钮。 先把手机的 设置 -> Reveal -> Enabled Applications -> CheetahKey 的switch按钮打开,...
狼喜欢夏天
iOS逆向学习~去广告
1: 确定广告View对应的类 这是一次去广告的小练习,去掉中间的广告,下图是喜马拉雅FM暂停时候出现的广告, 首先是 通过Reveal查找到广告对象,先允许Reveal读取喜马拉雅FM的信息,位置 设置 -> Reveal -...
狼喜欢夏天
iOS逆向学习~Mach-O(2)
逆向学习,咱先简单了解一下app 从开发到安装到手机上是怎么一个过程。平时咱开发,有代码、有图片、有storyboard、有xib、有plist等等。一般情况下要经历 编译、链接、签名,这些操作做完后就会变成.app...
狼喜欢夏天
iOS逆向学习~脱壳
为啥脱壳,因为从AppStore直接下载安装的App是加壳的,也可以说是加密的,如果想分析这种App的Mach-O是分析不出源码的. 如果想学习iOS逆向,有一种情况是不需要脱壳的,那就是从第三方渠道下载下来安装的A...
狼喜欢夏天
iOS逆向学习~Mach-O(1)
Mach-O 是 Mach object 的缩写,Mach-O 文件有很多种文件类型,属于 Mach-O 格式的文件类型有 #define MH_OBJECT 0x1 /* relocatable object file */ #define MH_EXECUTE 0x2 /* demand paged executable file */ #define MH_FVMLIB 0x3 ...
狼喜欢夏天
iOS逆向学习~UIKit框架的Mach-O文件查找
咱通过Cycript加载一个未加载过的framework的的方式是 var bundle = [NSBundle bundleWithPath:"/System/Library/Frameworks/UIKit.framework"] [bundle load] 或者 var bundle = [NSBundle bundleWithPath:"/System/Library/PrivateFrameworks/CrashReporterSupport.fr...
狼喜欢夏天
iOS逆向学习~Reveal
现在我要查看一个app(听戏)的页面结构,上一篇学习了Cycript,就可以这么干。先通过终端连接iPhone,然后执行以下命令 ~ root# cycript -p opera cy# UIApp.keyWindow.rootViewController #"<HLTabBarController: 0x12feaa700...
狼喜欢夏天
iOS逆向学习~Cycript
我们最想做的事情就是破解别人的app,要破解别人的app,就要先调试别人的app,比如说我们要破解一音乐app,我想了解这个app里的一些情况,一些内部的东西,我首先的把这个app运行起来,然后我们借助一...
狼喜欢夏天
iOS逆向学习~Mac 登录到 iPhone
1. 登录 Mac 登录到 iPhone 是通过Terminal(终端)的命令行 iOS和Mac 都是基于 Darwin(苹果的一个基于Unix的开源系统内核),所以iOS同样支持终端操作,上次越狱的时候就在手机上安装Terminal,用来执行了一下命令。...
狼喜欢夏天
iOS逆向学习~越狱
iPhone 6 越狱,版本: 9.2.1,需要 windows 系统 开始学习 iPhone 逆向,查了一下那些手机版本可以越狱 http://jailbreak.25pp.com/ios/,又在 "苹果越狱"贴吧 查到两款软件,Meridian、g0blin,发现我手上的手机都不能完美越狱,只有...
Created with Sketch.
Created with Sketch.
你确定要将该文章置顶吗
置顶
取消
Created with Sketch.
不能订阅自己的专栏哦,转发到微博、朋友圈和公众号宣传自己的专栏吧。
分享给我的朋友
Created with Sketch.
微博分享
Created with Sketch.
微信扫一扫
top
Created with Sketch.
Created with Sketch.
订阅专栏成功
扫码关注小专栏服务号,专栏有新内容及时通知你