0%

2022秋招 安全工程师(安卓方向)面经

认清形势,放弃幻想

末流985本,计算机科学与技术专业,无国奖,无实习经历。
15年开始搞安卓逆向,目前技术一般。

8.16第一次投简历,8.18第一次面试,9.10第一个意向书,10.15第一个正式offer。

PS:没有实习经历还是比较吃亏的,建议大三下学期春招找个实习,然后秋招投提前批。

面试及offer情况

阿里:安全工程师 (已offer)
腾讯:安全技术-IEG-客户端安全 (GM面挂)
字节:客户端软件安全工程师-安全与风控 (已offer)
美团:安全工程师 (已offer)
拼多多:安全工程师 (已offer)
网易互娱:逆向分析工程师 (已offer)
猿辅导:Android逆向开发工程师 (被毁意向)
360:信息安全工程师-Android方向 (二面挂)

一面、二面

自我介绍(重要)
项目经历(重要)
实习经历(重要)
项目最大的难点
网络协议逆向思路
有没有开发相关的项目
有没有大厂app逆向经验
有没有研究过iOS逆向
说几个安卓漏洞

安卓相关(重要)

Frida、Xposed原理
inline hook、got hook、exception hook原理
ARM汇编:寄存器,调用约定(包括其他CPU架构),跳转指令
DEX结构、ELF结构、反编译过程
Java反射、静态代理和动态代理、类加载机制(双亲委派)
反调试和反反调试、ollvm(反混淆)
加固与脱壳(整体加固、指令抽取、指令转换/vmp、java2c)
Unicorn框架原理、VirtualApp框架原理
安卓虚拟机(Davilk和ART)、JIT和AOT
HTTPS证书校验(单向、双向校验)、中间人攻击
对常见算法的了解(编码、哈希、对称、非对称)
对设备指纹的了解、对安卓源码的了解
安卓系统安全机制(权限控制、签名校验)、so加载流程(linker)
安卓系统启动流程、Zygote启动流程、APP启动流程
Activity和Service的生命周期、Binder通信机制

计算机基础

操作系统:进程和线程(安卓如何获取)、进程调度策略、进程的状态及转换、虚拟地址和物理地址
计网:OSI七层模型(协议举例)、TCP和UDP、DNS、HTTPS过程、Get和Post区别
C++:指针和引用、变量的区别(static、全局局部)、编译过程(哪个阶段处理include)、动态链接和静态链接、const char*, char const*, char* const的区别
Java:面向对象语言三大特征、多态的体现(与C++模板类的区别)、内部类和静态内部类、HashMap和ConcurrentHashMap、快速失败和安全失败、GC机制、多线程的实现方式、线程池、synchronized

算法题

最小栈、计数排序、反转链表、螺旋矩阵、后缀表达式、最大正方形、旋转数组找最小值、两个栈实现队列、求根节点到叶节点数字之和

三面、HR面

自我介绍
职业规划
实习/项目相关
升学打算及原因
能不能提前实习
前几轮面试体验如何
对其他安全领域的了解
为什么选择逆向这一领域
最有技术深度的文章
遇到过的最大挑战
最有成就感的事
三个词形容自己的优/缺点
身边的人怎么评价你
家庭情况/感情生活
平时的兴趣爱好
最近看了什么书
其他公司投递情况及进度
对工作的要求(城市、岗位职责、薪资、时间等)

推荐阅读

校招攻略DLC
程序算法与人生选择
起落落落起的春招找实习之旅
收集了一些移动安全面试的问题 欢迎补充
SecYouth/sec-jobs
cckenny/2020_autumn_mobile_security_interview