3DS GodMode9 をビルドする自由研究 - 大人の自由研究

大人の自由研究 ホーム » 3DS » 3DS GodMode9 をビルドする自由研究

3DS GodMode9 をビルドする自由研究


 A full access file browser for the 3DS console です。
 GodMode9 は、SDはもちろん SysNAND などにもアクセス出来る、ツールである。

 これを自らビルドしようって研究です。
 その裏には、.firm 形式の プログラムってどうやって作るのか?という疑問が。

 まずは、Makefileを見る


firm: binary
@firmtool build $(OUTPUT).firm -n 0x23F00000 -e 0 -D $(OUTPUT).elf -A 0x23F00000 -C NDMA -i


 firmtool というツールが必要なのねぇ

 何かをやろうとする為には、何かをやらなければ、ならない(汗)
 ビルドあるある

 とりあえず、Python は導入済みなので、少しは手間が省けたか。

 試してガッテン
 python setup.py install


running install
running bdist_egg
running egg_info
creating firmtool.egg-info
writing firmtool.egg-info\PKG-INFO
writing top-level names to firmtool.egg-info\top_level.txt
writing dependency_links to firmtool.egg-info\dependency_links.txt
writing entry points to firmtool.egg-info\entry_points.txt
writing manifest file 'firmtool.egg-info\SOURCES.txt'
reading manifest file 'firmtool.egg-info\SOURCES.txt'
writing manifest file 'firmtool.egg-info\SOURCES.txt'
installing library code to build\bdist.win-amd64\egg
running install_lib
running build_py
creating build
creating build\lib
creating build\lib\firmtool
copying firmtool\__init__.py -> build\lib\firmtool
copying firmtool\__main__.py -> build\lib\firmtool
creating build\bdist.win-amd64
creating build\bdist.win-amd64\egg
creating build\bdist.win-amd64\egg\firmtool
copying build\lib\firmtool\__init__.py -> build\bdist.win-amd64\egg\firmtool
copying build\lib\firmtool\__main__.py -> build\bdist.win-amd64\egg\firmtool
byte-compiling build\bdist.win-amd64\egg\firmtool\__init__.py to __init__.pyc
byte-compiling build\bdist.win-amd64\egg\firmtool\__main__.py to __main__.pyc
creating build\bdist.win-amd64\egg\EGG-INFO
copying firmtool.egg-info\PKG-INFO -> build\bdist.win-amd64\egg\EGG-INFO
copying firmtool.egg-info\SOURCES.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying firmtool.egg-info\dependency_links.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying firmtool.egg-info\entry_points.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying firmtool.egg-info\top_level.txt -> build\bdist.win-amd64\egg\EGG-INFO
zip_safe flag not set; analyzing archive contents...
creating dist
creating 'dist\firmtool-1.1-py2.7.egg' and adding 'build\bdist.win-amd64\egg' to it
removing 'build\bdist.win-amd64\egg' (and everything under it)
Processing firmtool-1.1-py2.7.egg
Copying firmtool-1.1-py2.7.egg to c:\python27\lib\site-packages
Adding firmtool 1.1 to easy-install.pth file
Installing firmtool-script.py script to c:\Python27\Scripts
Installing firmtool.exe script to c:\Python27\Scripts

Installed c:\python27\lib\site-packages\firmtool-1.1-py2.7.egg
Processing dependencies for firmtool==1.1
Finished processing dependencies for firmtool==1.1

出来たっぽい(笑)
firmtool.exe がc:\Python27\Scripts に作られていた。

そして、GodMode9 のビルド


Traceback (most recent call last):
File "c:\Python27\Scripts\firmtool-script.py", line 11, in
load_entry_point('firmtool==1.1', 'console_scripts', 'firmtool')()
File "build\bdist.win-amd64\egg\firmtool\__main__.py", line 464, in main
File "build\bdist.win-amd64\egg\firmtool\__main__.py", line 381, in buildFirm
File "build\bdist.win-amd64\egg\firmtool\__main__.py", line 313, in setSectionData
File "build\bdist.win-amd64\egg\firmtool\__main__.py", line 204, in setData
ImportError: No module named cryptography.hazmat.backends
make: *** [firm] Error 1

怒られた(笑)
これ、想定の範囲で、確かに「cryptography」は入れてない(汗)
README.md にも書いてある。。。

pip install cryptography


Collecting cryptography
Downloading cryptography-1.9-cp27-cp27m-win_amd64.whl (1.3MB)
100% |################################| 1.3MB 639kB/s
Collecting asn1crypto>=0.21.0 (from cryptography)
Downloading asn1crypto-0.22.0-py2.py3-none-any.whl (97kB)
100% |################################| 102kB 2.7MB/s
Collecting idna>=2.1 (from cryptography)
Downloading idna-2.5-py2.py3-none-any.whl (55kB)
100% |################################| 61kB 2.7MB/s
Collecting six>=1.4.1 (from cryptography)
Downloading six-1.10.0-py2.py3-none-any.whl
Collecting ipaddress (from cryptography)
Downloading ipaddress-1.0.18-py2-none-any.whl
Collecting cffi>=1.7 (from cryptography)
Downloading cffi-1.10.0-cp27-cp27m-win_amd64.whl (157kB)
100% |################################| 163kB 2.6MB/s
Collecting enum34 (from cryptography)
Downloading enum34-1.1.6-py2-none-any.whl
Collecting pycparser (from cffi>=1.7->cryptography)
Downloading pycparser-2.17.tar.gz (231kB)
100% |################################| 235kB 2.0MB/s
Installing collected packages: asn1crypto, idna, six, ipaddress, pycparser, cffi, enum34, cryptography
Running setup.py install for pycparser ... done
Successfully installed asn1crypto-0.22.0 cffi-1.10.0 cryptography-1.9 enum34-1.1.6 idna-2.5 ipaddress-1.0.18 pycparser-2.17 six-1.10.0

で、この後に、GodMode9 は無事にビルド出来た。

作らた GodMode9.firm の MD5hash値 と、ダウンロードしてきた GodMode9.firm の値は一致。
めでたしめでたし。




関連記事
スポンサーサイト
コメント(管理者承認後に公開します)

※未入力可能。メールアドレスは公開されますので、ご注意ください。
非公開コメント

No title

NTRにたいにつかえるmp3再生するソフトだれかつくってくれないかなあ?

2017-06-10 15:43 │ from We areURL Edit

トラックバック

http://ukkey3.blog33.fc2.com/tb.php/737-405cf2f6