2019年1月23-25日【后面不休息了】

2019年1月23日星期三

到2019年1月25日星期五

任务一:逆向安全暂停一段落,目前达到瓶颈,需要增长其他知识

任务二:研读使用Onlydbg从零开始creaking前10章

第一章:OD的各个窗口介绍

1、反汇编窗口(DESENSAMBLADO)

2、寄存器窗口(registros)

3、堆栈窗口(stack)

4、数据窗口(dump)

L:View->log,显示日志窗口,可以显示Ollydbg启动时,

 

E:View->Executables,显示程序运行使用的模块:exe,dll,ocx和其他

M:View->Memory,显示程序映射到内存中的信息

T:View->Threads,显示程序的线程窗口

W:View->Windows,显示程序窗口

H:View->Handles,句柄窗口

C:View->CPU,允许返回到Ollydbg的主窗口,CPU窗口

/:View->Patches,显示程序被修改的信息

K:View->Call stack,显示调用堆栈的窗口信息

B:View->Breakpoints,显示程序普通断点的列表窗口

R:View->Reference,参考窗口

...:View->Run trace

 

F2:设断点,消除断点

F7:执行上一条代码,遇到Call等子程序进入其中,进入后会停留到子程序的第一条

F8:执行一行代码,遇到Call等子程序不进入其代码

F9:运行调试程序

F12:临时暂停程序

 

第三章:寄存器

ESP是指向堆栈最顶端的地址

EIP是指向当前要执行的地址

EAX ECX EDX EBX ESP EBP ESI EDI EIP

C:标志进位标志(将EAX设为FFFFFFFF,然后加1,无符号运算的结果)

P:奇偶标志(二进制1的数量为偶数的时候,P为1)

A:辅助进位标志

Z:零标志(当运算结果为0的时候该标志被设置)

S:符号标志

T:

D:

O:溢出标志(最大整数7FFFFFFFF+1)

 

第四章:汇编指令

NOP       Push       pop        mov       movsx    movzx    lea          xchg

 

第五章:数学指令

INC         DEC        ADD       ADC       SUB        SBB        MUL              IMUL     

AND       OR         XOR       NOT      

 

第六章:比较与条件跳转

CMP       根据它们相减的结果来决定零标志位Z是否置1【JZ】

符号标志位S是比较第一个操作数是否大于第二个操作数,大于为1

TEST       两个数值进行与操作,结果不保存,但是会改变相应标志位(比如说,SF,ZF,PF标志位),程序可以根据结果来决定是否跳转到相应的分支

JUMPS    所有的跳转指令都会指向程序将会跳转到的地址

 

下面的列表中可以看到各种不同类型的跳转指令

JMP – 跳转

JE, JZ – 结果为零则跳转

JNE, JNZ – 结果不为零则跳转

JS – 结果为负则跳转

JNS – 结果不为负则跳转

JP, JPE – 结果中1的个数为偶数则跳转

JNP, JNPE – 结果为1的个数为奇数则跳转

JO – 结果溢出了则跳转

JNO – 结果没有溢出则跳转

JB, JNAE – 小于则跳转 (无符号数)

JNB, JAE – 大于等于则跳转 (无符号数)

JBE, JNA – 小于等于则跳转 (无符号数)

JNBE, JA – 大于则跳转(无符号数)

JL, JNGE –  小于则跳转 (有符号数)

JNL, JGE – 大于等于则跳转 (有符号数)

JLE, JNG – 小于等于则跳转 (有符号数)

JNLE, JG – 大于则跳转(有符号数)

 

第七章:call和ret

Call:根据EIP的值进行跳转

Ret:根据栈顶的值进行跳转

 

第八章:循环与字符串

XOR ECX,ECX

ADD ECX,15h

Label:

DEC ECX

;循环体

TEST ECX,ECX

JNE Label

 

LOOP:将计数器ECX的值减1,判断ECX的值是否为0,如果为0就跳转到指定的地址

LOOPZ, LOOPE     重复循环,直到零标志位Z置1

LOOPNZ, LOOPNE  重复循环,直到零标志位Z清0

MOVS:将源地址数据拷贝到目的地址

REP:拷贝大小=每次MOVS的大小(拷贝的大小)*ECX

LODS:从源地址拷贝数据到EAX

STOS:将EAX的值拷贝到EDI中

 

第九章:基本概念

DLL(动态链接库):

? MessageBoxA:寻找该函数地址

返回前一条指令:减号

Ctrl+N:获取CrackMe的API列表

Ret 10比Ret在返回的基础上ESP+14h(20)

 

第十章:断点

B栏:

Remove:从列表中删除断点。

Disable:禁用断点但并不将断点从列表中删除。禁用时,断点并不会触发。

Edit condition:给断点设置触发条件,我们后面再来讨论。

Follow in disassembler:在反汇编窗口中显示断点。

Disable all or enable all:禁用/启用列表中的全部断点。这里没有启用的选项,因为列表中唯一的断点没有被禁用。

Copy to Clipboard:把选中断点的信息复制到剪贴板

 

除了F2可以设置断点,命令行bp 401018也可以,bpx MessageBoxA给函数设置断点

 

 

转载于:https://www.cnblogs.com/wuruixin/p/10324267.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值