F2:设置断点;F8:单步步过;F7:单步步入;F4:运行到选定位置(运行到光标所在位置暂停);F9:运行(如果没设置断点的话程序就会一直运行到结束);CTRL+F9:执行到返回(执行,直至遇到返回指令ret后暂停)

这篇文章介绍了ollydbg的使用方法及crack me的一个实践。http://blog.163.com/hlz_2599/blog/static/142378474201341210104368/

二进制的英文表示法,就是以BINOCTHEXDEC分别代表二、八、十六、十进制。或者只写第一个字母。例如1101B表示是二进制。有些地方为了避免“O”跟“0”混淆,把O写成Q

16位机器下,地址线为20位。但CPU处理能力只有16位。于是访问内存的方案是分段。即基址(段)+偏址是逻辑地址,从中可计算物理地址。基址(段)有16位,偏址也16位,寻址时将基址左移4位加偏址既可寻址。注意,段只有16位。其大小为216次方。即64K

解释:

当你访问地址(指针)在一个段内,这是这个指针是近指针。当你访问地址(指针)不在一个段内,这是这个指针是远指针。因为它跨段寻址。所以“远”。

对于32为的CPU32位的操作系统,其地址线为32,寻址能力达到4Gb,远远大于物理地址,它的一个段为4Gb。实际上,这时谈论段已没有意义。所以在32位的操作系统上无近远指针之说。之所以存在,是因为兼容。

在第一章中,有部分内容只是举个例子说明原理,其中列出的数据与实际数据不符。