複雜分支結構逆向 基礎

2021-07-09 08:08:51 字數 1042 閱讀 3381

一、           條件分支的逆向基礎

(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,互動式反彙編器 是業界乙個功能十分強大的反彙編工具,是安全滲透人員進行逆向安全測試的必備工具,其強大的靜態反彙編和逆向除錯功能能夠幫助安全測試人員發現 級別的高危致命安全漏...