求职:QQ:1815349357
入坑有好几个年头了,被面过也面过人,感觉很多面试略逊,对此有些看法,限于个人知识积累,与大家讨论一下。
技术面试期望考评一个人的技术素质,个人觉得就三个方面,知识广度(思路),深度(经验),脑力(xxx)。
知识的广度,随便聊,不要只是网上抄来的面试题,比如:
1.C语言支持变量随用随定义吗?C89,C99与它有关系吗,VS的C编译器支持大概怎么样?
2.syscall sysenter 大概是什么区别,int 2e 呢?
3.蓝色药丸开源代码里去掉了VT嵌套,这个嵌套是用来干嘛的?
4.EPT是啥意思,Intel有个什么网站能查到EPT支持情况?
5.NtCreateFile 里有个EA,这个是干嘛的?
6.64位VS(/wdk)C文件没法嵌入汇编,有什么解决办法?
7.USB类过滤驱动有没有了解,SRB?
8.e100bex这个字眼大概是干嘛的,RTL8139呢?
9.UEFI可执行文件的内部格式是?
深度(经验):
1.无锁链表的原理(需要提前准备)?
2.构造一个x86 opcode(在线),实现向后跳转N字节,实现 mov eax, edx;
3.构造一段x64 opcode,实现向64位任意地址跳转,不能影响跳转前后通用寄存器值;
4.写一段windbg脚本(在线),实现某个功能;
5.写一个printf类似的函数,解释va_list等宏的意思;
6.C语言的位域是干嘛的;
7.逆向时经常看到DriverEntry开头那段GS代码,这个代码是干嘛用的,对应的编译选项是?
8.opcode最前面若是0x66,是用来干嘛的?
9.原子指令的汇编前缀是什么?
10.DeviceObject->Flags |= DO_BUFFERED_IO; 这句意味着什么?
11.NTFS文件格式解析的了解?
12.windows网络模型里有个完成端口,它在内核层是由什么内核对象实现的?
脑力(离线):
给出base64说明,让手写一个base64编码算法?
手写一个简单数组的排序算法?
手写一个stricmp()?
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2018-10-20 03:20
被囧囧编辑
,原因: