WinのコマンドプロンプトでC(++)コンパイラを動かしたい、x86とx86-64ともに
Build Tools for Visual Studio 2022(ビルドツール for Visual Studio 2022)のインストール(Windows 上)
こちらを参考にさせていただきました。
1.Build Tools for Visual Studio 202をダウンロード
https://visualstudio.microsoft.com/ja/downloads/
こちらに行き、
「Build Tools for Visual Studio 2022」をダウンロードする。
"vs_BuildTools.exe"このファイルが取得できる。
2.Build Tools for Visual Studio 202 をインストール
"vs_BuildTools.exe"を実行してインストール。
インストールする項目は、「C++ によるデスクトップ開発」を選択する。
3.x86-64とx86の実行ファイルを作成
- x86-64実行ファイルを作成する。
「x64 Native Tools Command Prompt for VS 2022」を開く。
> where cl C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.34.31933\bin\Hostx64\x64\cl.exe > cd %HOMEPATH% > notepad.exe hello64.c
/* hello64.c */ #include <stdio.h> int main() { printf("Hello, world!\n"); printf("sizeof(size_t)=%ld\n", sizeof(size_t)); return 0; }
> cl hello64.c > hello64.exe
Hello, world! sizeof(size_t)=8
- x86実行ファイルを作成する。
「x86 Native Tools Command Prompt for VS 2022」を開く。
> where cl C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.34.31933\bin\Hostx86\x86\cl.exe > cd %HOMEPATH% > notepad.exe hello86.c
/* hello86.c */ #include <stdio.h> int main() { printf("Hello, world!\n"); printf("sizeof(size_t)=%ld\n", sizeof(size_t)); return 0; }
> cl hello86.c > hello86.exe
Hello, world! sizeof(size_t)=4
p.19 表層解析-ファイル形式の判別(「初めてのマルウェア解析」)
2.1ファイル形式の判別
バイナリエディタ
- HxD(Windows)
https://mh-nexus.de/en/hxd/
HxDでHxDを開いてみると、
ファイルの先頭2バイトがMZ(4D 5A)となっていることがわかる。
- xxd(Linux)
UbuntuでxxdコマンドでHxDを開いてみると、
$ xxd -g 1 HxD.exe | less
こちらでも、ファイルの先頭2バイトがMZ(4D 5A)となっていることがわかる。
ファイル識別ツール
- fileコマンド(Linux)
# 32ビットの実行ファイル(PE32) $ file hello86.exe hello86.exe: PE32 executable (console) Intel 80386, for MS Windows # 64ビットの実行ファイル(PE32+) $ file hello64.exe hello64.exe: PE32+ executable (console) x86-64, for MS Windows # 64ビットの実行ファイル(PE32+)で、GUI $ file HxD.exe HxD.exe: PE32+ executable (GUI) x86-64, for MS Windows
https://ntcore.com/files/CFF_Explorer.zip
ダウンロードしたzipを展開して、
"CFF Explorer.exe"
これを実行するだけ、
そして、Openで調べたいファイルを選択すると、
File type | Portable Executable 64 |
File type | Portable Executable 32 |
MD5 | 11BFE8942E084DF75524F56204454199 |
SHA1 | 8FE3F4827F21E331AAFA0FA2AA8B2FE562E65CD8 |
とか表示してくれる。
が、
ConsoleなのかGUIなのかは表示してくれない気がする。
Python
python-magicモジュールを使う。
>>> import magic >>> magic.from_file(r'./hello86.exe') 'PE32 executable (console) Intel 80386, for MS Windows' >>> magic.from_file(r'./hello64.exe') 'PE32+ executable (console) x86-64, for MS Windows' >>> magic.from_file(r'./HxD.exe') 'PE32+ executable (GUI) x86-64, for MS Windows'
p.8 Linux VMのセットアップと設定(「初めてのマルウエア解析」)
https://www.packtpub.com/product/learning-malware-analysis/9781788392501
www.ohmsha.co.jp
0. ホストOS
エディション | Windows 10 Home |
バージョン | 22H2 |
OS ビルド | 19045.2546 |
プロセッサ | Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2.80 GHz |
実装RAM | 32.0 GB (31.9 GB 使用可能) |
システムの種類 | 64 ビット オペレーティング システム、x64 ベース プロセッサ |
1. Ubuntu 18.04.5 Desktop LTSのダウンロード
http://old-releases.ubuntu.com/releases/18.04.5/ubuntu-18.04.5-desktop-amd64.iso
2. VirtualBoxはWin10 Home(x64)にインストール
- VirtualBox 7.0.6 platform packagesのWindows hosts
https://download.virtualbox.org/virtualbox/7.0.6/VirtualBox-7.0.6-155176-Win.exe
このインストーラを実行すると、
と言われるので、
Oracle VM VirtualBox 7.0 は Microsoft Visual C++ Redistributable 2019以降が必要ということなので、
https://visualstudio.microsoft.com/ja/downloads/#microsoft-visual-c-redistributable-for-visual-studio-2022
ここに行き、
x86をダウンロード(VC_redist.x64.exe)
して、
まず、"VC++ 2015-2022"をインストールする。
そして、VBをインストールする。
VBを終了させた状態で、
- VirtualBox 7.0.6 Oracle VM VirtualBox Extension PackのAll supported platforms
バージョン | 7.0.6 r155176 |
3. ubuntu-18.04.5-desktop-amd64をVBにインストールとゲストOSとホストOSの間で、ファイルのドラッグ&ドロップとコピペができるように設定する
名前 | ubuntu-18.04.5-desktop-amd64(任意) |
タイプ | Linux |
バージョン | Ubuntu (64-bit) |
Skip Unattached Installation | チェックを入れる |
メインメモリー | 4096MB(デフォルトは2048MB) |
プロセッサ | 1CPU |
Disk size | 25GB(デフォルト) |
login automaticallyにチェックを入れる(ユーザは自分ひとりなので)
Restart Now
CD-ROMは自動的にunmountされているので、Enter
ubuntuにログインとなる
忘れる前に、デバイス → クリップボード共有とドラッグ&ドロップ を「双方向」にしておく。
ゲストOSにペーストするには:Ctrl-Shift-V ゲストOSからコピーするには:Ctrl-Shift-C
Guest Additions Softwareを実行するためには、gccとmakeとperlが必要なので、
Ctrl-Alt-Tでターミナルアプリを起動させ、
$ sudo apt update $ sudo apt upgrade $ sudo apt autoremove $ sudo apt install gcc make perl
Guest Additions Softwareを挿入 -> RUN
Reboot
Upgrade Guest Additionsを実行。
Settings → Power → Blank screen=Never
Reboot
4. LinuxVMへツールのインストール
$ which python $ # pythonはインストールされていないことがわかる。 $ sudo apt install python-pip # これを実行すると、 $ which python /usr/bin/python $ ls -l /usr/bin/python lrwxrwxrwx 1 root root 9 4月 16 2018 /usr/bin/python -> python2.7 $ which python2 /usr/bin/python2 $ ls -l /usr/bin/python2 lrwxrwxrwx 1 root root 9 4月 16 2018 /usr/bin/python2 -> python2.7 $ python2 --version Python 2.7.17 $ which python3 /usr/bin/python3 $ ls -l /usr/bin/python3 lrwxrwxrwx 1 root root 9 2月 16 08:26 /usr/bin/python3 -> python3.6 $ python3 --version Python 3.6.9 $ which pip /usr/bin/pip $ pip -V pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7) # python -> python2 -> python2.7 (2.7.17) # python3 -> python3.6 (3.6.9) $ sudo python -m pip install --upgrade pip $ pip -V pip 20.3.4 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7) # pip 9.0.1 -> 20.3.4
$ sudo apt install python-magic $ sudo apt install upx $ sudo python -m pip install pefile $ sudo apt install yara $ sudo pip install yara-python $ sudo apt install ssdeep $ sudo apt install build-essential # すでにインストールされている $ sudo apt install libffi-dev $ sudo apt install python # すでにインストールされている $ sudo apt install python-dev # すでにインストールされている $ sudo apt install libfuzzy-dev $ pip list setuptools 39.0.1 $ sudo python -m pip install --upgrade setuptools # setuptoolsをアップデートしておかないとssdeepをpipでアップデートできない # setuptools 39.0.1 -> 44.1.1 $ sudo python -m pip install --upgrade ssdeep $ sudo apt install wireshark $ sudo apt install tshark