一、 條件分支的逆向基礎
(1)簡單if-else
我們知道簡單的if-else的跳轉結構是這樣的。
例如:
if(i1
……;else
……;在反彙編結果中我們會看到類似下面的結果
兩點說明::
①jxx aaaaaaaa
這句由於
false
則跳轉,因此還原為
if**時,要注意。 ②
jmp bbbbbbbb
這句在功能上屬於
if的部分,但是如果沒有
else
,編譯器不會填寫此句。
(2)多層巢狀
if-else
if(i
else
…… }
對應反彙編形態:(位址
a、b、
c、d從小到大分布)
debug版
說明:
這裡我們看到在
debug
版裡,多層巢狀
if-else
只是簡單重複單層
if-else
的結構。另外,
jxx仍然是
false
則跳轉,翻譯為
if時,要注意。
release版
說明:
我們看到
release
版對debug
改進,避免了
jmp的多次執行。
二、複雜條件的條件分支逆向
1.復合條件的條件分支
(1)與——&&
if(i1
……else
……反彙編形態:
(2)或——||
if(i1
……else
……反彙編形態:
(3)混合
if(i1
……else
……
if(i1
……else
……反彙編形態:
分支結構 單分支結構
選擇結構 程式 於生活 程式根據判斷條件的布林值選擇性的執行部分 不同條件下實現不同的操作處理 單分支結構 語法結構 if 條件表示式 冒號不要忘了 條件執行體 條件表示式就是條件判斷,也就是有條件運算子的語句 注意python中是使用縮排表示層次結構,這點與c中是完全不一樣的 筆者除錯過後其中if...
分支結構 多分支結構
多分支結構 一般針對的是乙個連續區間段的不停的處理操作 語法結構 if 條件表示式1 條件執行體1 elif 條件表示式2 條件執行體2 elif 條件表示式n 條件執行體n else 條件執行體n 1 注意這邊的選擇與c中一樣至多只會執行其中的乙個語句執行體 python中允許多分支語句沒有els...
逆向基礎 常用逆向工具介紹
偵錯程式修補和轉儲工具 整合工具 immunity debugger ida interactive disassembler,互動式反彙編器 是業界乙個功能十分強大的反彙編工具,是安全滲透人員進行逆向安全測試的必備工具,其強大的靜態反彙編和逆向除錯功能能夠幫助安全測試人員發現 級別的高危致命安全漏...