随笔分类 -  Assembly

摘要:本文为 第17章笔记中断和异常中断和异常概述中断和异常的作用是指示系统中的某个地方发生一些事件, 需要引起处理器(包括正在执行中的程序和任务)的注意. 当中断和异常发生时, 典型的结果是迫使处理器将控制从当前正在执行的程序或任务转移到另一个历程或任务中去. 该例程叫做中断处理程序, 或者异常处理程序... 阅读全文
posted @ 2015-02-03 11:08 Acg!Check 阅读(1182) 评论(0) 推荐(0)
摘要:本文为 第16章笔记因为段的长度不定, 在分配内存时, 可能会发生内存中的空闲区域小于要加载的段, 或者空闲区域远远大于要加载的段. 在前一种情况下, 需要另外寻找合适的空闲区域; 在后一种情况下, 分配会成功, 但太过于浪费. 为了解决这个问题, 从80386处理器开始, 引入了分页机制. 分页功... 阅读全文
posted @ 2015-02-03 11:07 Acg!Check 阅读(481) 评论(0) 推荐(0)
摘要:本文为 第15章笔记 由两种基本的任务切换方式, 一种是协同式额, 从一个任务切换到另一个任务, 需要当前任务主动地请求暂时放弃执行权, 或者在通过调用门请求操作系统服务时, 由操作系统"趁机"将控制转移到另一个任务. 这种方式依赖于每个任务的"自律"性, 当一个任务失控时, 其他任务可能得不到执行... 阅读全文
posted @ 2015-02-03 11:06 Acg!Check 阅读(666) 评论(0) 推荐(0)
摘要:本文为 第14章笔记任务的隔离和特权级保护任务, 任务的LDT和TSS程序是记录在载体上的指令和数据, 总是为了完成某个特定的工作, 其正在执行中的一个副本, 叫做任务(Task). 这句话的意思是说, 如果一个程序有多个副本正在内存中运行, 那么, 它对应着多个任务, 每一个副本都是一个任务. 为... 阅读全文
posted @ 2015-02-03 11:04 Acg!Check 阅读(561) 评论(0) 推荐(0)
摘要:本文为 第12章笔记别名技术我们都已经知道, 在保护模式下, 代码段是不可写入的. 所谓不可写入, 并非是说改变了内存的物理性质, 使得内存写不进去, 而是说, 通过该段的描述符来访问这个区域时, 处理器不允许向里面写入数据或者更改数据. 但是, 很多时候又需要修改代码段, 如调试时加入断点指令in... 阅读全文
posted @ 2015-02-03 11:03 Acg!Check 阅读(362) 评论(0) 推荐(0)
摘要:本文为 第11章笔记以下图2, 图4和图5截自Intel手册全局描述符表全局描述符表中存放着段描述符, 每个段描述符8个字节.为了跟踪全局描述符表, 处理器内部有一个48位寄存器, 叫做全局描述符表寄存器(GDTR), GDTR分为两部分,分别为32位的线性地址和16的边界, 32位线性基地址部分保... 阅读全文
posted @ 2015-02-03 11:02 Acg!Check 阅读(677) 评论(0) 推荐(0)
摘要:原文:http://www.pediy.com/kssd/index.html-- 病毒技术 -- 病毒知识 -- Anti Virus专题首先看下我们内存加载引擎的流程。1.申请一段大小为dll映射内存后的映像大小的内存空间。2.移动各个区段的数据到申请的内存。2.修复引入表结构的地址表。4.通过... 阅读全文
posted @ 2015-02-03 10:57 Acg!Check 阅读(546) 评论(0) 推荐(0)
摘要:原文:http://www.pediy.com/kssd/index.html -- 病毒技术 -- 病毒知识 -- Anti Virus专题那么搜寻节空隙感染,最重要的就是找到我们节中存在的空隙。一般在病毒技术中,有两种方法。循环读取节表,然后分别在每个节中搜寻00机器码(因为默认编译器是用00机... 阅读全文
posted @ 2015-02-03 10:56 Acg!Check 阅读(283) 评论(0) 推荐(0)
摘要:原文:http://www.pediy.com/kssd/index.html-- 病毒技术 -- 病毒知识 -- Anti Virus专题 今天我们的感染方式是扩展末尾节,因为它很简单、稳定、快捷。那么扩展末尾节顾名思义就是针对被感染对象的最后一个节的扩展。将尾部节的大小扩充,然后将我们的病毒代码... 阅读全文
posted @ 2015-02-03 10:54 Acg!Check 阅读(313) 评论(0) 推荐(0)
摘要:原文:http://www.pediy.com/kssd/index.html-- 病毒技术 -- 病毒知识 -- Anti Virus专题 1> 变形PE头的原理: 这里的变形PE头的思路是用的比较方便的方法,就是将IMAGE_DOS_HEADER 和 IMAGE_NT_HEADER 结构融... 阅读全文
posted @ 2015-02-03 10:53 Acg!Check 阅读(777) 评论(0) 推荐(0)
摘要:原文:http://www.pediy.com/kssd/index.html -- 病毒技术 -- 病毒知识 -- Anti Virus专题如何编写病毒代码? 首先我把最重要的两个方面列举出来。 1. 处理病毒各个绝对地址的重定位。 2. 所有需调用的api函数地址,均通过动态搜索来获得。 ... 阅读全文
posted @ 2015-02-03 10:52 Acg!Check 阅读(2234) 评论(0) 推荐(0)
摘要:原文:http://www.pediy.com/kssd/index.html-- 病毒技术 -- 病毒知识 -- Anti Virus专题PE结构的学习原文中用fasm自己构造了一个pe,这里贴一个用masm的,其实是使用WriteFile API将编写的PE数据写成文件~也没啥好说的,PE结构在... 阅读全文
posted @ 2015-02-03 10:49 Acg!Check 阅读(941) 评论(0) 推荐(0)
摘要:原文:http://www.pediy.com/kssd/index.html-- 病毒技术 -- 病毒知识 -- Anti Virus专题搜索获得api函数地址的实现我们的程序能正常的调用函数。那么这个动态链接库是如何输出函数来供我们的用户程序调用呢?它实际上是采用输出表结构来描述本dll需要导出... 阅读全文
posted @ 2015-02-03 10:45 Acg!Check 阅读(704) 评论(0) 推荐(0)
摘要:原文:http://www.pediy.com/kssd/index.html-- 病毒技术 -- 病毒知识 -- Anti Virus专题第一种方法通过线程初始化时,获得esp堆栈指针中的ExitThread函数的地址,然后通过搜索获得kernel32.dll的基地址。线程在被初始化的时,其堆栈指... 阅读全文
posted @ 2015-02-03 10:43 Acg!Check 阅读(1731) 评论(0) 推荐(0)
摘要:原文:http://www.pediy.com/kssd/index.html-- 病毒技术 -- 病毒知识 -- Anti Virus专题下面的代码都是内联汇编,较比较汇编会有些限制,可能写法上有时候会不一样。黑色是代码,红色是编译的汇编代码int g_nTest;__asm{call Dels0... 阅读全文
posted @ 2015-02-03 10:42 Acg!Check 阅读(723) 评论(0) 推荐(0)
摘要:在分析代码混淆时,一般的指令是比较好分析的,但对于利用栈进行混淆处理这类代码是比较头痛的,编写对付这类代码的自动分析模块是比较麻烦的,恐怕得追踪记录栈的使用情况。例如,请分析下面10条代码,并将它的混淆部分去除,得到最简化代码。这是比较常见的一类混淆形式,实际上它只是一个混淆块的一部分: ..... 阅读全文
posted @ 2015-02-02 18:41 Acg!Check 阅读(883) 评论(0) 推荐(0)
摘要:■ 数据访问时的权限check 一、 访问data segment时(ds、es、fs 及gs)1、 程序指令要访问数据时,data segment selector 被加载进 data segment register(ds、es、fs 和 gs)前,处理器会进行一系列的权限检查,通过了才能被加载... 阅读全文
posted @ 2015-02-02 16:48 Acg!Check 阅读(578) 评论(1) 推荐(0)
摘要:一、 直接转移(far call及 far jmp)直接转移通过执行一条 call 或 jmp指令,在段内转移不需selector近跳转,段间转移通过selector(不带gate或 tss)远跳转,CPL不改变。权限检查的4个要素:★ CPL:当前运行级别(也就是CS.CPL)★ RPL:门符选择... 阅读全文
posted @ 2015-02-02 16:47 Acg!Check 阅读(342) 评论(0) 推荐(0)
摘要:操作系统必须至少建立一个TSS,4个权限级别的堆栈结构(stack segment selector及stack pointer)必须被定义。一、 堆栈及栈指针的权限级别:★ 3 级:stack selector及stack pointer存储在SS寄存器及 ESP 寄存器中★ 0、1及2级:相应的... 阅读全文
posted @ 2015-02-02 16:46 Acg!Check 阅读(328) 评论(0) 推荐(0)
摘要:sub x,y ===> 以此为例一、用于符号数运算的标志: (OF、ZF、SF)1、 (OF = 0) &&(ZF = 0)&&(SF = 0)ZF =0 : 说明两个算术操作数不相等OF = 0 : 说明结果无溢出SF = 0 : 说明结果为正数-------------------------... 阅读全文
posted @ 2015-02-02 16:43 Acg!Check 阅读(339) 评论(0) 推荐(0)