反編譯例項2 補充2

2021-05-28 18:29:13 字數 770 閱讀 4876

前面反編譯的時候我們使用的是goto語句實現的,並簡單說明的變數的定義與否。

但是這種跳轉是否可以使用for語句來實現呢?**實現如下:

#include int main(int argc, char** argv)  

return 0;

}

使用ida開啟編譯過程生成的.o檔案,如下圖:

發現彙編語句和原始彙編是一樣的,執行結果也是一樣,說明可以通過for語句來實現。

接下來做一些簡單嘗試:

1、把r4 += r6語句調整到printf語句後:

#include int main(int argc, char** argv)  

return 0;

}

發現彙編**沒有發生變化。

2、把r4初始化的位置進行調整:

#include int main(int argc, char** argv)  

return 0;

}

發現生成的彙編**也沒有變化。

3、r2定義到for迴圈語句中:

#include int main(int argc, char** argv)  

return 0;

}

對此,反編譯時這個位置變數的初始化以及操作等,就不需要太過糾結了。

當然這只是從乙個簡單例子結果得出的結論,複雜工程中是否相同還需要後續知識學習。

反編譯例項2補充1

首先,從程式開始就定義了一些變數r2,r6,r5,r4等,但是r6實際值為20,r5值為300。我們可能會考慮,如果不進行變數的定義而是直接使用數值,彙編是不是也是一樣的?現在我們簡單的修改一下程式的 如下 include int main int argc,char argv 執行armcc ne...

反編譯bs2心得

bs2全稱是basic stamp 2微控制器,在數年前很受歡迎,因為其開發語言為basic,所有io埠功能相同,很容易上手。老的很多玩具,工控裝置都使用它來處理一些簡單邏輯,現在遇到公升級換代,就需要對這些 重新翻修,如果找不到當時開發資料,那就需要進行反編譯了。在之前,就遇到這樣的需求,通過半年...

如何利用dex2jar反編譯APK

2找到我們準備測試用的apk,並將 字尾.apk改為.zip 3將test.zip解壓,並檢視目錄,找到classes.dex 4並將這個檔案拷至dex2jar工具存放目錄下 5開啟控制台,使用cd指令進入到dex2jar工具存放的目錄下,如圖 6進入到dex2jar目錄下後,輸入 dex2jar....