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給函數設置斷點
2019年1月23-25日【後面不休息了】