12 2016 档案
恶意代码分析
摘要:1.下载器和启动器 从远程主机下载其他文件,数据. 启动其他程序, 启动包含在本pe中进程,dll: 通常处于资源节中.用到FindResource,LoadResource,SizeofResource函数 2.后门 可能有的功能: 操作注册表, 列举窗口, 创建目录文件, 搜索文件, 本地监听端
阅读全文
免杀原理
摘要:1.反病毒软件原理 构成: 多个扫描器,病毒库,虚拟机 特征码:病毒具有的独一无二的特征字符 虚拟机: 构建运行环境与实际cpu,硬盘隔离 2.扫描技术 1.基于文件扫描 字符串扫描,正则表达式匹配扫描 智能扫描:忽略nop无意义指令,脚本病毒和宏病毒通过替换多余格式字符如空格,换行 多套特征码和校
阅读全文
windows内核原理及实现-----存储管理
摘要:1.x86体系处理器 寄存器,L1缓存, L2缓存. 主内存 L1缓存:处理器最近访问的内存数据通过va引用内存地址 L2缓存:通过物理地址引用内存,L1需要物理内存时先检查L2是否存在,有就不必访问物理内存了 建立缓存一般是根据局部性原理 这3部分存储是由处理器管理的,操作系统不管理. 2.win
阅读全文
基于winpcap捕获,过滤和分析数据包
摘要:程序1, 获取网卡信息并启动capture func.h func.cpp main.cpp
阅读全文
基于select的socket编程
摘要:1.select函数 The select function returns the total number of socket handles that are ready and contained in the fd_set structures, zero if the time limi
阅读全文
多线程非阻塞server端
摘要:在非阻塞的accetp成功后就创建一个线程来处理新的客户端,并将客户端socket和地址作为参数传给线程函数. 在非阻塞的代码中修改一下即可 示例代码:
阅读全文
键盘绑定
摘要:1.理论: 从击键到内核,前后的执行情况,之间没有必然关联 按键->csrss.exe->win32!RawInputThread->win32k!OpenDevice->ZwCreateFile->NtCreateFile->ntIopParseDevice->nt!IoGetAttachedDe
阅读全文
绑定串口设备
摘要:假定共有20个串口1,每个串口的设备名是 Serial数字 定义2个有20个设备对象指针的数组,一个保存绑定设备,一个保存被绑定设备 循环对20个设备对象进行open,然后创建设备对象并将其绑定到open后的设备对象所在的设备栈栈顶,并将原栈顶 设备对象存放到被绑定设备对象数组中 注意:创建的设备的
阅读全文
非阻塞Socket---基于TCP
摘要:基本概念: 5种编程模型:select模型 主动获取socket状态 WSAAsyncSelect模型以消息通知socket状态,被动接受消息(socket状态) WSAEventSelect模型以事件通知socket状态,被动接受事件(socket状态) 重叠I/O模型使用重叠的数据结构一次投递多
阅读全文
用户层与驱动通信
摘要:以进行加法和减法为例,用户层将要进行的操作码和参数,返回缓冲发给驱动,驱动进行处理并将结果写到返回缓冲中 driver.c exe.c
阅读全文
OS理论
摘要:文件系统 1.基本概念 数据 组成分为数据项、记录和文件 在文件系统中,数据项是最低级的数据组织形式,可把它分成以下两种类型: (1) 基本数据项。这是用于描述一个对象的某种属性的字符集,是数据组织中可以命名 的最小逻辑数据单位,即原子数据,又称为数据元素或字段。它的命名往往与其属性一致。 例如,用
阅读全文
反汇编
摘要:1.基本数据类型表现 整数就不说了 浮点数: 1.浮点数分为float和double类型, 在内存中使用IEEE标准编码. float占4字节, double占8字节 2.浮点数表示 (float) 3个域: 符号位, 指数部分, 尾数部分 符号位和整数表示一样 指数部分是8bit, 后23bit是
阅读全文
windows I/O系统
摘要:基本概念: 1.硬驱动与软驱动 前者是与硬件设备挂钩的,后者只是拓展了内核,作为了内核一部分 2.I/O系统 包括:I/O管理器,PNP,power 3.I/O设备: 一般能分为块设备(数据块作为通信介质),字符设备(数据流作为通信介质). 还有其他类型的 4.os如何控制设备? 通过与该设备上的控
阅读全文
获取本机网卡信息
摘要:获取dns相关信息: 获取网络接口数量API: GetNumberOfInterfaces(pdwNumIf)
阅读全文
使用UDP
摘要:1.流程 解决版本问题->设置监听端口和地址->bind,完成后在系统进行监听->循环进行recvfrom接受连接并接受信息 2.简单示例 服务端: 客户端
阅读全文
windows内存管理概述
摘要:1.3个地址 物理地址:内存存储器的索引,cpu通过地址线管脚加上电信号读写内存单元 虚拟地址(线性地址):win32中系统和应用程序所看到的所有地址 逻辑地址:段地址+偏移 2.页式内存管理 如果不使用分页则线性地址就是物理地址 分页后线性地址构成:名词:PDE,CR3(PDBR),PTE, 最后
阅读全文
使用TCP
摘要:1.基本流程: 服务端: 创建socket->bind()地址和端口->listen()设置为监听模式->accept()接受客户端请求,收到了就返回新socket,这个 socket包含了客户端的信息->recv()接受数据,send()发送数据->shutdown()通知对方不再发送或接受数据.
阅读全文
socket基本
摘要:1.socket 开发接口位于应用层与传输层之间,可以选择TCP与UDP2中传输层协议进行开发 2.socket类型: 流式socket,SOCK_STREAM:提供面向连接的,可靠的传输服务,可以采用全双工方式.同时接收和发送数据. 如ftp协议就是基于流式的. 一般选择 tcp协议的话就是利用这
阅读全文
windows内核原理及实现-----进程线程管理------3.4节中 windows中进程句柄
摘要:1.进程的句柄表 句柄:当进程利用名称创建或打开一个对象时将获得一个句柄,通过句柄可以操作目标对象 句柄表:句柄对一个进程来说是该进程句柄表的索引.通过该索引和句柄表可以找到目标对象的指针.进程的EPROCESS结构的ObjectTable指向进程句柄表 句柄表结构: 内核句柄表:是系统空阿中的全局
阅读全文
windows内核原理及实现-----进程线程管理------3.3节中 windows中进程线程的数据结构
摘要:3.3节中 windows中进程线程的数据结构 内核层进程对象:KPROCESS typedef struct _KPROCESS { // // The dispatch header and profile listhead are fairly infrequently // referenc
阅读全文
winDBG用法
摘要:1.标准命令 1.控制进程目标: 恢复:g, 跟踪执行:t, 单步:p, 追踪监视: wt 2.操作寄存器: r, rdmgr, wrmsr, rm 3.读写io端口 ib/iw/id ob/ow/od 4.内存命令 d, e, s 5.栈 k 6.断点: bp, ba硬件断点, bl列出断点, b
阅读全文
windows调试异常机制
摘要:1.准备 附加目标进程: BOOL DebugActiveProcess( DWORD dwProcessId ); 附加后目标进程的调试信息,包括异常信息都可能发到本进程处理 2.等待调试事件: BOOL WaitForDebugEvent( LPDEBUG_EVENT lpDebugEvent,
阅读全文
|
|
|