摘要: 1. int指令 n int格式: int n,n为中断类型码。它的功能是引发中断过程。 n CPU 执行int n指令,相当于引发一个 n号中断的中断过程,执行过程如下: n (1)取中断类型码n; n (2)标志寄存器入栈,IF = 0,TF = 0; n (3)CS、IP入栈; n (4)(IP) ... 阅读全文
posted @ 2009-04-06 15:00 jasonM 阅读(3503) 评论(0) 推荐(0) 编辑
摘要: 1. int指令 n int格式: int n,n为中断类型码。它的功能是引发中断过程。 n CPU 执行int n指令,相当于引发一个 n号中断的中断过程,执行过程如下: n (1)取中断类型码n; n (2)标志寄存器入栈,IF = 0,TF = 0; n (3)CS、IP入栈; n (4)(IP) ... 阅读全文
posted @ 2009-04-05 23:07 jasonM 阅读(618) 评论(0) 推荐(0) 编辑
摘要: 中断的意思是指,CPU不再接着(刚执行完的指令)向下执行,而是转去处理这个特殊信息。中断的信息有可能来自cpu内部,也有可能是外部。我们先来讨论内中断的情况。 1. 内中断的产生 n 当CPU 的内部有什么事情发生的时候,将产生需要马上处理的中断信息呢? n 对于8086CPU,当内部有下面情况发生的时候,将产生中断信息: n 1、除法错误,比如:执行div指令... 阅读全文
posted @ 2009-04-05 17:10 jasonM 阅读(1050) 评论(0) 推荐(1) 编辑
摘要: 闲得无聊搜集的一些OEP和Section,希望能对研究脱壳的朋友们帮上一点小忙。**********************************************************************Borland C++ 1999.text.data.tls.rdata.idata.edata.rsrc.reloc00401000 Find> $ /EB 10 ... 阅读全文
posted @ 2009-04-05 09:25 jasonM 阅读(983) 评论(0) 推荐(0) 编辑
摘要: 原理:程序都是在内存中运行的,一些注册码或是密码在内存中的某段时间那出现。当你输入密码时,软件就会进行判断,要判断就会发生真假密码的对比,在这段时间内你输入的错的和正确的都会出现在内存中!而一般判断有两种 1.判断正确跳转到真确的代码段错误的不跳转继续往下走(下面对为错误代码段);2.另一种相反,判断错误跳转到显示错误的代码段正确的不跳转继续往下走(下面对为显示正确代码段)。而这个判断的地方就教做... 阅读全文
posted @ 2009-04-04 14:52 jasonM 阅读(1446) 评论(0) 推荐(0) 编辑
摘要: 常见脱壳方法 预备知识 1.PUSHAD (压栈) 代表程序的入口点, 2.POPAD (出栈) 代表程序的出口点,与PUSHAD想对应,一般找到这个OEP就在附近3.OEP:程序的入口点,软件加壳就是隐藏了OEP(或者用了假的OEP/FOEP),只要我们找到程序真正的OEP,就可以立刻脱壳。 方法一:单步跟踪法1.用OD载入,点“不分析代码!”2.单步向下跟踪F8,实现向下的跳。也就是说向... 阅读全文
posted @ 2009-04-01 19:46 jasonM 阅读(795) 评论(0) 推荐(0) 编辑
摘要: n 8086CPU的flag寄存器的结构: n flag的1、3、5、12、13、14、15位在8086CPU中没有使用,不具有任何含义。而0、2、4、6、7、8、9、10、11位都具有特殊的含义 1.ZF标志 n flag的第6位是ZF,零标志位。 它记录相关指令执行后, n 结果为0 ,ZF = 1 n 结果不为0... 阅读全文
posted @ 2009-03-29 16:27 jasonM 阅读(1386) 评论(0) 推荐(0) 编辑
摘要: 一.ret指令用栈中的数据,修改IP的内容,从而实现近转移; CPU执行ret指令时,进行下面两步操作: a) (1)(IP)=((ss)*16+(sp)) b) (2)(sp)=(sp)+2 二.retf指令用栈中的数据,修改CS和IP的内容,从而实现远转移; CPU执行retf指令时,进行下面两步操作: a) (1)(IP)=((ss)*1... 阅读全文
posted @ 2009-03-29 10:44 jasonM 阅读(11720) 评论(3) 推荐(1) 编辑
摘要: n bx、si、di、bp n 机器指令处理的数据所在位置 n 汇编语言中数据位置的表达 n 寻址方式 n 指令要处理的数据有多长? n 寻址方式的综合应用 n div 指令 n 伪指令 dd n Dup 下面我们来一步步阐述: 1.bx、si、di、bp 这4个寄存器(bx、bp、si、d... 阅读全文
posted @ 2009-03-29 09:08 jasonM 阅读(1060) 评论(0) 推荐(0) 编辑
摘要: 要理解ret,retf,call指令,必须要先理清以下汇编基础知识: 一. [bx]和内存单元 [bx]是什么呢? 和[0]有些类似,[0]表示内存单元,它的偏移地址是0。 n 我们要完整地描述一个内存单元,需要两种信息: n (1)内存单元的地址; n (2)内存单元的长度(类型)。 n 我们用[0]表示一... 阅读全文
posted @ 2009-03-27 12:55 jasonM 阅读(1671) 评论(2) 推荐(0) 编辑