安全键盘、类名混淆、YYKit

1.安全键盘方案
why?

大部分中文应用弹出的默认键盘是简体中文输入法键盘,在输入用户名和密码的时候,如果使用简体中文输入法键盘,输入英文字符和数字字符的用户名和密码时,会自动启动系统输入法自动更正提示,然后用户的输入记录会被缓存下来。

系统键盘缓存最方便拿到的就是利用系统输入法自动更正的字符串输入记录。 缓存文件的地址是:

/private/var/mobile/Library/Keyboard/dynamic-text.dat

导出该缓存文件,查看内容,欣喜的发现一切输入记录都是明文存储的。因为系统不会把所有的用户输入记录都当作密码等敏感信息来处理。 一般情况下,一个常规 iPhone 用户的 dynamic-text.dat 文件,高频率出现的字符串就是用户名和密码。

所以,一般银行客户端 app 输入密码时都不使用系统键盘,而使用自己定制的键盘,原因主要有 2 个:

1.避免第三方读取系统键盘缓存

2.防止屏幕录制 (自己定制的键盘按键不加按下效果)。

引入工程文件大小:两个文件 大小忽略不计

2.代码方法添加前缀自动混淆,防止静态分析

why?

众所周知的是大部分iOS代码一般不会做加密加固,因为iOS APP一般是通过AppStore发布的,而且苹果的系统难以攻破,但是随着越狱工具越来越成熟,AppStore里的应用也变得不安全,静态分析就是最基本的分析方法,通过 class-dump 导出所有的.h中方法名,方法名一般都有很强的可读性,动态分析结合这些方法名比较容易定位到需分析的代码段。

具体操作:https://www.jianshu.com/p/0d42e5c6361c

image.jpeg
image.jpeg

从上图可以看出.m中 属性和私有方法也直接被分析出来,方法名可读性强,逻辑能大致推敲一二。

引入工程文件大小:大小基本忽略不计。

可能出现的风险: 审核不通过(上线任务紧迫时不推荐使用,去年导出淘宝与京东.h方法名未混淆)

demo: 见↑具体操作连接

有兴趣的可以看看下面这些↓

逆向工程相关:https://www.jianshu.com/p/3e0127b75dce

逆向工程资料:链接: https://pan.baidu.com/s/1h7c7FR4pY9s_B6O3pqwURA 密码: 4zby

3.YYKit 是一组功能丰富的 iOS 组件。

iOS 保持界面流畅的技巧

  • YYModel — 高性能的 iOS JSON 模型框架。
  • YYCache — 高性能的 iOS 缓存框架。
  • YYImage — 功能强大的 iOS 图像框架。
  • YYWebImage — 高性能的 iOS 异步图像加载框架。
  • YYText — 功能强大的 iOS 富文本框架。
  • YYKeyboardManager — iOS 键盘监听管理工具。
  • YYDispatchQueuePool — iOS 全局并发队列管理工具。
  • YYAsyncLayer — iOS 异步绘制与显示的工具。
  • YYCategories — 功能丰富的 Category 类型工具库。
3.1 YYModel 运用runtime获取类结构体中Ivars,进行KVC操作,然后根据不同情况进行分别处理,提高数据容错率,避免数据问题造成的问题,高效Model转换。

讲解: 揭秘YYModel 的魔法(上) - 掘金 揭秘YYModel 的魔法(下) - 掘金

引入工程文件大小:5个文件。(建议引入)

3.2 YYCache (工程里已经有了)

讲解:【从 YYCache 源码 Get 到如何设计一个优秀的缓存】

3.3 YYImage

讲解:YYImage 设计思路,实现细节剖析- 掘金

引入工程文件大小:10个文件。(看需求考虑,系统控件一般能满足需求 )

3.3 YYWebImage

讲解:见⬆️git地址 (不推荐使用 SDWebImage 就行了)

3.4 YYText

讲解:YYText源码分析

引入工程文件大小:800K左右 (看需求引入,系统控件如果涉及重用与图文混排会造成很大程度的卡顿)

3.5 YYKeyboardManager

讲解: YYKeyboardManager -

引入工程文件大小:两个文件 (不推荐引入)


其他点击见⬆️git地址 可查看 由于偏向一些小工具类,可以看需求引入。

你可能感兴趣的:(安全键盘、类名混淆、YYKit)