追风之影

何以追风,以影追风,风过之处,在此留痕。

iOS进阶之逆向工程(越狱、砸壳、反编译)

| 评论

背景

这篇文章只是我的一个记录,记录我是如何一步一步的,从越狱一部手机到反编译一个APP,故不作为教程文章,只为自己以后方便复现,文章内容大部分从别人文章中采集整合,如若使用,仅供参考。

第一步、越狱

关于越狱看这篇文章足以,这里简单对这篇文章做下记录:
1、用苹果手机自带的Safari浏览器打开app.ignition.fun
2、进去后点击中间的按钮
3、点击Jailbreaks
4、点击Jailbreaks进去后拉倒最后点击Pwn20wnd
5、点击GET然后点安装
6、去设置信任证书,如果无法信息,卸载重新下载
7、打开刚才安装的unc0ver APP
8、点击「Jailbreak」按钮,越狱过程可能会重启三次,每次重启后再打开unc0ver APP点击Jailbreak按钮。
9、出现Cydia后代表越狱成功
注:如果越狱过程中,卡住OTA问题上,请到设置->存储管理里删除已经下载好的系统文件,如果删除了还是不行的话,请自行谷歌或者百度, 我因为有部专门测试手机,我选择了直接重置手机。懒得去找其他办法了。

第二步、砸壳

这里选择一键砸壳工具frida-ios-dump

frida-ios-dump下载地址

一行代码搞定UITextField的输入格式限制

| 评论

ZASTextFieldFormat开发背景

在开发的过程中,每次写到UITextField,就不由得心里不爽,因为要考虑到各种输入限制,实现代理、通知等一些麻烦繁琐的东西,就心中不爽,所以才写了这个ZASTextFieldFormat简单的轮子,先暂时用着,等后期在慢慢优化完善。

ZASTextFieldFormat 简介

一行代码,设置UITextField的输入格式限制,比如手机号、身份证号、银行卡号格式以及输入字符类型个数的限制等;

接口说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

/**
 * ZASTextFieldFormatDelegate代理
 *
 */
@property (nonatomic, assign) id<ZASTextFieldFormatDelegate> zasDelegate;

/**
 * 设置浮点类型,只允许输入两位小数的浮点类型(default=NO)
 * 
 */
@property (nonatomic, assign) Boolean isFloat;

/**
 * 设置正则匹配模式(如果设置正则模式,则忽略其他格式限制)
 *
 */
@property (nonatomic, copy) NSString * pattern;

/**
 * 设置UITextFiled格式控制的入口 (注:这个入口必须被调用)
 * format=nil或者""则不限制格式, charactersInString=nil或者""则不限制字符, maxLimit=0则不限制个数
 *
 * 示例: 以手机号为例
 * @param format              格式,eg: ### #### ####
 * @param charactersInString  支持输入的字符,eg: 0123456789
 * @param maxLimit            最大输入限制个数,eg: 11
 * 结果输入:159 1234 5678
 */
 - (void)textFieldWithFormat:(NSString *)format charactersInString:(NSString *)charactersInString maxLimit:(NSInteger)maxLimit;

具体使用

使原有UITextField继承自ZASTextFieldFormat,然后调用如何接口即可;

1
[_tfPhone textFieldWithFormat:@"### #### ####" charactersInString:@"0123456789" maxLimit:11];

参考Demo

点击此处获取Demo

自动生成混淆文件(swift版)

| 评论

起因

你们都知道,AppStore审核机制,多款类似的APP,会被4.3拒绝,至于如何规避4.3,这里我只写如何给项目添加混淆代码(又叫垃圾代码),当然只添加垃圾代码,应该是规避不了4.3的,但至少可以迷惑机审,加大通过机审的概率,至于其他方法,不予多说。 我这里使用python脚本,自动生成swift垃圾文件代码,文件名随机,每个文件中含有少量变量,方法等。

实现原理

实现原理很简单,就是创建文件,向文件中,添加swift语言的字符串即可。

实现代码

获取代码Demo文件点击此处 以下为实现代码

工具篇之自定义检查版本更新提示弹框

| 评论

引言

对于一些app的更新弹框,使用系统自带的Alert弹框,文字排版总是对不齐,没有美观,像我这样有点强迫症的,看到都别扭,更别说去点击更新了,于是乎,就自己动手做了一个,不管怎么样,看着舒服多了。

此处不废话,看效果

使用

由于这个工具开发过于简单,我这里就不讲述如何开发实现的了,想要看具体实现的,我已在github上公开源码(ZASUpdateAlert),可自行查看去吐槽。

《三体》之读后随记

| 评论

《三体》启蒙

  对于宇宙,我始终有一种感触,却无法形容这种感触,它是那么的神秘莫测,那么的不可思议以至于我就算开发大脑的全部,也无法解读它。我喜欢宇宙,喜欢天体,喜欢那寂静无限深渊的星空,或许我是一个宇宙科幻迷,宇宙科幻迷当然要看看《三体》,看它是如何的来打开那灵魂深处的思想禁锢。

《三体》微感

   大约3977页,耗时58小时3分,我读完了《三体》的全部三部,页数是微信读书上面的页面,读纸质书,有时候会犯困也不那么方便,我喜欢电子书的方便快捷。读完三体后,让我脑洞大开,宇宙中真是无奇不有呀,什么三体人,什么水滴等等,都让我眼界大开,思想得到了扩展,心灵得到了升华。

第一部,涉及的宇宙比较少,可能没有多少引起我的注意,或许读的也间隔比较久,印象比较深的就是汪淼的那个时间,以及叶文洁与红岸基地,还有三体发射到地球的两个智子(三体人用质子,展开多维建造成的超级超级超级计算机);

第二部,地球人制定的面壁计划无疑是可笑而又无力的表现,罗辑也只是被绑架的救世主,却也在人们的地位起起伏伏,在这一部中,最震撼的,最有视觉冲击力的,应该就是那水滴攻击舰队的壮观场面了,我想拍成电影的话,如果能还原大刘的90%,应该就足以体现那旷世的震撼,这部中,让人深思的应该就是黑暗森林法则,让人感觉自己是多么的渺小,地球是多么的渺小,太阳系又是多么渺小,对于高级文明,摧毁太阳系也只需要发射一枚光粒武器而已。

Xcode修改版权Copyright、统一配置类前缀

| 评论

修改类的Copyright、类前缀

对于已经在项目中的文件,想要修改版权信息,使用全局替换就可以了,而对于新文件来说,想让Xcode帮你自动填充版权方,也是很方便的,之前都是傻瓜式的替换,现在发现了新大陆,就来这里记录下吧,具体操作流程如下图:
版权、前缀

顺便加点料,对于有些项目,需要为每个类加一个前缀,也是可以按照这个流程来做的,设置上图中的Class prefix就可以了,这样Xcode会在新建的类的时候自动填充这个前缀了。