在Objective- C中进行控制台po相应对象时,可以直接格式化输出回显到控制台中,但在Swift中直接po对象,输出的格式都有,但对应实际开发来说其实并不友好,所以我们就需要能更直观的格式打印 示例数据: {"stationIds":907,"deviationSource":2,"clientIds":"3,1","remark":"She","projectIds":"56,55","deviationType":"1","productLineIds":"1084","imgList":[{"id":2…

2022年4月11日 0条评论 301点热度 0人点赞 帮助教程 阅读全文

实际页面数据展示过程中,我们可能需要对UILabel的内边距进行调整,如UIButton的UIEdgeInsets设置一样,来达到对UILabel进行边框以及内容Padding的设置;   一般情况四种解决方法  使用UIButton来代替需要特殊显示的UILabel,这样解决不是很好  创建一个UIView作为UILabel的背景视图,在UIView进行边框以及UILabel与其内外边距的处理,这种解决方案也不是很好  使用YYKit框架,效果不错,但是不是很有必要  在UILabel的基础上自定义一个…

2022年4月2日 0条评论 491点热度 0人点赞 帮助教程 阅读全文

本次加载方式的展示分为Objective-C与Swift方式,两种的使用方式都是差不多的;如果有不对的地方还信指正。   先这么多,后续在添加

2022年3月31日 0条评论 301点热度 0人点赞 帮助教程 阅读全文

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

2021年6月4日 0条评论 1119点热度 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条评论 1233点热度 0人点赞 帮助教程 阅读全文

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

2021年6月4日 0条评论 926点热度 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条评论 1138点热度 0人点赞 帮助教程 阅读全文

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

2021年6月4日 0条评论 950点热度 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条评论 978点热度 0人点赞 帮助教程 阅读全文

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

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