![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
iOS逆向以及SDK开发
文章平均质量分 73
SDK开发,runtime,逆向技术
CaicaiNo.1
这个作者很懒,什么都没留下…
展开
-
iOS开发-iOS如何本地调试JS
文章目录前言Charles代理HTTPS代理设置WKWebView的缓存机制本地映射html 资源请求远端映射映射到远端映射到本地服务器Safari的调试功能前言最近在排查问题时,遇到Html网页问题,总结下调试经验Charles代理HTTPS代理设置关于 charles 的 https 代理设置,这里简单说明下:打开 Charles,选择上侧菜单栏,选择 SSL Proxying ,安装证书到手机 Mobile Device根据弹框提示,打开网址下载证书,并信赖,然后配置wifi在同一网原创 2021-04-19 22:57:43 · 1390 阅读 · 0 评论 -
iOS开发-逆向注入SDK(三)MonkeyDev注入打包
文章目录MonkeyDev使用注入SDKMonkeyDev强大的工具集,MonkeyDev ,使用它行了!安装教程见 Wiki使用拿着之前通过 frida砸壳 的 ipa包,先创建一个 MonkeyDev 工程。这里以 qqmusic 为例将砸壳的 ipa 放到 qqmusic/TargetApp/ 下,然后拖拽至工程文件中。设置主工程的证书,dylib的不用设置提示 Showing All Messages Signing for "qqmusicDylib" requir原创 2021-03-23 11:06:39 · 2441 阅读 · 2 评论 -
iOS开发-逆向注入SDK(二)frida砸壳
文章目录下载app使用frida完成 iOS开发-逆向注入SDK之iOS越狱 之后 ,我们开始砸壳app下载app手机安装了 爱思极速版 后,我们可以不经过 appstore 下载,因为是砸壳,选择一些不需要登录的app为好,选择微信,登录后可能会被封号。使用fridafrida算是比较无脑的一个,简单,所以这里选择用它。下拉 frida-ios-dumpgit clone https://github.com/AloneMonkey/frida-ios-dump下拉仓库。cydia原创 2021-03-22 21:49:56 · 939 阅读 · 0 评论 -
iOS开发-逆向注入SDK(一)iOS越狱
越狱这里采用使用 iphone 5S, iOS 12.4.9 为例,进行 非完美越狱非完美越狱:重启手机越狱失效,需要再进行越狱,越狱也不麻烦,点几下就行了,不过不关机就行了哈i4助手安装 i4助手(爱思助手) https://www.i4.cn/ 是个很好的软件,如果你的手机变砖了,正好可以使用它刷机。不过被密码锁定的手机不行。如果你的iphone已经开机就黑,选择合适的固件版本,进行刷机这里对其功能不做进一步说明,低版本可以直接完美越狱,我们这里仅使用它来方便访问越狱文件以及安装a原创 2021-03-22 21:16:57 · 680 阅读 · 0 评论 -
iOS开发-NSThread子线程autoreleasepool的问题
前言对于 NSThread 开启的子线程,我们需要在 main 函数中创建一个autoreleasepool,当我们从其他线程跳转到该线程执行时,对象是如何释放的呢?主线程是由于runloop的循环,在beforeWait时,触发主线程的autoreleasepool的pop和push操作来释放的,而子线程并没有自动添加这些observer,那么如何释放的?探索跳转到我们线程执行任务的方法如下,使用了performSelector:系列的方法。OBJC_EXTERN void _objc_autor原创 2021-02-04 00:10:29 · 1334 阅读 · 1 评论 -
iOS - 关于对App跳转方法的hook
文章目录App的跳转方法hookApp的跳转方法实现app跳转有urlscheme以及universal Link(deep link) 跳转。url schemeapplication:openURL:options:是最新的方法,其他两个都废弃了- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id>原创 2020-12-04 17:57:04 · 1030 阅读 · 0 评论 -
iOS开发 - OCLint的自定义规则编写
文章目录通过Xcode显示Warning方案的选择简易Rule编写brew安装Aggregate 添加脚本规则编写通过Xcode显示Warning方案的选择前面已经说过如何添加自定义的规则rule以及Xcode调试:iOS开发 - OCLint自定义规则的编译与Xcode调试一般来说,我们都有这样的需求:想在写代码的时候,就能分析出代码问题,并及时进行修改。虽然OCLint能够分析单个文件,但没有Xcode插件,像 Analyze 这样的实时分析可能并不好实现,这里我们就选择编译一次然后在项目中提示原创 2020-07-20 17:40:52 · 1581 阅读 · 0 评论 -
iOS开发 - 创建自定义的brew仓库oclint-0.15
文章目录背景创建仓库brew create创建tap使用参考文档背景项目需要使用 oclint 0.15 版本,并添加一定的规则 rule ,这里oclint 0.13版本之后就没有再更新了,两个版本由于clang版本不同,不能共用,如果让每个人去拉包,然后替换,太繁琐了,这里创建一个brew库用于快速集成。在 Homebrew 的架构下,至少有 4 层概念Keg(酒桶):安装好的脚本、软件等;Cellar(酒窖):所有用 Homebrew 安装在本地的脚本、软件组成的集合;Formula(配原创 2020-07-16 13:00:42 · 547 阅读 · 0 评论 -
iOS开发 - NSHashTable与Runloop所造成的强引用问题
文章目录概述Runloop Observer的问题AutoreleasePool界面更新概述首先,我来描述一下这个问题,NSHashTable 是OC中用于弱引用对象的NSMutableSet 类型,在项目使用中,我们发现调用其 allObjects 方法会造成强引用关系,导致对象不会释放。具体情况如下:我们监听了主线程的 Runloop 并在 kCFRunLoopBeforeWaiting | kCFRunLoopExit 时触发,由于我们需要统计 UITableViewCell 的信息,所以我们将原创 2020-07-03 10:13:23 · 780 阅读 · 0 评论 -
iOS开发 - OCLint自定义规则的编译与Xcode调试
OCLint的编译基于版本 oclint version 0.15OCLint 需要自定义规则的话需要自己编译原创 2020-06-23 19:53:41 · 1949 阅读 · 0 评论 -
iOS开发-NSMapTable NSHashTable NSPointerArray的使用
文章目录NSMapTableNSDictionary的局限性NSMapTable优势配置参数 OptionsMemory OptionARC下MRC下Personality optionsUsage快捷生成自定义配置NSHashTableNSHashTable 优势配置参数UsageNSPointerArrayNSPointerArray 特性创建Usage对于工程中使用的弱引用集合的特性进行整理,有些点还是容易忘记NSMapTable NSHashTable NSPointerArray 是iOS中用原创 2020-06-18 15:18:16 · 1949 阅读 · 0 评论 -
iOS开发 - method swizzle方式的选择
文章目录1 method swizzle方式的选择1.1 错误的swizzle方式1.2 正确的swizzle方式1.3 案例1 method swizzle方式的选择1.1 错误的swizzle方式根据 right-way-to-swizzle 文章的阐述,当我们进行方法交换时,实质是交换了objc_method结构体中的IMP函数指针struct objc_method SEL method_name OBJC2_UNAVAILABLE; char *meth原创 2020-06-16 19:26:22 · 487 阅读 · 0 评论 -
RAC中宏的使用-预编译确定函数参数个数
RAC中宏的使用-预编译确定函数参数个数对于RAC框架中的宏定义,预编译期确认参数个数/** * Returns the number of arguments (up to twenty) provided to the macro. At * least one argument must be provided. * * Inspired by P99: http://p99.gforge.inria.fr */#define metamacro_argcount(...) \原创 2020-06-09 20:34:11 · 402 阅读 · 0 评论 -
iOS逆向学习-lldb断点调试
文章目录lldb断点调试breakpoint对于函数对于方法对于任何这个方法对于文件中这个方法遍历断点查看断点退出lldb模式断点开关断点删除指令查看执行代码expression执行代码创建变量堆栈信息查看btup downframe值固定查看frame variable 查看参数回滚指令 thread return内存断点监听值变化取地址断点命令targettarget stop-hooksto...原创 2019-06-14 00:22:59 · 1301 阅读 · 0 评论