IT求职与IT热门技术内核开发.ppt_第1页
IT求职与IT热门技术内核开发.ppt_第2页
IT求职与IT热门技术内核开发.ppt_第3页
IT求职与IT热门技术内核开发.ppt_第4页
IT求职与IT热门技术内核开发.ppt_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2011-09-24,IT求职与IT热门技术,麦洛克菲-周扬荣 ,麦洛克菲,我们是谁?,麦洛克菲() 团队成员 麦洛克菲关注的方向 求职与面试技巧 内核程序开发 算法设计与提高 麦洛克菲的性质 公益性质 微利性质 推动性质 成长中的麦洛克菲,麦洛克菲,报告提纲-求职技巧,1求职技巧 1)技术笔试面试(求职关键中的关键) 2)程序员的软实力竞争 3)项目面试 4)英语面试 5)经理或总监面试 6)HR面试与薪水谈判 7)简历如何写? 8)简历如何投? 9)企业究竟需要什么样的人才?面官是如何评价面试结果的? 10)一个过来人的面试经验教训总结 11)面试被拒与反思 11)如何选择Offer? 12)如何通过试用期?,麦洛克菲,报告提纲-IT热门技术,2IT热门技术-内核安全开发 1)内核开发热门在何处? 2)内核开发入门 3)沙盘(Sandbox)技术 4)主动防御与云查杀技术 5)透明加解密技术 6)磁盘还原技术 7)网络防火墙技术 8)Rootkit与anti-rootkit技术 9)逆向分析技术,麦洛克菲,报告提纲-专题报告,邵坚磊基于MBR的BOOTKIT的最新进展 刘海平如何进行内核研究 陈健IBM的研究氛围与技术报告如何做,麦洛克菲,上:求职技巧部分,麦洛克菲,技术笔试面试(求职关键中的关键),C C+ 数据结构与算法 内存管理 多线程/多进程 网络 数据库 Windows系统 Linux系统 设计模式,麦洛克菲,C,1sizeof() 2变量存储类型,作用域,生存空间 3整数的存储 补码:int i = -1; 低位优先与高位优先 int i = 1; 4位运算 (char)(1271)+1 如何判断判断整数x的二进制中含有多少个1?(x & (x 1) ) 如何判断一个数是2的N次方? 5指针,指针与引用,传参数 char *p1 = “Hello, word!” char p2 = “Hello, world” char p3 = h, e, l,l,o, , w,o,r,l,d 6static/extern/volatile/ char/include/const/typedef 7操作符(优先级,=与=,12+3=? ) 8溢出(数组/数/缓冲区),麦洛克菲,C+(1),1const,inline,#define 2C+面向对象的三大特性 4空类的实质内容是什么? 5如果类中含有动态内存分配,该如何处理? 6成员变量的初始化的区别?顺序?静态成员的初始化? 7设计一个类,只能生成该类的一个实例 8基类析构函数的设计 9赋值运算符的设计 14什么是多态?,麦洛克菲,C+(2),16重载/重写/重整 19String类 21Vector 22List 23Deque 24Set/MultiSet 25Map/MultiMap 26Stack 27Queue/Priority_Queue,麦洛克菲,算法(1),(字符串,链表,栈,队列,树,数组,数,排序,查找) 1Strstr 2Strtok 3Strcpy/strcat /memcpy/memmove 4Strcmp 5Reversestr/字符串左旋/右旋 6Tolower 7Delchar/delchars 8IP地址转换 9LinkList基本操作:插入,删除,合并 10链表排序 11链表逆向 12循环链表 13栈和队列的实现(C+,C,数组,链表) 15树的遍历,麦洛克菲,算法(2),17公共祖先 19字符串与数的转化 20素数问题(筛法与判断方法) 22数组中重复的数 26排序:插入(希尔)/选择(堆排序)/交换(冒泡,快速)/归并排序/基数排序 27查找:折半查找/二叉排序树/HASH查找 28递归算法应用:数组/链表/树/字符串 29算法设计关键,麦洛克菲,内存管理,1虚拟内存空间 2程序内存布局 3堆和栈的区别 内存分配 大小限制 效率比较 存放内容 4调用约定 Cdecl Fastcall Stdcall Nakedcall thiscall 5汇编基础 汇编指令:机器码助记符,有对应的机器码,比如move指令等; 伪指令:无对应的机器码,编译器执行,比如assume语句; 其他符号:+,-,*,/,由编译器识别,无对应机器码。 6栈桢(活动记录) 7内存分配 8内存泄漏,麦洛克菲,多线程/多进程编程,1同步机制 critical_section Mutex Event Semaphore spinlock 2进程通信 共享内存 管道 信号量 消息 文件,麦洛克菲,网络,1协议模型 OSI/TCP-IP协议模型 3TCP三次握手(连接与断开)/SYN FLOOD攻击 4TCP定时器 5TCP/UDP协议区别 6ARP协议与ARP攻击 7SOCKET编程,如何获取一个网页的数据? 8Windows Socket 五种IO模型 选择(Select) 异步选择(WSAAsyncSelect) 事件选择(WSAEventSelect) 重叠I/O(Overlapped I/O) 完成端口(Completion Port) 9MTU的大小?,麦洛克菲,数据库,1SQL语言 SELECT DELETE UPDATE INSERT 2索引 聚簇索引 非聚簇索引 3事务 ACID(原子性、一致性、隔离性和持久性) 4存储引擎 MyISAM: Mysql的默认数据库,最为常用。 InnoDB :事务型数据库的首选引擎,支持ACID事务,支持行级锁定 BDB: 源自Berkeley DB,事务型数据库的另一种选择,支持COMMIT和ROLLBACK等其他事务特性 5锁定 表锁定 块锁定 行锁定 6字段类型,麦洛克菲,Windows,1PE结构 2CreateThread与_beginthreadex,AfxBeginThread,麦洛克菲,Linux,1常用命令 mv/rm/ps/kill -9/cp/ls/ifconfig/pwd/find/du/df/ln 2GCC,gdb 3.Core文件 4同步锁 5软中断和工作队列,麦洛克菲,设计模式,Singleton 模式(单例模式) Singleton* Singleton:Instance() if (_instance = 0) _instance = new Singleton(); return _instance; Singleton* sgn = Singleton:Instance(); Facade 模式(门面模式) Factory 模式(工厂模式) . 参考设计模式精解作者:K_Eckel,麦洛克菲,软实力竞争,团队协作 交流沟通 学习思考,麦洛克菲,简历,简历如何写? 内容 基本信息 教育背景 工作经历 专业技能 项目经验 工作成绩 自我评价 防止错误 针对性强 突出重点 突出优点 简历投递渠道 学校招聘主页 朋友推荐 各个知名企业的主页 ChinaHR/ZhaoPin/51job 水木清华 现场招聘会,麦洛克菲,面试技巧(1),项目面试 英语面试 经理或总监面试 HR面试与薪水谈判 企业究竟需要什么样的人才?面官是如何评价面试结果的?,麦洛克菲,面试技巧(2),一个过来人的面试经验教训总结 错过QQ面试机会 不稳定邮箱造成邮件收不到 迟到 太老实了 与+-运算优先级 项目点遗忘 面试被拒与反思 被大公司拒绝 被小公司拒绝 被大小公司同时拒绝 如何选择Offer? 如何通过试用期?,麦洛克菲,中:IT热门技术部分,麦洛克菲,内核开发热门在何处?,3Q大战 企业需求大 安全人才一人难求 Wowocock/PJF/MJ0011/Linxer这些ID炙手可热,麦洛克菲,内核开发入门,.sys文件 Hello world 编译(WDK) 运行 调试 与普通程序区别 (1)API:zwcreate/create zwopen()/open (2)内存malloc/exallocatepool (3)main/DriverEntry (4)CString/CHAR */WCHAR */UNICODE_STRING/ANSI_STRING (5)可用与不可用的函数: printf/scanf/fopen/fclose/fwrite/fread/malloc/free不能用; sprintf/strlen/strcpy/wcslen/wcscpy/memcpy/memset可用 API运行级别 论坛社区: B D ,麦洛克菲,主动防御,kernel.dll user32.dll,ntdll.dll,API,IRP,应用层,内核层,数据 命令,封装,disk.sys,nftf.sys,监控技术: 1。HOOK(ssdt/idt/irp/inline) 2。过滤(设备绑定:sfilter/minifilter/tdi/ndis) 3。回调( CmRegisterCallbackEx),麦洛克菲,沙盘(Sandbox)技术,文件系统:minifilter 注册表:CmRegisterCallbackEx,麦洛克菲,云查杀技术,MD5 文件等级:安全/可疑/木马 云查询,麦洛克菲,透明加解密技术,应用范围:企业信息防泄密 技术框架:sfilter/minifilter+加解密算法 机密进程 文件缓冲与清除 加密标志 文件加密表,麦洛克菲,磁盘还原技术,技术基础:过滤(卷过滤或者磁盘过滤) BITMAP:每一位记录一个扇区是否被重定向 扇区(sector) 簇(cluster) 磁盘总大小(total size) 写 稀疏文件 读 未重定向 完全重定向 部分重定向,麦洛克菲,网络防火墙技术,网络程序 Application,Networking API,TDI Client驱动程序,网络协议驱动程序 (TCP/IP,SPX/IPX),中间驱动程序,网卡驱动程序 (Ethernet, ATM, WIFI),物理设备,应用层,内核层,硬件层,NDIS驱动,TDI传输驱动程序,IRP包,NDIS包,TDI驱动,麦洛克菲,TDI-过滤,TDI(XP) Object:TCP/UDP/RAWIP IRP_MJ_CREATE TDI_CONNECT TDI_SEND TDI_RECEIVE TDI_SEND_DATAGRAM TDI_RECEIVE_DATAGRAM TDI_EVENT_CONNECT TDI_EVENT_RECEIVE,麦洛克菲,NDIS-PassThru,1注册miniport特征: NDIS_MINIPORT_CHARACTERISTICS MChars; . MChars.TransferDataHandler = MPTransferData; MChars.SendPacketsHandler = MPSendPackets; Status = NdisIMRegisterLayeredMiniport(NdisWrapperHandle, 3 绑定(PtBindAdapter) 4在MPTransferData/MPSend/MPSendPacket中过滤 5在PtReceive/PtReveivePacket/ PtTransferDataComplete中过滤 6过滤结果:放/拦/修改(转发/加解密),麦洛克菲,Rootkit与Anti-Rootkit技术,进程隐藏 文件隐藏 注册表隐藏 端口隐藏 bootkit,麦洛克菲,逆向工程,反汇编工具IDA Pro 反C int myFunc(int a, int b) int c = a + b; return c; void main(void) int a = 0; int b = 1; myFunc(a, b); ,a.被调用者 mov eax, dword ptr ss:esp+8 mov ecx, dword ptr ss:esp+4 add eax, ecx Ret b.调用者 push 1 push 0 call MyFunc add esp,8,麦洛克菲,下:专题报告,麦洛克菲,Q&A The end,麦洛克菲,数据链路层,网络层,传输层,会话层,表示层,应用层,物理层,网络接口层 (OSI一,二层),网络互联层 (IP,ICMP等),传输层 (TCP,UDP),应用层 (SMTP,FTP等),OSI模型,TCP/IP模型,Firefox,http,TCP,IP,Ethernet驱动,Ethernet,例子,麦洛克菲,麦洛克菲,int a = 0; /全局初始化区 char *p1; /全局未初始化区 void main(void) int b; /栈,自动分配和释放 char s = “123“; /栈,自动分配和释放 char *p2; /栈,自动分配和释放 char *p3 = “hello, world“; /”hello, world0”在常量区,p3在栈上。 static int c =0; /全局(静态)初始化区 p1 = (char *)malloc(128); /堆分配 p2 = (char *)malloc(256); /堆分配 free(p1); /显式释放 free(p2); /显式释放 ,麦洛克菲,分析下面程序运行情况,有什么问题呢? 1 #include 2 void main(void) 3 4 char x,y,z; 5 int i; 6 int a16; 7 for(i=0;i=16;i+) 8 9 ai=0; 10 printf(“n“); 11 12 return 0; 13 ,麦洛克菲,void GetMemory(char *p) p = (char *)malloc(100); void Test(void) char *str = NULL; GetMemory(str); strcpy(str, “hello world“); printf(str); ,麦洛克菲,#pragma pack(8) struct s1 short a; long b; ; struct s2 char c; s1 d; long long e; ; struct s3 char c; short a; long b; long long e; ; #pragma pack() 1.sizeof(s1)=? sizeof(s2) = ? sizeof(s3) = ? 2.s2的c后面空了几个字节接着是d?,麦洛克菲,麦洛克菲,缓冲区溢出,void func1(char* s) char buf10; strcpy(buf, s); void func2(void) printf(“Hacked by me.n“); exit(0); int main(int argc, char* argv) char badCode = “aaaabbbb2222cccc4444ffff“; DWORD* pEIP = (DWORD*) ,麦洛克菲,指针与引用,void fun(char c) printf(“%dn“ , sizeof(c); void fun2(char ,麦洛克菲,一个实例的C+类,class Singleton public: static Singleton* Instance(); protected: Singleton(); private: static Singleton* _instance; ; Singleton* Singleton:Instance() if (_instance = 0) _instance = new Singleton(); return _instance; Singleton* sgn = Singleton:Instance();,麦洛克菲,赋值运算符的设计,String ,麦洛克菲,动态内存,class string private: char *m_buf; string a(“hello“); string b(“world“); b = a; string a(“hello, world”); DoSomething(a);,麦洛克菲,空类实质内容,class Nothing ; 和下面类的声明是等价的: class Nothing public: Nothing(); Nothing(const Nothing,麦洛克菲,多态,int valuenode:getValue() return (value); int opernode:getValue() switch (operater) case +: return left-getValue() + right-getValue(); case -: return left-getValue() - right-getValue(); case *: return left-getValue() * right-getValue(); case /: return left-get

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论