基於arm的C++反彙編 qemu-arm環境搭建
看雪高手寫了在windows 上基於x86架構的 C++ 反彙編分析,但是沒有人弄過在linux下基於arm架構的C++反彙編教程,這裡嘗試分析下,可以看到不管在win下還是linux下,不管基於x86還是基於arm 都遵循同樣的C++標準,記憶體佈局都是一樣的。
說下執行環境:
主機Win10-64bit
主機上有一個vmware workstation 12.1
vmware 裡 安裝一個32bit ubuntu14.04 環境
然後在這個ubuntu14.04 上搭建環境 為了方便這裡不再從頭編譯而是使用網路上現成的二進位制工具,參考Architectures/ARM/HowToQemu
1)下載arm-linux交叉編譯工具,並且配置環境 arm-none-linux-gnueabi-gcc下載
2)下載 arm-linux 核心映象 zImage-qemu-versatile-3.0.8-4.fc17.armv5tel
3)安裝qemu-arm,這裡不再編譯,直接使用命令
sudo apt-get install qemu-system-arm
安裝完畢即可。
4)製作根檔案映象,本來上面ARM/HowToQemu 給出了檔案系統下載地址,可是即便開啟SS翻牆也無法下載,無奈只得自己重新制作一個。
安裝 ncurses
sudo apt-get install libncurses5-dev libncursesw5-dev
下載最新的busybox,make menuconfig 配置
Busybox Settings --->
Build Options --->
Cross Compiler prefix
按回車填入如下內容:
/opt/toolchain/arm/arm-2014.05/bin/arm-linux-
配置靜態編譯 busybox
Busybox Settings --->
Build Options --->
Build BusyBox as a static binary (no shared libs)
然後make && make install 就可以在當前目錄中會生成“_install”目錄。
剩下的工作就和以前博文 linux核心除錯環境搭建-2 用busybox搭建 一樣,如果覺得製作麻煩,我在dropbox上給出了製作好了的檔案系統壓縮包,下載下來之後解壓到 busybox.img 裡面即可。
至此,qemu-arm,zImage-arm,busybox-arm都已經得到。
按照 上面博文連結 中給出的方法建立主機裝置,讓主機和虛擬機器能通訊。
指令碼啟動
$ qemu-system-arm -M versatilepb -kernel zImage-qemu-versatile-3.0.8-4.fc17.armv5tel -hdc busybox.img -append root="0800" -k en-us -net nic -net tap,ifname=tap0,script=no
至此一個基於 qemu 的 arm-linux 虛擬機器可以完美的跑起來:
碼字不容易,覺得好請打賞下:
相關文章
- 基於Docker搭建LNMP環境DockerLNMP
- [ARM] ARM彙編指令
- ARM環境搭建 — CodeWarrior 的安裝
- C++ 反彙編:關於函式呼叫約定C++函式
- Install qemu-arm for UbuntuUbuntu
- C++ 反彙編:關於Switch語句的優化措施C++優化
- Win32彙編的環境和基礎(轉)Win32
- Win32彙編的環境和基礎 (轉)Win32
- 基於ECS快速搭建Docker環境Docker
- 基於VC平臺下C++反彙編與逆向分析研究——No.1C++
- 搭建基於 Mac 的 Flutter 開發環境MacFlutter開發環境
- 搭建基於以太坊的私有鏈環境
- iOS彙編入門教程(一)ARM64彙編基礎iOS
- 基於ubuntu如何搭建TensorFlow環境Ubuntu
- 基於Webpack搭建React開發環境WebReact開發環境
- 基於IDEA的JavaWeb開發環境搭建IdeaJavaWeb開發環境
- PC基於Linux的叢集環境搭建?Linux
- 虛擬機器arm虛擬環境搭建虛擬機
- 高通編譯環境搭建編譯
- openform環境搭建-編譯ORM編譯
- arm彙編--變數變數
- 基於 Xcode 搭建 OpenCV 開發環境XCodeOpenCV開發環境
- 基於滴滴雲搭建 Ceph 開發環境開發環境
- 基於vscode搭建freertos環境VSCode
- linux環境下vscode 中C/C++編譯及除錯環境的搭建LinuxVSCodeC++編譯除錯
- 彙編程式開發環境搭配開發環境
- 基於 vagrant搭建移動端的開發環境開發環境
- 基於Python+Robot框架TA環境的搭建Python框架
- 彙編環境下的原始碼除錯原始碼除錯
- ARM彙編指令集彙總
- 一、Windows 環境搭建問題彙總Windows
- 基於docker 搭建redis環境—redis單機版DockerRedis
- 基於 Webpack4 搭建 Vue 開發環境WebVue開發環境
- Day2——基於ECS快速搭建Docker環境Docker
- 基於Jenkins快速搭建持續整合環境Jenkins
- 基於PHPnow搭建Eclipse開發環境PHPEclipse開發環境
- babel本地編輯環境搭建Babel
- Android編譯環境搭建Android編譯