汇编与反汇编
lanwanjunxixihaha
这个作者很懒,什么都没留下…
展开
-
复习8086汇编中的 CLI STI CLD STD指令
CLI 全称 Clear InteruptSTI 全称 Set InteruptCLD 全称 Clear DirectorSTD 全称 Set DirectorCLI和STI是用来屏蔽中断和恢复中断用的,如 设置栈基址SS和偏移地址SP时,需要CLI,因为如果这两条指令被分开了,那么很有可能SS被修改了,但由于中断,而代码跳去其它地方执行了,SP还没来得及修改,就有可能出错。C原创 2015-06-16 15:15:18 · 19220 阅读 · 3 评论 -
复习实模式和保护模式的知识
网上有大量关于实模式和保护模式的文章,而且都写得很好,这里总结下,以自己的理解方式阐述。参考以下几个博客:http://blog.csdn.net/kerr1992/article/details/20659901http://blog.csdn.net/jn1158359135/article/details/7106383http://blog.csdn.net/syf原创 2015-06-16 15:57:24 · 614 阅读 · 0 评论 -
为何实模式要采用段地址和偏移地址的方式来寻址
在8086中,地址总线是20位的,而寄存器是16位的,如何使用寄存器才能定位内存地址?显示一个寄存器是不够了,两个16位寄存器如何能得出一个20位的地址,所以其中不一个寄存器需要扩充到20位,就是段地址了,那为何不两个都扩充成20位呢,那样相加后寻址时地址就不连续了。正因为如此,8086的每个段寻址空间最大只能是64KB,这个大小就是偏移地址从0000h~ffffh的活动范围。这只是我的推理,原创 2015-06-16 15:52:09 · 2251 阅读 · 0 评论 -
关于汇编的一些零散知识点
mov eax,ebx;取ebx寄存器中的值,赋给eax mov eax,[ebx];取以ebx寄存器的值为地址所对应的内存值赋给eaxvar dd 100mov eax,var;取var的值100,赋给eaxlea eax,var;取var的地址,赋给eaxlocal arr[256]:dwordmov eax,arr;相当于 mov eax,dw原创 2015-06-18 17:03:04 · 480 阅读 · 0 评论 -
关于SEH(结构化异常处理)的一些知识
梳理老罗win32汇编关于SEH一章的知识。异常处理方式有两种: 筛选器异常处理和结构化异常处理,筛选器是全局性的,无法为一个线程或一个子程序单独设置一个异常处理回调函数,而结构化异常处理(Structured Exception Handing)SEH提供了每个线程之间独立的异常处理方法。以下以两个例子来学习SEH例子1:不含栈展开操作的异常处理(栈展开会在例子二中介绍).386原创 2015-06-17 15:19:03 · 942 阅读 · 0 评论 -
内存映射文件来处理大文件可以提高效率
先说结论:使用内存映射文件来处理大文件可以提高效率。 为什么呢?我们先来看看如果不使用内存映射文件的处理流程是怎样的,首先我们得先读出磁盘文件的内容到内存中,然后修改,最后回写到磁盘上。第一步读磁盘文件是要经过一次系统调用的,它首先将文件内容从磁盘拷贝到内核空间的一个缓冲区,然后再将这些数据拷贝到用户空间,实际上是两次数据拷贝。第三步回写也一样也要经过两次数据拷贝。所以我们转载 2015-06-18 18:06:10 · 2263 阅读 · 0 评论 -
筛选器异常处理
.386.model flat,stdcalloption casemap:none;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;include;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>include windows.incinclude user32.incincludelib user32原创 2015-06-15 23:30:12 · 745 阅读 · 0 评论 -
反汇编中关于IDA与OLLYDBG的使用
1 ollydbg 消息断点的方法,菜单栏中点击查看=》窗口,根据字符串找到需要消息断点的控件,右键选择 消息断点在 ClassProc在弹出的窗口中选择WM_XXXX消息,点击后,会在系统代码段中断点,然后,alt+m打开内存窗口,在.text段按F2下断点,然后按F9继续运行,最后会在用户代码段断点,就是要找的位置了,通常会在窗口过程中断到点,这时通过switchcase就可以找到目的了。原创 2015-11-18 11:19:17 · 5285 阅读 · 0 评论