1.简单介绍一下项目,然后开始深挖简历,中间穿插着技术提问
2.项目里静态分析和基于xposed动态工具介绍一下,如果不使用xposed,怎么实现动态分析工具
3.做过脱壳没有,Android上的加固,脱壳技术介绍一下
4.如何从海量的APP找出一个二次打包的应用呢,有几种思路(流量特征,代码相似度检测,UI节点遍历等,开放题)
5.xposed框架原理(zygote劫持,修改method结构体,将Java方法转成native方法hook。需要对xposed的源码有一定的了解)
6.APP的漏洞了解吗,应用克隆漏洞呢(支付宝那个),activity暴露攻击怎么利用,webview漏洞,还了解什么漏洞
7.如何Hook动态加载的dex(我的第一次面试实在是太紧张了,连自己博客写的loadclass方法都忘了)
8.ARM和x86汇编有什么区别,函数调用约定,函数传参和返回
9.栈溢出原理,格式化字符串漏洞,有哪几种保护手段,怎么绕过栈上canary保护,ROP攻击原理
10。现在Android平台上的几种加固方式(动态加载,类抽取,混淆,vmp),怎么脱壳,及各种技术细节
11.xposed框架原理(面试官很爱问这个问题),Frida原理,Frida和xposed有什么区别
12.Got表hook和inline hook区别
13.selinux安全相关
14.Android系统从按下开机键,启动流程是怎么样的(设备初始化,init进程,zygote进程,dalvik实例)
15.webview漏洞原理和防护,支付宝的克隆漏洞技术复现细节(腾讯家很爱问…)
16.做过APP自动测试工具没有,这些漏洞如果编写自动化测试框架有什么思路
17.IDA有个F5的功能,那么如何阻止破坏F5分析呢(破坏堆栈,滥用noreturn函数)
18.列举几个花指令的代码片段
19.Windows常见的加壳,脱壳技术
20.windows原创注入和hook的几种实现(其实从他问出阻止F5反编译的问题开始我就觉得这场面试要难了)
21.Android的init_array和JNI_OnLoad的时机问题,如何绕过init_array段中的反调试
22.xposed hook原理,xposed究竟是如何实现一个dalvik模式的函数hook的,Frida是如何实现native函数hook(好像还有一个问题记不起来了,因为第一次听说..)
23.Android常见的加固和脱壳技术,vmp了解吗,如何让你设计一个虚拟机保护你怎么实现
24.Android反调试的几种手段
25.ollvm混淆的原理,手段,列举指令替换的例子,如何实现的控制流平坦化
26.iOS砸壳工具原理(DYLD_INSERT_LIBRARIES注入dylib动态库)
27.iOS如何在不越狱的情况下去hook一个c函数,了解fishhook吗,Method Swizzling呢
28.编程方面:static函数的区别,局部变量和全局变量放在哪个段,局部变量一定都是放在栈上吗,特殊情况
29.int a(int b){ return a?100:10; }这个函数的作用是什么,用你最熟悉的一种汇编语言实现,这个函数的汇编指令大体上分成那几个模块
30.现在这种爱加密和梆梆壳是如何函数级加密的,脱壳思路是什么
31.有没有编译过Android源码,怎么编译内核修改traceid字段实现的反调试bypass
32.dalvik和ART虚拟机上函数hook区别是什么,ART虚拟机为什么执行速度加快(dex2oat,安装的时候编译成native机器码跑)
33.混淆的so库有什么分析经验,最擅长一门的编程语言是什么,用过IDAptyhon吗
34.给你一个商业保护题目分析一下,给你一周的时间,不会的话写一下大体的分析。
二:笔者的经历
1.导入表在ELF文件中的位置(只说了ELF的大概结构,细节记不起来了。。)
2.Xposed的原理(替换
/system/bin/app_process,该路径的app_process被替换为Xposed的app_process,对需要hook的方法进行native注册,达到优先执行 )
3.检测Xpoed的方法,如何处理这些检测(关键词检测,可以定制Xposed反检测:https://mp.weixin.qq.com/s/c0nXtQPBjiGhKv8wZr5nqw)
4.微信抢红包怎么实现(没做过)
5.分析过哪些app,具体做了什么(游戏破解,协议分析)
6.了解过群控技术吗,自动聊天、发语音怎么实现(不知道)
7.反调试有哪些方法,怎么处理反调试(
https://bbs.pediy.com/thread-223460.htm
)
8.Android开发了解多少,自己写过app吗
9.Linux文件系统长什么样(最上面是根目录,下面是不同功能的文件)
10.Fiddle抓不到包怎么处理(用代理机器人)
11.ARM汇编的调用约定
12.一般也会给我发apk让我实现一些hook或者分析算法
ps:希望大家留言面试中遇到的问题:)