Crack笔记【一】

 ollydbg快捷键

F2:在需要的地方下断点

F3:选择打开程序

F4:运行到所选择的那一行

F7:单步步入

F8:单步跟踪

F9:执行程序【运行程序】

查看:
     1、执行模块(ALT+E)查看程序使用的动态链接库

     2、查看断点ALT+B

调式:

    1、运行(F9加载程序后运行)

    2、暂停(F2)
    3、单步进入(F7)遇见CALL进入,进入子程序。
    4、单步跳过(F8)遇见CALL进不去。
    5、执行到返回(ALT+F9)就是执行到该子程序的返回语句

汇编指令与脱壳          

1. 通用数据传送指令. 

MOV 传送字或字节. 

MOVSX 先符号扩展,再传送. 

MOVZX 先零扩展,再传送. 

PUSH 把字压入堆栈. 

POP 把字弹出堆栈. 

PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈. 

POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈. 

PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈. 

POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈. 

2. 算术运算指令

ADD 加法. 

ADC 带进位加法. 

INC 加 1 

AAA 加法的ASCII码调整 

DAA 加法的十进制调整 

SUB 减法 

SBB 带借位减法 

DEC 减 1 

NEC 求反(以 0 减之). 

CMP 比较.(两操作数作减法,仅修改标志位,不回送结果).

3. 逻辑运算指令

AND 与运算. 

OR 或运算. 

XOR 异或运算. 

NOT 取反. 

TEST 测试.(两操作数作与运算,仅修改标志位,不回送结果). 

SHL 逻辑左移. 

SAL 算术左移.(=SHL) 

SHR 逻辑右移. 

SAR 算术右移.(=SHR) 

ROL 循环左移. 

ROR 循环右移. 

RCL 通过进位的循环左移. 

RCR 通过进位的循环右移.

4. 程序转移指令

1>无条件转移指令 (长转移) 
JMP 无条件转移指令 
CALL 过程调用 
RET/RETF过程返回. 

2>条件转移指令 (短转移,-128到+127的距离内) 
( 当且仅当(SF XOR OF)=1时,OP1<OP2 ) 
JA/JNBE 不小于或不等于时转移. 
JAE/JNB 大于或等于转移. 
JB/JNAE 小于转移. 
JBE/JNA 小于或等于转移. 
以上四条,测试无符号整数运算的结果(标志C和Z). 
JG/JNLE 大于转移. 
JGE/JNL 大于或等于转移. 
JL/JNGE 小于转移. 
JLE/JNG 小于或等于转移. 
以上四条,测试带符号整数运算的结果(标志S,O和Z). 
JE/JZ 等于转移. 
JNE/JNZ 不等于时转移. 
JC 有进位时转移. 
JNC 无进位时转移. 
JNO 不溢出时转移. 
JNP/JPO 奇偶性为奇数时转移. 
JNS 符号位为 "0" 时转移. 
JO 溢出转移. 
JP/JPE 奇偶性为偶数时转移. 
JS 符号位为 "1" 时转移. 

3>循环控制指令(短转移) 
LOOP CX不为零时循环. 
LOOPE/LOOPZ CX不为零且标志Z=1时循环. 
LOOPNE/LOOPNZ CX不为零且标志Z=0时循环. 
JCXZ CX为零时转移. 
JECXZ ECX为零时转移. 

4>中断指令 
INT 中断指令 
INTO 溢出中断 
IRET 中断返回

 

 

posted on 2010-06-22 22:10    阅读(239)  评论(0编辑  收藏  举报

导航