1. 程式人生 > >2019年1月23-25日【後面不休息了】

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

保存 星期 bsp 計數器 reads 第一條 aud 有符號數 reg

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日【後面不休息了】