ChenYilong / ChenYilong/iOSInterviewQuestions

iTeaTime(技术清谈)【-003期】【代号:模仿游戏之窃听风云】

Open
#126 0 comments 0 reactions 0 assignees View on GitHub
note
Dominant language
Swift
Stars
9.5k
Forks
2.8k
PR merge metrics
No merged PRs in 30d

Description

# [iTeaTime(技术清谈)]( https://github.com/ChenYilong/iOSInterviewQuestions/issues/127)【-003期】【代号:模仿游戏之窃听风云】

----------

![](http://ww4.sinaimg.cn/large/006tNc79ly1g4wvr2s23oj31sr0q242m.jpg)

----------

![](http://ww3.sinaimg.cn/large/006tNc79ly1g39f83p8i9j31hc0u0b13.jpg)

![](https://ws2.sinaimg.cn/large/006tNc79ly1g33rqh0fvvj30m80irdhc.jpg)

----------

本期特辑:iOS应用安全与逆向之攻防技能
本期出品人:微博@iOS程序犭袁
本期出题人(排名不分先后):

- molon-杭州
- Leo-磊子@微链客
- 鹅喵-便利蜂移动端
- SAGESSE-iOS-深圳
- 风扬-拍拍贷-SOi

注:题目难度五星为满分,以下题目从易到难依次排列。

----------

## 逆向类

![](http://ww2.sinaimg.cn/large/006tNc79ly1g3bcivd3zij315o0rs11o.jpg)

----------

1【问题】【逆向】为什么我们可以在应用编译好之后还能通过 hack 手段塞入一些额外逻辑,原理是什么?

//*one more thing*

【难度🌟】【出题人:molon-杭州】

----------

2【问题】【逆向】【C】【Objective-C】【ios】逆向C语言应用时,看到的堆栈信息有可读的函数名也有不可读的函数地址,为什么呢?那在逆向 Objective-C 应用时,为什么就能实现看到绝大多数可读函数名?
【难度🌟】【出题人:molon-杭州】

/*one more thing*/

----------

3【问题】【iOS】
针对iOS应用逆向的常规手段而言,
回答问题:

- 如何判断我们的 APP 被逆向软件注入,被 hook/hack 了?
- 如何加固防止别人破解我们的 APP ?
- 请给出加固的方法,并阐述其原理。

【难度🌟🌟】【出题人:Leo-磊子@微链客 和 molon-杭州】

----------

4【问题】【iOS】App 如何加壳,破壳?AppStore下载的包为何需要砸壳?
【难度🌟🌟】【出题人:SAGESSE-iOS-深圳 和 风扬-拍拍贷-SOi】

----------

5【问题】【iOS】常见的反调试手段有哪些?
【难度🌟🌟】【出题人:鹅喵-便利蜂移动端】

----------

6【问题】【iOS】【验证码】【逆向】某应用的注册验证码接口为了避免恶意滥用,对 POST 数据进行了加密,那倘若我们是攻击者,要通过逆向手段破解这种防护手段保证攻击的持续进行,应该从哪着手呢?
【难度🌟🌟】【出题人:molon-杭州】

/*one more thing*/

----------

7【问题】【iOS】【验证码】【逆向】如果遇到上述的攻击者,应用开发者还能有什么额外手段去增强防护呢?说到底,解决验证码接口攻击的最终并且一定有效的手段应该是什么呢?
【难度🌟🌟】【出题人:molon-杭州】

----------

8 【问题】【逆向】因为逆向的强大,应用在攻击者手中终归玩物,那网络应用开发者在与其对抗的过程中最大的优势是什么呢?
【难度🌟🌟🌟】【出题人:molon-杭州】

----------

9【问题】【汇编】arm64位系统里的通用寄存器有多少个,分别是干什么的?什么是状态寄存器?
【难度🌟🌟🌟】【出题人:风扬-拍拍贷-SOi】

----------

## 常规类

![](https://ws1.sinaimg.cn/large/006tNc79ly1g33rlxyjisj31hc0sb7cp.jpg)

----------

10【问题】【iOS】罗列出几个你能立马从崩溃堆栈中识别出的崩溃类型特征,给出调试方法,重点介绍如何调试 `BAD_ACCESS` 错误。
【难度🌟🌟】【出题人 微博@iOS程序犭袁】

----------

11【问题】【iOS】组件化中,拆库时遇到递归调用问题,如何解决。
【 难度🌟🌟🌟】

/*one more thing*/

----------

12【问题】【iOS】评价下以下代码:

```Objective-C
if (Thread.isMainThread) {
self.doSomething();
} else {
DispatchQueue.main.sync {
self.doSomething();
}
}

func doSomething() {
print("\(Thread.current.isMainThread)")
}
```
【 难度🌟🌟】【出题人 微博@iOS程序犭袁】

----------

13【问题】【iOS】使用 CoreText API绘制文字“我是中国人”,要求字体大小18、颜色:“我是”黑色,“中国人“红色。【 难度🌟🌟🌟】

//*one more thing*

----------

14【问题】【iOS】组件化拆分里边string的category拆分成几个类,以什么纬度拆的,除了string外其他category有几个类,分别是做什么的
【 难度🌟🌟🌟】【出题人 微博@iOS程序犭袁】

----------

15【问题】【iOS】CoreData中几个核心概念及关系阐述下,第三方库 MagicRecord 的读写操作是在什么线程中执行的?为何有人如此讨厌使用CoreData,CoreData适合什么样的项目?CoreData如何进行数据库更新操作?【 难度🌟🌟🌟】【出题人 微博@iOS程序犭袁】

----------

Posted by [微博@iOS程序犭袁](http://weibo.com/luohanchenyilong/)
原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | [Creative Commons BY-NC-ND 3.0](http://creativecommons.org/licenses/by-nc-nd/3.0/deed.zh)

----------


One more thing...



【非礼勿视】以下为彩蛋部分,建议28岁以上男性观看

----------

![](http://ww4.sinaimg.cn/large/006tNc79ly1g39hd5w01mj31e80u0qby.jpg)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.