腾讯面试总结

人生第一次面试

接到电话的时候超级紧张,都没跟大佬问下好0.0,感觉会不会留下坏印象(大佬要是看到了我先给你跪下Orz)

Android逆向之前有准备一点,但是明显有几个点没准备好 @.@。开始的时候面试官让我讲讲做过的Android逆向的项目,说了自己之前脱过一些爱加密啊,阿里早期的壳,然后面试官就是顺着问了下我脱壳的几个点,前几代的感觉都讲到了,他还问了下so层的加固,这个我是会的,感觉自己答到了,但是有几个地方没听清面试官说啥,我记得我说了要在.init段处理,他后面又问了我在哪处理,不知道是不是当时太紧张没有讲清楚还是我没听清

接下来又问了我有没有接触过hook,我回答接触过,JAVA层使用过Xposed框架,native使用的是现成的,他问我有没有自己实现过inline hook框架,我说没有,但是我讲了讲GOT Hook的原理,修改.got处要跳转的地址。然后他顺着这个往下问了我如果自己实现框架有没有什么思路。

这里一整块感觉自己都没答好,这里之前在看雪有看过相关文章的,但是当时回答的时候脑子一片混乱@.@,真的好紧张的说。。。印象中我好像跟着他的思路再说(完了,这里会不会就是传说中的尬聊),我记得他还问了我跳转指令,熟不熟悉arm,还好我熟悉,答上来了B,BL,BLX,BX的区别,然后他又问了几个寄存器啊,传参啊什么的,挺基础的问题,这个倒还好,然后有一个问题就是自己实现hook框架的时候利用B跳转到hook后函数如果取址范围超过了怎么办,当时内心无比惊慌,完了,这是啥啊?想了半天,大佬提示了下,利用LR寄存器,喵喵喵?虽然好像大致知道了怎么回事,但是还是不敢确定,然后就按着这个思路讲,然后balabala这个问题就过去了@.@难受,我这回答的都是些啥啊

咩啊,然后大佬接下来问了一句你CTF中印象深刻的题目

???

哇,这是什么问法@.@

emmmmmm,然后我就说了两个,一个是栈溢出里见到过一个字长比较的,利用的是al来比较,然后超过一个范围就可以绕过检测,这个印象挺深的,还有一个就是pwnable.kr上的hacknote,那算是我第一个写的heap相关的pwn题吧,一个简单的UAF,然后linux漏洞就这样过去了。。。

喵喵喵???pwn我就讲了不到一分钟好像,可能和岗位的业务不符吧。。。Orz

接下来问到外挂了,大佬先问我有没有玩过手游,这里我在想,我先说了我玩过qq飞车,然后我还在想要不要多说几个腾讯的手游呢(内心在纠结,腾讯大佬面我,我是不是要多说说腾讯相关的),结果大佬可能等了一下,就直接说那就飞车吧,你说说如果是你,你会怎样对这款游戏做外挂

???WT,好吧,之前根本没有分析外挂的经验,我就分析过病毒啊,锁机之类的。

然后强行说了几个,修改赛车位移,赛车属性,让对方强制卡死这几个点

然后大佬就一个个展开来问,这里我感觉我全程扯淡@.@,大佬估计内心都鄙视我一万次了

真的我都忘了我扯了些啥,之前太紧张又忘记把面试录下来,妈耶,感觉GG

说完技术后,大佬问了我大概啥时候可以实习以及能实习多久,还问了下对工作城市有没有要求啥的

我感觉大佬没听清,我说的是我喜欢有文化古韵的城市来着,这只是基于可以去旅游,工作城市我不挑的啊,只要不是啥大西北,边疆之类的(咩啊!!!早知道不多说这句话了),然后大佬默默鄙视了我,问了句深圳没有文化古韵嘛?啊啊啊啊啊啊啊!!!我回答当然不是啊,工作优先的啊我随意啊,(欸,早知道直接这样回答了)

然后面试就结束了,谢谢大佬,然后拜拜了@.@

感觉回答的好烂啊,大佬人挺好的我不会的点还给我讲了,叫我别紧张。。。其实我全程在o((⊙﹏⊙))o.抖你晓得吧,主要是第一次面试然后又来的太突然,而且我觉得我之前简历写的好差,我都感觉会被直接筛掉(后面改了份简历),然后其实inline hook 框架昨天学长还叫我看看源码自己去实现以下来着,今天刚打算看。。。一个电话就来了,咩啊,难受,哎,好了好了,继续复习知识点

腾讯二面

来得也很是突然,我以为一般都要过几天的,哪知道隔天就打个电话来了0.0

这次感觉整体上比一面流畅,上次全程说话不利索,这次接电话前做了下深呼吸,呼~

有了上次的经验,我一接电话就给面试官打了个招呼,至少得让别人知道我懂礼貌啊!!!

二面整体感觉在一面基础上问得更深了,也问了脱壳,但是深入问了下怎样加固,防御,这里主要问了so层的,我举了几个例子比如自己实现一套linker,因为自己是分析过linker机制的,这一块比较有把握

然后和一面一样,问了hook,这次思路稍微清晰了点,对了,有个点自己以前没有注意到,就是指令的一些属性,两次面试都问到了,第一面是问到的还算浅显自己都能搞定,二面问的问题里包括了arm架构的流水线,取址->译码->执行,这个我以前吃过亏特意学习过,所以回答上来了,还有问了一下arm指令集相关,比如arm指令都是32位,还有thumb之类的我也都能应付,关键来了,又是自己实现inline hook框架的问题,可能游戏安全非常注重这一块,面试官问了我inline hook里怎样实现任意地址跳转,有一个点没答上来,关于指令LDR的(后面才知道为什么大佬要问我PC的取址问题,虽然那个我回答上来了,但明显没有很好的理解应用)

面试完后自己查了相关文章,这里给出链接,感觉这篇文章分析的很好

http://ele7enxxh.com/Android-Arm-Inline-Hook.html

然后大佬问我有没有用过外挂或者写过外挂之类的。。。emmmm和昨天那个问题差不多,自己确实没用过也没写过,只能如实回答了,大佬说搞逆向没写过外挂嘛?

我当时内心无比自卑,是的是的,我这个人太正直了23333

然后我告诉大佬自己分析过病毒以及锁机并且讲了下自己分析的一些思路,权限什么之类的balabala

讲到这我感觉技术应该问的差不多了吧,再往深问我就要虚了,结果大佬问我有没有脱过VMP壳,我说没有,然后又问有没有实现VMP壳的思路,然后我讲了讲自己对VMP壳的一些理解之类的,然后实现的思路,不会。。。

然后就没然后了,技术问题结束了。

接下来面试官问了一些学习安全的经历啊,看过哪些安全书籍啊,职业规划啊之类的,反正就开始聊人生了,balabala

自己说的时候听放松的,聊人生嘛,就相对没那么紧张

也不知道面的怎么样,但是感觉面试的大佬们都很好,有个不会的点会很耐心引导(还有我发现如果后面碰到题目不会了,想想前面问了什么问题,大佬们感觉都是层层递进的问的,前后问题都是有关联的)

面试完后想起来自己还没吃晚饭

一首凉凉送给自己

可能自己还是太菜了吧

收拾自己,继续准备其他的面试