生涯第一次面试

    3.27我早上起来接到HR微信消息,通知我下午去面试,之前上周说的不要实习生本来已经让我放弃了的,可是这突如其来的消息又让我跃跃欲试。我想了一想,我需要一个早上温习一下,就回复HR将面试时间改为3.28的下午。

    时间似箭,一去如梭,我越复习脑子里的浆糊就越多越稠,事实证明妄图短时间内掌握大量繁杂的知识是个愚蠢的决定,索性挑出少量重点温习了一下。

    两点刚好达到公司前台,前台联系了一下就让一个工程师过来面试我了。进入房间前,工程师想让我做一下技能笔试,我心里当时是懵逼的,心想难道我就要GG在这里了吗。我一直不认为我之后学的知识会像中小学生涯那样闹闹记住来考试,所以我根本就不擅长闭卷笔试这种考核,互联网的存在让我觉得自己根本不需要储备那些固定的知识,只需要记住原理框架就行了,到现在我也不知道自己的想法是否正确,但我觉得脑海里的知识得成体系成网状是必须的。言归正传,还好HR已经和前台交代过我不需要技能笔试,所以我直接进行面试了。

  1. 一开场,就职位的兴趣入题,问我从什么时候开始关注逆向;“我回答自己高中就关注了,但是正是学习是从去年5月开始的”。紧接着是一个开放性问题,他问我怎么看待逆向工程,听到这个问题我感觉很玄学,我逆向经验其实不算多,但是好在平常有一些自己思考。“逆向它是一个体力活,但是是一个需要经验以及基础内功的体力活,首先得有很好的基础知识,它们会让你对程序的大致运行了然于心,并且不会调入某些细节的坑(比如SEH触发时有个压栈Next SEH Handler的操作)里。虽然你有了基础内功,但是你也不是已经天下无敌,这个时候有需要很多逆向的经验(比如看到QueryPerformanceCounter就要有时间计数反调试的Idea,还有各种语言编译过后的样式)来帮助你分析程序。最后你内功和经验都有了,可是如果遇到一个比较生疏的程序,你还是得花时间去不断地分析程序熟悉程序,这是必有的经过。综上,逆向是一个需要基础内功与经验的体力活
  2. 接下来他仔细看了我的简历,对我的mini-kernel比较感兴趣,面试官可能也比较熟悉Kernel,他问我是不是独立(不借助参考资料)做出来的,我心想怎么可能,Linus还差不多,我只能如实回答我借助了好些参考资料才写出来了。同时他也问了是否实现了多线程以及用到TSS,刚好我在开学一周把多线程部分给实现出来了,通过时钟中断来调度,用一个push target_address;ret的操作来实现的多线程,并没有用到TSS。之后他又问了关于内存管理的过程以及寻址的流程,“内存管理就是需要先将有限的物理内存先用数据结构进行统计管理,之后在线程中需要malloc的时候给定程序一个规定好的虚拟地址(每个线程都拥有完整的虚拟地址空间,所以每个线程都能霸占这个堆),之后再在内核中通过物理内存数据结构的管理分配处可用的物理内存,并将它映射到相应进程的虚拟内存中(通过设置相应进程的页目录);至于寻址的话则是使用高10位来作为页目录索引,中间10位作为页表索引,找到具体的页表项,最后12位作为页中偏移定位具体地址(一页4KB刚好12位)。"
  3. 以上的都是基础知识的考察和概览,面试官刚好问到我记得比较熟的点,运气不可谓不好。之后他看到我写了掌握基础漏洞原理,就让我说一下漏洞概况。说实话,这部分其实我的practice不算多,所以很不扎实,唯一调试得最多的属栈溢出漏洞并且辅以一些bypass技巧。“栈溢出就是通过ret指令(约等于pop eip)的机制来造成的,而还有一种是堆漏洞,比如UAF就可能发生堆漏洞,当我们第二次申请与上次释放内存块大小相同时候,系统可能会直接给我们上次释放的内存块,然而上面如果有我们input的污染数据,那么可能导致漏洞的发生。”之后他问了我什么情况下我们能input进去污染数据,这时候由于我漏洞知识的不扎实,导致我完全答不上来,“@#¥%%@#...”我自己都不知道在说什么。到了这里之后,还好面试官没有再难为我,估计也是看出来我就这点斤两,开始问我时间以及未来规划的问题,同时也和我说起我进去会做的工作(安卓端漏洞+Win端漏洞)。
  4. 经过这次面试,我知道自己的亮点是Kernel部分基础掌握得还不错,没有浑水摸鱼做出这个Kernel,其中还是掌握了好些东西的,这样说明我们的基础课程课设(Computer Arch/OS/Compiler/Network)真的得偏实际一点,不去coding一下,理论模型完全就很空泛,学了不久就会忘。其次,如果是做漏洞挖掘,我目前建议在熟悉调试+OS原理之后尽快跟上CVE来进入真正的漏洞环境,感受真实的触发条件,以及利用技巧,真正的Hacker不是活在lab中的

    以上纯属个人思考和经历,如有错误,希望不吝赐教

转载于:https://my.oschina.net/u/3281747/blog/1786738

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值