码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-01-26 17:55:26      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:ros   大小   第八章   mem   保存   日志   splay   最大   需要   

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给函数设置断点

 

 

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

标签:ros   大小   第八章   mem   保存   日志   splay   最大   需要   

原文地址:https://www.cnblogs.com/wuruixin/p/10324267.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!