六 for迴圈的逆向

2021-09-08 03:18:29 字數 1274 閱讀 7337

1 #include "

stdafx.h"2

345int fun(int a,intb)6

13return

c;14}15

1617

int _tmain(int argc, _tchar*ar**)

18

下面是彙編**:

1

int fun(int a,intb)2

3200412d28

jmp fun+30h (412d10h) ;

跳轉到a

33 return c;

3400412d2a

mov eax,dword ptr [c] ;

將結果儲存到eax中,作為返回的結果35}

3600412d2d

pop edi ;

彈出儲存的暫存器值,實現堆疊的平衡

3700412d2e

pop esi ;

3800412d2f

pop ebx ;

3900412d30

mov esp,ebp ;

4000412d32

pop ebp ;

4100412d33

ret

我們主要看迴圈部分的**。

迴圈主要用這麼幾條指令來實現:

mov 進行初始化

jmp跳過修改迴圈變數的**

cmp實現條件判斷

jge根據條件跳轉

1

mov《迴圈變數》,《初始值》 ;

給迴圈變數賦初值

2jmp b ;

跳到第一次迴圈處

3 a : (改動迴圈變數) ;

修改迴圈變數

4...

56 b : cmp

《迴圈變數》,《限制變數》 ;

檢查迴圈條件

7jge

跳出迴圈

8(迴圈體)

9...

10jmp a ;

跳回去修改迴圈變數

Python 正向迴圈和逆向迴圈

逆向迴圈 lista 0,1,2,1,4,1,6,1,8,1 for i in reversed range len lista print i 98 7654 3210 正向迴圈 lista 0,1,2,1,4,1,6,1,8,1 for i in range range len lista pr...

170523 逆向 迴圈語句

1625 5 王子昂 總結 2017年5月23日 連續第234天總結 a.加密與解密迴圈語句 b.迴圈是高階語言中可以進行反向引用的一種語言形式,其他型別的分支語句都是由低向高階位址區域走的 因此,可以通過這點快速地將迴圈語句識別出來 如果確定某段 是迴圈,就可分析其計數器,一般是用ecx暫存器做計...

六 PHP迴圈之 for while迴圈

描述 迴圈就是自動執行某段 迴圈執行。語法 for 變數初始化 條件表示式 變數變化 變數初始化 迴圈的開始,給乙個開始迴圈的變數。如 i 1 條件表示式 必須給迴圈乙個可以退出的條件,否則就是死迴圈。i 10 變數變化 讓初始化的值發生改變,一直的達到條件為止。i 示例 輸出從1到100的數 如果...