前言 本文会介绍一个自己写的工具,能够把第三方iOS应用转成动态库,并加载到自己的App中,文章最后会以支付宝为例,展示如何调用其中的C函数和OC方法。 工具开源地址: https://github.com/tobefuturer/app2dylib https://gitea.yiem.net/BangZhuJiaoCheng/app2dylib 有什么用 为什么要把第三方应用转成动态库呢?与一般的注入动态库+重签名打包的手段有什么不一样呢? 好处主要有下面几点: 可以直接调用别人的算法逆向分析别人的应用时,可能…

2021年6月4日 0条评论 276点热度 0人点赞 帮助教程 阅读全文

大型app应对苹果官方代码段大小限制的小伎俩… 背景 苹果官方文档 对二进制 __TEXT 段大小有限制:   代码实在瘦不下去怎么办?   解决方案 利用 rename_section 过审核,在Xcode中向 “Other Linker Flags” 中添加 -Wl,-rename_section,__TEXT,__cstring,__RODATA,__cstring -Wl,-rename_section,__TEXT,__const,__RODATA,__const -Wl,-renam…

2021年6月4日 0条评论 284点热度 0人点赞 帮助教程 阅读全文

为了能够第一时间发现程序问题,应用程序需要实现自己的崩溃日志收集服务,成熟的开源项目很多,如 KSCrash,plcrashreporter,CrashKit 等。追求方便省心,对于保密性要求不高的程序来说,也可以选择各种一条龙Crash统计产品,如 Crashlytics,Hockeyapp ,友盟,Bugly 等等。 是否集成越多的Crash日志收集服务就越保险? 自己收集的Crash日志和系统生成的Crash日志有分歧,应该相信谁? 为什么有大量Crash日志显示崩在main函数里,但函数栈中却没有一行自己的…

2021年6月4日 0条评论 154点热度 0人点赞 帮助教程 阅读全文

从app store下载的app和app extension是加过密的,可以通过otool查看: $ otool -l binary_name | grep crypt cryptoff 16384 cryptsize 294912 cryptid 1 iPhone applications的解密办法 dumpdecrypted 是个出色的app脱壳开源工具,它的原理是:将应用程序运行起来(iOS系统会先解密程序再启动),然后将内存中的解密结果dump写入文件中,得到一个新的可执行程序。 iPhone app ex…

2021年6月4日 0条评论 213点热度 0人点赞 帮助教程 阅读全文

一个编译成功的可执行程序,其中已初始化的字符串都是完整可见的。 针对于iOS的Mach-O二进制通常可获得以下几种字符串信息: 资源文件名 可见的函数符号名 SQL语句 format 通知名 对称加密算法的key 攻击者如何利用字符串 资源文件名通常用来快速定位逆向分析的入口点。 想要知道判断购买金币成功与否的代码位置?只要确定购买成功时播放的音频文件名字或者背景图名字就可以顺藤摸瓜了。 kLoginSuccessNotification类似这种通知名称格外炸眼,利用Cycript发个此通知试试,也许会有什么意外收…

2021年6月4日 0条评论 226点热度 0人点赞 帮助教程 阅读全文

攻易防难,唯有缜密、多层的防护网络才能可靠的保护我们iOS应用程序的安全。那么,一个完善的iOS应用安全防护框架都要写哪些东西呢? 首先,先梳理一下常见的逆向及攻击工具。 iOS应用逆向常用工具 Reveal Cycript Class-dump Keychain-Dumper gdb iNalyzer introspy Fishhook removePIE IDA pro or Hopper snoop-it iDB  Charles SSL Kill Switch 裸奔app的安全隐患 一部越狱的iOS设备,外…

2021年6月4日 0条评论 251点热度 0人点赞 帮助教程 阅读全文

当单继承不够用,很难为问题域建模时,我们通常都会直接想到多继承。多继承是从多余一个直接基类派生类的能力,可以更加直接地为应用程序建模。但是Objective-C不支持多继承,由于消息机制名字查找发生在运行时而非编译时,很难解决多个基类可能导致的二义性问题。 不过其实 Objective-C 也无需支持多继承,我们可以找到如下几种间接实现多继承目的的方法: 消息转发 delegate和protocol 类别 消息转发 当向someObject发送某消息,但runtime system在当前类和父类中都找不到对应方法的…

2021年6月4日 0条评论 203点热度 0人点赞 帮助教程 阅读全文

前言 符号表历来是逆向工程中的“必争之地”,而iOS应用在上线前都会裁去符号表,以避免被逆向分析。 本文会介绍一个自己写的工具,用于恢复iOS应用的符号表。 直接看效果,支付宝恢复符号表后的样子: 文章有点长,请耐心看到最后,亮点在最后。   为什么要恢复符号表 逆向工程中,调试器的动态分析是必不可少的,而 Xcode + lldb 确实是非常好的调试利器, 比如我们在Xcode里可以很方便的查看调用堆栈,如上面那张图可以很清晰的看到支付宝登录的RPC调用过程。 实际上,如果我们不恢复符号表的话,你看到的…

2021年6月2日 0条评论 286点热度 0人点赞 帮助教程 阅读全文

支持Windows、MacOS、Linux、路由器、iOS、Pad OS、Android 支持多数代理软件:BifrostV、Clash、 ClashX、 ElectronSSR、 Kitsunebi 、KoolClash、Loon、Merlin、 Quantumult、 QuantumultX、 Shadowrocket、 Shadowsocks 、ShadowsocksD 、ShadowsocksR、Surfboard、 Surge、 V2RayNG等等 以下至列出部分套餐,更多信息请登录查看 直达链接:VPN…

2020年11月15日 0条评论 12510点热度 45人点赞 帮助教程 阅读全文

  App Store 不仅安全可靠、值得信赖,是用户探索和下载 app 的好去处,对开发者来说也蕴藏着巨大的商机。我们对指南进行了如下更改和澄清,以便为即将发布的 OS 版本中的新功能提供支持,更好地保护用户,并帮助您的 app 尽可能顺利地通过审核流程。 更新部分如下所列。如需了解完整详情,请参阅 App Store 审核指南 (英文)。 更改 2.5.16:轻 App、小组件、扩展和通知应当与 app 的内容和功能相关。此外,所有的轻 App 特性和功能都必须包含在主 app 二进制文件中。轻 Ap…

2020年9月24日 0条评论 867点热度 0人点赞 帮助教程 阅读全文
12