DOSのEXEをバイナリに変換する
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
NGNGどうしたら良いですか?
純粋なバイナリというのは、例えばNASMで
nasm -f bin ...
binと指定したような形です。
0002名無しさん@お腹いっぱい。
NGNG0003名無しさん@お腹いっぱい。
NGNG良く知らんけどそれCOMにするやつじゃないの?
00041
NGNGどうやらそのCOMがバイナリらしいです。
nasm -hfすると
bin flat-form binary files (e.g. DOS .COM@` .SYS)
と出ます。
bin = COM@` SYSだったのか。
やっとすっきりしました。
0005名無しさん@お腹いっぱい。
NGNG0006名無しさん@EXE2BIN使い
NGNG0007名無しさん@ちがうぜ
NGNG○ bin⊃com
bin⊃sys
com≠sys
00081
NGNGbin != comならcomってなにか特殊なヘッダとかがついてるんですか?
それとも概念として(???)bin == com@`sysは×だってことですか?
00097
NGNGしかし、すべてのexeがcomやsysに変換できるわけではないのね。
com@`sysに変換できるのは、任意のセグメントで実行できるように
相対的なセグメント値の参照を含まないように作られているものだけ。
一般的な作り方のexeはその相対的なセグメント値の参照をロード時に
解決するようにしているので、6さんがいうようにセグメントのベースを
仮定してやらないとbin化できません。
exe=再配置情報(ヘッダ)がついた実行ファイル。
bin=実行可能な状態でメモリに配置されたイメージと同等なファイル。
com=binの条件を満たし、かつ0100hを先頭アドレスとし、任意のセグメントで動作可能なもの。
sys=binの条件を満たし、かつ0000hを先頭アドレスとし、任意のセグメントで動作可能なもの。
という意味で使っています。実際にはexe2binでcomやsysに変換するには
ファイルのサイズなどにも制約があります。
こんな説明で解かるかな?
0010名無しさん@お腹いっぱい。
NGNG可能になったから、.SYSの意味ってあんまり無いんでは?
00115
NGNGhttp://www.st.rim.or.jp/~prognob/catalog/locate/
ようするにこんなプログラムの事だろ?
0012>10
NGNG可能になったから、*.COMの意味ってあんまり無いんでは?」
とかいってるのとかわんないぞ。スレの趣旨を理解してくれ。
001310>12
NGNG0014名無しさん@お腹いっぱい。
NGNG■ このスレッドは過去ログ倉庫に格納されています