二进制安全面经汇总

先介绍一下本人情况 985本,安全科班,上大学才开始接触的二进制安全,三月初开始准备春招,主投安全岗,辅投开发岗

主力语言C/C++/Python,接触过C#和java,涉猎比较广,各个领域都有过接触。安全能力上二进制接触比较多,web有过了解,主要经历在安全系统研发方面。

不得不说的是安全岗就业面确实比较窄,我原本以为自己很热爱安全,现在有一点点怀疑了

话不多说,上干货!

(我个人总结面经比较喜欢按主题模块分类,不是很喜欢以公司来分类的,所以将各个公司面经都整合成一个了,遇到新问题就往里面加)

C/C++逆向开发

  1. C/C++结构体大小如何计算?
  2. C++的结构体和C的区别?
  3. new和malloc的区别(delete和free的区别)
  4. 如何找到main函数?(这里要继续细分,win32桌面程序,控制台程序,linux下的命令行程序)
  5. 构造函数与析构函数调用时机
  6. C/C++编程有没有遇到的安全问题(我讲的一个浅构造导致的double free)
  7. 重载如何实现(静态函数名重载,动态虚函数重写)
  8. 虚函数如何实现?(重点,几乎必问,虚表指针位置)
  9. 虚继承/多重继承的内存结构(VC和G++中虚继承中虚表结构不太一样,这里我研究过,扯了一大堆)
  10. switch的实现与优化(难点)
  11. try-catch的实现与优化(难点,会顺着问到windows异常处理机制)
  12. 三种循环哪种效率最高?
  13. 32位下调用约定有哪些?(stdcall c标准调用 fastcall thiscall)
  14. 64位下调用约定?(VC:rdx rcx r8 r9,GCC: 多rdi rsi)

二进制逆向(反调试/脱壳/免杀/挂钩/注入)

这部分为安全岗面试重点

  1. 32位程序如何在64位机器上运行?
  2. PE格式(重点,几乎必问)
  3. PE装载进内存执行的过程(重点,内存对齐,IAT表建立,重定位)
  4. 知道哪些反调试手段?(SEH,反断点,查调试环境)
  5. gdb/od基本命令
  6. 调试器原理(三大断点实现)
  7. 如何脱壳(压缩壳/加密壳/虚拟化壳)
  8. 为什么脱完壳要修复导入表?
  9. 花指令有没有脱过?
  10. 有没有写过IDA脚本(逆向岗位几乎必问)
  11. 如果一个程序没有字符串/字符串被混淆了如何找核心代码?
  12. 内存泄漏如何排除
  13. 有没有做过免杀,怎么做的?(静态二分法定位,思考对面规则怎么写的,动态绕钩子检查,卸钩子,提权走底层)
  14. 沙箱有接触过吗?(并没有...)
  15. 有没有用过虚拟机?(QEMU, VMware Bochs)虚拟化有哪几种方式实现?虚拟机查杀有什么思路过吗?
  16. Hook有哪些方法?(几乎必问,inline hook,函数表hook)
  17. 如果inline hook前几个字节不能正好5字节Patch如何处理?
  18. 分析过哪些病毒样本?病毒分析有什么方法?(问到了深信服的实习)
  19. 特征码怎么提取的?
  20. .NET的实现(因为项目研究过.NET)
  21. flags寄存器有哪些位,有什么作用(OF, ZF, TF, 虚拟位)
  22. 控制寄存器有哪些,有什么作用(可以重点说说CR0和CR3)
  23. 共享内存怎么实现
  24. windows下有哪些注入方式?怎么实现?(重点)
  25. windows下3环向0环的切换过程?
  26. ARM汇编了解过吗(没有...)
  27. 如何防止内存被扫描?
  28. 如何隐藏进程?(说了一个CPU控制区找EPROCESS断链)隐藏之后对进程运行有影响吗?

漏洞利用

楼主pwn菜鸡,web不是很熟悉,说得都是比较基础,不过其实对漏洞利用很熟悉的面试官也不是特别多。

  1. windows/linux基本保护机制(栈执行保护,基址随机化,代码段随机化,栈溢出保护)
  2. 怎么绕过?
  3. pwn的一些印象深刻的题目,或是技巧(这部分如果面试官不是相关领域的建议不要说太深入,太细节的技术很复杂,很难讲懂)
  4. 堆漏洞利用?(double free, UAF)
  5. 栈上漏洞利用有哪些
  6. linux堆管理,glibc/slab/伙伴算法
  7. 脏牛
  8. web漏洞有了解吗?
  9. SQL注入、XSS攻击原理?
  10. ARP欺骗怎么实现的?
  11. 如何判断远端服务器的操作系统?

项目相关

  1. Powershell防御项目讲一下?
  2. 怎么防止无文件攻击?
  3. 分析过哪些脚本病毒?
  4. 加密混淆怎么处理?
  5. 知道哪些加密算法,非对称加密与对称加密的区别?
  6. .NET钩子怎么下的?
  7. 做过流量检测?说说怎么提的特征?
  8. 顺便问到TCP连接建立与释放(典中典)
  9. 问到毕业设计,简述一下你的静态分析算法怎么设计的
  10. 开发过Linux键盘监控?怎么实现的?
  11. windows调试器怎么实现的?(3环API...)
  12. 写过端口扫描工具,怎么实现的?(netfilter框架编程)
  13. ARP Poison怎么写的?(原始套接字,linux上好写一些)
  14. 写过区块链的项目,说一下?(写的Spring + Solidity,但是接触不深,不是很回答上来)

暂时想到这么多,后续有需要进行补充

#面经##春招[话题]##安全岗##安全攻防工程师#
全部评论
牛啊 知识很全
1 回复 分享
发布于 2023-04-25 19:46 陕西
安全就业面确实比较窄。我的技术储备更多是Web渗透测试这方面的,可能也是能力不够吧,拿不到这方面的offer,但是不想去卷前端后端,我宁愿在安全公司做售前。想问问大佬现在是还在等结果吗
点赞 回复 分享
发布于 2023-04-08 20:03 四川
老哥牛哇
点赞 回复 分享
发布于 2023-04-16 23:55 北京
老哥是鹅厂哪里呀 IEG吗
点赞 回复 分享
发布于 2023-04-23 14:46 河北
ieg招安全? 做逆向的么
点赞 回复 分享
发布于 2023-07-23 00:25 上海

相关推荐

小嘻米:《包装》,可以到慕课网上学几个项目写到简历上,上面的项目会比黑马高级
点赞 评论 收藏
分享
评论
26
115
分享
牛客网
牛客企业服务