腾讯、美团、阿里控股移动安全二进制实习面经:挑衅与收获
目次腾讯、美团、阿里控股移动安全二进制实习面经:挑衅与收获
一、前言
二、面试过程及问题剖析
(一)IEG PC 游戏安全一面
(二)IEG PC 游戏安全二面
(三)IEG 手游安全面经 - 一面
(四)应用宝一面
(五)TEG 安全一面
(六)TEG 安全二面
(七)美团安全一面
(八)美团安全二面
(九)美团一面(另一场)
(十)美团二面
(十)美团二面
(十一)阿里控股一面
(十二)阿里控股二面
三、总结
一、前言
作为一名 25 届双非硕士,在移动安全领域的求职过程中充满了挑衅与机会。本文将具体分享我在腾讯、美团、阿里控股等公司的实习面试履历,包罗面试问题、回答思路以及个人的感悟和收获,希望能为其他求职者提供有代价的参考。
二、面试过程及问题剖析
(一)IEG PC 游戏安全一面
[*]arm 汇编知识:
[*]答案:了解 ARM 汇编指令集,包罗常见的指令范例、寄存器的使用、函数调用等。可以举例分析一些常用的 ARM 汇编指令,如 MOV、ADD、SUB 等。
[*]代码肴杂:
[*]答案:代码肴杂是一种通过改变代码的布局和逻辑,使其难以明白和分析的技术。常见的代码肴杂方法包罗重命名变量和函数、插入无效代码、控制流平坦化等。可以介绍一些代码肴杂的工具和技术,以及怎样应对代码肴杂。
[*]反调试:
[*]答案:反调试是一种防止软件被调试的技术。常见的反调试方法包罗检测调试器的存在、修改内存或寄存器的值以干扰调试、使用加密或肴杂技术等。可以介绍一些反调试的工具和技术,以及怎样绕过反调试。
[*]hook 原理:
[*]答案:Hook 是一种在运行时修改函数调用的技术。它通过将目的函数的前几条指令更换为跳转指令,跳转到本身的 hook 函数,从而实现对目的函数的拦截和控制。可以介绍一些 Hook 的工具和技术,以及 Hook 的应用场景。
[*]frida 原理:
[*]答案:Frida 是一种动态分析工具,它通过在运行时注入 JavaScript 代码来实现对应用程序的 hook。Frida 的原理是利用了操作系统的动态链接机制,将本身的代码注入到目的进程中,从而实现对目的进程的控制和分析。可以介绍一些 Frida 的使用方法和应用场景。
[*]IDA 常用快捷键,常见插件的原理:
[*]答案:IDA 是一款强大的反汇编工具,它有很多常用的快捷键和插件。可以介绍一些 IDA 的常用快捷键,如 F5(反编译)、G(跳转到指定地址)等。对于常见插件的原理,可以介绍一些插件的功能和实现方式,如 Hex-Rays Decompiler(反编译插件)、IDA Python(脚本插件)等。
[*]IDA Python 的知识:
[*]答案:IDA Python 是 IDA 支持的一种脚本语言,可以用于自动化分析和扩展 IDA 的功能。可以介绍一些 IDA Python 的基本语法和常用函数,如读取内存、修改指令、查找函数等。
[*]然后给了一道 x86 的题目:
[*]答案:根据题目要求举行分析和解答。如果是关于 x86 汇编的问题,可以团结 x86 汇编指令集的特点举行回答。
(二)IEG PC 游戏安全二面
[*]谈天,windows 调试器原理,代码肴杂:
[*]答案:Windows 调试器的原理是通过控制目的进程的实验,获取其内存和寄存器状态,从而实现对程序的调试。常见的 Windows 调试器有 Visual Studio Debugger、WinDbg 等。对于代码肴杂,可以参考一面的回答。
[*]两个面试官主要就是闲聊没啥技术问题,面完过了两天挂了:
[*]反思:虽然是闲聊,但也可能是在观察沟通本领、团队合作本领等软技能。在面试中要保持积极的态度,展示本身的综合素质。
(三)IEG 手游安全面经 - 一面
[*]自我介绍:
[*]答案:简要介绍本身的教诲背景、项目经验和技能特长。
[*]ARM 的汇编指令集 实现跳转之类的必要用到哪些指令,回答了 B BL 然后问这两的区别:
[*]答案:ARM 汇编指令会合,实现跳转的指令有 B(Branch)和 BL(Branch with Link)。B 指令是简单的跳转指令,只举行地址跳转;BL 指令是带链接的跳转指令,在跳转的同时将下一条指令的地址生存到链接寄存器(LR)中,以便后续返回。
[*]问怎么实现注入,了解 ptrace 不,ptrace 能实现注入不:
[*]答案:实现注入的方法有很多种,如代码注入、DLL 注入等。ptrace 是一种用于跟踪和控制进程的系统调用,但它通常不能直接实现注入。可以介绍一些其他的注入方法,如使用 Hook 技术、修改内存等。
[*]elf 的文件布局:
[*]答案:ELF(Executable and Linkable Format)是一种可实验文件和链接格式,它通常用于 Linux 系统。ELF 文件布局包罗文件头、节头表、程序头表等。可以介绍一些 ELF 文件的主要组成部分和其作用。
[*]然后 frida hook 相关知识,断点的范例,具体怎么实现的,区别是什么:
[*]答案:Frida hook 可以通过在运行时注入 JavaScript 代码来实现对应用程序的 hook。Frida 中的断点范例包罗软件断点和硬件断点。软件断点是通过修改内存中的指令为断点指令来实现的,硬件断点是通过设置处理器的调试寄存器来实现的。软件断点的优点是实现简单,缺点是轻易被检测到;硬件断点的优点是难以被检测到,缺点是实现复杂。
[*]怎么定位反调试位置,如果有反调试怎么绕过,如果找不到相关的反调试函数怎么办,怎么去分析:
[*]答案:定位反调试位置可以通过静态分析和动态分析相团结的方法。静态分析可以通过查察反汇编代码、查找特定的函数调用等方式来定位反调试代码;动态分析可以通过使用调试器、跟踪程序实验等方式来定位反调试代码。如果有反调试,可以尝试绕过反调试,如修改内存中的反调试代码、使用反反调试工具等。如果找不到相关的反调试函数,可以通过分析程序的行为、查找可疑的代码片段等方式来定位反调试代码。
[*]有没有做过驱动:
[*]答案:根据现实情况回答,如果做过驱动,可以介绍一下驱动的开发经验和遇到的问题;如果没有做过驱动,可以表达对驱动开发的兴趣和学习的刻意。
[*]用户层读写内存和内核层读写内存的区别,然后用户层怎么检测有没有被读写过内存,内核层有没有办法检测:
[*]答案:用户层读写内存和内核层读写内存的区别主要在于权限和实现方式。用户层读写内存必要通过系统调用或库函数来实现,权限较低;内核层读写内存可以直接访问物理内存,权限较高。用户层可以通过一些内存检测工具(如 Valgrind)来检测有没有被读写过内存;内核层可以通过一些内核调试工具(如 Kprobes)来检测有没有被读写过内存。
[*]然后有没有遇到过代码肴杂,我说 ollvm 花指令,然后回答了这两的原理,以及怎么去肴杂,这部分问的比力细致。还问了控制流平坦化怎么区分真实快:
[*]答案:代码肴杂是一种通过改变代码的布局和逻辑,使其难以明白和分析的技术。OLLVM(Obfuscator-LLVM)是一种基于 LLVM 的代码肴杂工具,它通过对代码举行控制流平坦化、虚假控制流插入、指令更换等方式来增加代码的分析难度。花指令是一种通过插入一些无效的指令来干扰反汇编的技术。对于代码肴杂,可以使用反肴杂工具、静态分析和动态分析相团结等方法来举行分析。对于控制流平坦化,可以通过分析程序的控制流图、查找关键的跳转指令等方式来区分真实的代码块。
[*]F5 原理(没答上来,回答了怎么干扰 F5):
[*]答案:F5 是 IDA 中的一个功能,它可以将汇编代码反编译为高级语言代码。F5 的原理是通过分析汇编代码的布局和逻辑,生成对应的高级语言代码。如果要干扰 F5,可以通过修改汇编代码的布局、插入无效的指令等方式来使 F5 生成错误的高级语言代码。
[*]hook 的范例,具体怎么实现,还涉及 so 加载流程:
[*]答案:Hook 的范例有很多种,如函数 Hook、系统调用 Hook、消息 Hook 等。具体实现方式可以通过修改内存中的指令、使用 Hook 框架等方式来实现。对于 so 加载流程,可以介绍一下动态链接的原理和 so 文件的加载过程。
[*]然后就是游戏逆向相关的,由于我写了相关项目,问了 UE4 怎么逆向,unity 怎么逆向,怎么找坐标,坐标怎么显示到屏幕:
[*]答案:游戏逆向是一个复杂的领域,不同的游戏引擎有不同的逆向方法。对于 UE4 和 Unity,可以通过分析游戏的二进制文件、使用反编译工具、跟踪游戏的实验等方式来举行逆向。找坐标可以通过分析游戏的内存、使用调试器等方式来实现。坐标显示到屏幕可以通过修改游戏的渲染代码、使用 Hook 技术等方式来实现。
[*]还问了壳的范例,然后怎么脱,有没有分析过 vmp,然后就是一些细节的问询:
[*]答案:壳的范例有很多种,如压缩壳、加密壳、假造机壳等。脱壳的方法也有很多种,如静态脱壳、动态脱壳、内存转储等。对于 VMP(Virtual Machine Protection),可以通过分析其假造机的指令集、使用反假造机工具等方式来举行分析。
(四)应用宝一面
[*]被同学推到开发的岗位,一点不懂,面试官也知道我不懂,没为难我,聊了下天,面完秒挂:
[*]反思:在面试前要对所应聘的岗位有肯定的了解,制止出现完全不了解的情况。如果被推荐到不熟悉的岗位,可以提前学习一些相关知识,以便在面试中能够有肯定的交流。
(五)TEG 安全一面
[*]VMP 表明器定位流程:
[*]答案:VMP(Virtual Machine Protection)是一种假造机掩护技术,它通过将程序的代码转换为假造机指令,然后在假造机中实验这些指令,从而增加程序的分析难度。定位 VMP 表明器的流程可以通过静态分析和动态分析相团结的方法。静态分析可以通过查找特定的函数调用、分析程序的控制流图等方式来定位 VMP 表明器的入口点;动态分析可以通过使用调试器、跟踪程序的实验等方式来定位 VMP 表明器的实验过程。
[*]怎么实现的 trace:
[*]答案:Trace 是一种跟踪程序实验的技术,它可以记载程序的实验路径、函数调用等信息。实现 trace 的方法有很多种,如使用调试器、插入日记代码、使用 Hook 技术等。可以介绍一些具体的实现方法和其应用场景。
[*]so 注入方式:
[*]答案:so 注入是一种将动态链接库(so 文件)注入到目的进程中的技术。常见的 so 注入方式有代码注入、DLL 注入、LD_PRELOAD 环境变量等。可以介绍一些 so 注入的方法和其原理。
[*]二代壳怎么回填:
[*]答案:二代壳是一种更复杂的壳技术,它通常接纳了更高级的加密和肴杂技术。回填二代壳的方法比力复杂,必要对壳的布局和原理有深入的了解。一般来说,可以通过分析壳的代码、查找关键的跳转指令等方式来找到回填的入口点,然后举行回填操作。
[*]协议分析的流程:
[*]答案:协议分析是一种通过分析网络协议的数据包来了解协议的布局和功能的技术。协议分析的流程可以包罗以下几个步骤:捕获数据包、分析数据包的布局、辨认协议的范例、剖析协议的内容、提取有效的信息等。可以介绍一些协议分析的工具和技术,以及其应用场景。
(六)TEG 安全二面
[*]爬虫遇到的问题:
[*]答案:在举行爬虫开发时,可能会遇到一些问题,如反爬虫机制、IP 封锁、验证码辨认等。可以介绍一些办理这些问题的方法,如使用代理 IP、模拟用户行为、使用验证码辨认工具等。
[*]团体的分析流程,怎么对抗的:
[*]答案:团体的分析流程可以根据具体的问题和需求来确定。一般来说,可以包罗需求分析、数据采集、数据处理、数据分析、效果展示等步骤。在对抗方面,可以接纳一些技术本领,如加密、肴杂、反调试、反爬虫等,来掩护本身的程序和数据。
[*]指纹对抗:
[*]答案:指纹对抗是一种通过修改装备的指纹信息来制止被辨认和跟踪的技术。常见的指纹对抗方法有修改装备的硬件信息、使用假造机、使用代理 IP 等。可以介绍一些指纹对抗的工具和技术,以及其应用场景。
[*]ollvm:
[*]答案:参考前面的回答。
[*]二面莫名其妙,没问啥具体的技术问题,面完第二天挂了,难过:
[*]反思:虽然二面没有问具体的技术问题,但也可能是在观察其他方面的本领,如沟通本领、团队合作本领等。在面试中要保持积极的态度,展示本身的综合素质。
(七)美团安全一面
[*]一道算法:
[*]答案:根据题目要求举行算法设计和实现。可以介绍一些常见的算法头脑和数据布局,如贪心算法、动态规划、栈、队列等。
[*]具体 app 分析流程 很细 遇到过什么对抗:
[*]答案:具体的 app 分析流程可以包罗以下几个步骤:解包 app、分析清单文件、反编译代码、静态分析、动态分析等。在分析过程中,可能会遇到一些对抗步伐,如代码肴杂、反调试、加密等。可以介绍一些应对这些对抗步伐的方法。
[*]一些汇编的知识:
[*]答案:参考前面的回答。
[*]加密算法的种类,AES 算法:
[*]答案:加密算法的种类有很多种,如对称加密算法、非对称加密算法、哈希算法等。AES 算法是一种对称加密算法,它具有高效、安全的特点。可以介绍一下 AES 算法的原理、加密过程和解密过程。
[*]花指令怎么辨认边界的:
[*]答案:花指令是一种通过插入一些无效的指令来干扰反汇编的技术。辨认花指令的边界可以通过分析指令的布局、查找关键的跳转指令等方式来实现。可以介绍一些辨认花指令边界的工具和技术。
(八)美团安全二面
[*]算法:
[*]答案:根据题目要求举行算法设计和实现。
[*]给你个 app,怎么去分析:
[*]答案:参考前面的回答。
[*]代码肴杂怎么去除:
[*]答案:代码肴杂是一种通过改变代码的布局和逻辑,使其难以明白和分析的技术。去除代码肴杂的方法有很多种,如使用反肴杂工具、静态分析和动态分析相团结等。可以介绍一些具体的去除代码肴杂的方法。
[*]专利介绍:
[*]答案:如果有相关的专利,可以介绍一下专利的内容、创新点和应用场景。如果没有专利,可以表达对专利的认识和明白,以及对创新的追求。
[*]实习履历的提问:
[*]答案:根据本身的实习履历,回答面试官的问题。可以介绍一下实习的公司、岗位、主要工作内容、收获和领会等。
(九)美团一面(另一场)
[*]针对我研究生的方向,脱壳沙箱怎么实现的,怎么对 VMP 实现分析的,怎么注入 so 的:
[*]答案:脱壳沙箱是一种用于分析加壳程序的工具,它可以在不运行程序的情况下,对程序的壳举行分析和脱壳。对 VMP 实现分析可以通过分析其假造机的指令集、使用反假造机工具等方式来举行。注入 so 的方法可以参考前面的回答。
[*]系统的启动流程:
[*]答案:系统的启动流程可以包罗以下几个步骤:BIOS 自检、加载引导程序、加载操作系统内核、初始化系统环境等。可以介绍一下每个步骤的具体内容和作用。
[*]常见汇编指令 寄存器的用法,脱壳 trace 的实现 unidbg 断点功能:
[*]答案:参考前面的回答。
[*]ollvm:
[*]答案:参考前面的回答。
[*]花指令:
[*]答案:参考前面的回答。
[*]美团 app 指纹使用了哪些数据:
[*]答案:美团 app 的指纹可能使用了装备的硬件信息、软件信息、网络信息等。具体的数据可以通过分析美团 app 的代码、使用抓包工具等方式来确定。
[*]怎么伪造新机:
[*]答案:伪造新机可以通过修改装备的指纹信息来实现。常见的方法有修改装备的硬件信息、使用假造机、使用代理 IP 等。可以介绍一些具体的伪造新机的方法和其风险。
(十)美团二面
[*]爬虫对抗,协议攻击对抗:
[*]答案:在爬虫对抗方面,可以接纳限制访问频率、检测异常请求模式、使用验证码、IP 封锁等步伐。对于协议攻击对抗,可以加强协议的安全性设计,如加密通信、验证请求泉源、防止篡改等。同时,持续监测网络流量,及时发现异常行为并接纳相应步伐。
[*]研究方向 脱壳和恶意软件检测,怎么检测的,基于什么:
[*]答案:对于脱壳,可以通过静态分析和动态分析相团结的方法。静态分析可以检查文件布局、辨认壳的特征等;动态分析可以在运行时监测程序行为,如内存变化、系统调用等,以确定是否存在壳。恶意软件检测可以基于特征码匹配、行为分析、机器学习等方法。特征码匹配是通过与已知恶意软件的特征举行对比;行为分析则关注程序的运行行为是否异常,如修改系统关键文件、建立异常网络毗连等;机器学习可以通过训练模型来辨认恶意软件的特征模式。
[*]四大组件,activity 和 service 的区别:
[*]答案:Android 的四大组件包罗 Activity、Service、BroadcastReceiver 和 ContentProvider。Activity 是用户界面的组成部分,负责与用户交互;Service 是在后台运行的组件,用于实验长时间运行的任务,不必要用户界面。Activity 通常是可见的,与用户有直接交互;Service 可以在后台冷静运行,纵然应用在前台不可见也能继续工作。Activity 有生命周期管理,会随着用户操作而暂停、规复或烧毁;Service 的生命周期相对较为稳定,除非被明白制止,否则会不停运行。
[*]java 层的 hook 原理(没答上来,只知道 C 的 hook):
[*]答案:在 Java 层,hook 通常可以通过 Java 反射机制大概动态代理来实现。反射机制可以在运行时获取类的信息并修改其行为。动态代理则是通过创建一个代理对象来拦截对目的对象的方法调用,从而实现对方法的加强或修改。
[*]实习经验中,移动风控策略怎么优化的。:
[*]答案:可以从多个方面优化移动风控策略。例如,加强数据收集和分析,进步对异常行为的辨认本领;优化风险评估模型,更正确地判断风险品级;建立实时监测系统,及时发现风险并接纳应对步伐;加强与其他安全系统的协作,形玉成方位的风控体系;对用户举行安全教诲,进步用户的安全意识等。
[*]常见的灰黑产:
[*]答案:常见的灰黑产包罗恶意注册、刷单、刷量、诈骗、盗号、数据窃取等。这些行为通常利用技术本领或社会工程学方法,以获取不合法利益或粉碎正常的业务秩序。
[*]对抗本领 攻击本领:
[*]答案:对抗灰黑产的本领包罗加强身份验证、加密数据传输、监测异常行为、建立风险预警系统、与执法部门合作等。攻击本领可能包罗漏洞利用、社会工程学攻击、恶意软件注入、网络钓鱼等。
(十一)阿里控股一面
[*]感觉问的不难,就是逆向那一套,不过从安卓平台到了 ios 平台,面试很友好,技术问题问的不多:
[*]答案:对于 iOS 平台的逆向问题,可以提及一些与 Android 平台的不同之处,如 iOS 的沙盒机制、代码签名等。同时,可以表达对学习 iOS 逆向技术的兴趣和刻意。
[*]肴杂对抗:
[*]答案:在 iOS 平台上,肴杂对抗可以接纳雷同 Android 平台的方法,如代码肴杂、字符串加密、函数名重命名等。同时,iOS 还可以利用其独特的特性,如静态库和动态库的加载机制,来增加逆向的难度。
[*]VMP 对抗:
[*]答案:对于 iOS 上的 VMP(Virtual Machine Protection),可以分析其假造机的指令集和实验流程,尝试使用反假造机工具或通过动态分析来明白其掩护机制,并寻找突破的方法。
[*]逆向过程遇到的问题:
[*]答案:可以分享在逆向过程中遇到的具体问题,如代码肴杂导致分析困难、反调试机制的阻碍、加密算法难以破解等,并分析本身是怎样尝试办理这些问题的。
[*]对二进制漏洞挖掘的了解:
[*]答案:二进制漏洞挖掘是通过分析二进制程序的代码和内存布局,寻找可能存在的安全漏洞。可以提及一些常见的漏洞范例,如缓冲区溢出、整数溢出、格式化字符串漏洞等,并介绍一些漏洞挖掘的方法和工具,如 fuzzing 测试、静态分析工具、动态调试等。
(十二)阿里控股二面
[*]风控指纹对抗,由于研究过阿里系软件,所以这块问的比力细,细节的参数之类,然后研究到哪一步了:
[*]答案:具体介绍对阿里系软件的风控指纹对抗的研究过程,包罗分析指纹的生成机制、辨认关键参数、尝试绕过指纹检测的方法等。分析如今研究的进展和效果,以及将来的研究方向。
[*]实习履历的介绍,也比力细。:
[*]答案:全面介绍实习履历,包罗实习的公司、岗位、主要工作内容、遇到的挑衅和办理方法、取得的效果等。突出本身在实习过程中的学习和发展,以及对移动安全领域的明白和贡献。
[*]然后就是唠嗑,生活上的了。:
[*]可以轻松地与面试官交流生活中的兴趣爱好、将来的职业规划等,展示本身的综合素质和积极向上的生活态度。
三、总结
在面试的过程中,我不仅学到了很多专业知识和技能,还进步了本身的沟通本领和应变本领。虽然在求职过程中遇到了一些挫折,但终极乐成收获了阿里和美团的 offer,这让我感到非常欣慰。同时,我也认识到本身还有很多不足之处,必要不断学习和进步。希望我的面经能为其他求职者提供一些参考,祝大家都能找到本身满意的工作。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]