喫茶XRAYトップページ

[スレッド全体
]

[7617] アセンブリ言語と...返信 削除
2014/5/26 (月) 13:17:47 Mr.XRAY
次の記事を追加しました
[006_究極の選択 - アセンブリ言語と PE ヘッダ]
http://mrxray.on.coocan.jp/Delphi/plSamples/006_Assembler_exe.htm

「未処理問い合わせ... 」 というテキストファイルがあり,
そこに,ネット上の,あるいは,問い合わせがあった内容で未処理のことを書いています.

その中からいくつかを,[006] の記事に無理やりこじつけてみました.
他のサンプルの記事にも,無理やりむ結びつけているのがありますが... (^^;


□ ----  質問・問い合わせ 1 ------
作成した EXE のサイズが大きくなります.小さくする方法は ?

回答
Delphi を使うのをあきらめて,アセンブリ言語で開発しましょう(笑).


□ ----  質問・問い合わせ 2 ------
EXE の内容を 16 進数表示したいのですが ?

回答
以下を参考にしてください.
http://mrxray.on.coocan.jp/Delphi/plSamples/006_Assembler_exe.htm#02


□ ----  質問・問い合わせ 3 ------
(Dephi 2007 以前のコードを提示して)
次のコードで,1 バイト目と 2 バイト目で,全角と半角を判定しましたが,
うまくいきません.当方は,Delphi XE です.

回答
ユニコードな文字は 1 バイト目と 2 バイト目のコードでは判定はできません.
MECSUtils を使用してください.
http://mrxray.on.coocan.jp/Delphi/plSamples/006_Assembler_exe.htm#fig11
http://ht-deko.minim.ne.jp/tech021.html


□ ----  質問・問い合わせ 4 ------
Delphi で作成した EXE を逆コンパイルするには ?

回答
これ以上のことは期待できません.
http://mrxray.on.coocan.jp/Delphi/plSamples/006_Assembler_exe.htm#03


□ ----  質問・問い合わせ 5 ------
ソースコードを無くしてしまいました.EXE からソースコードを取り出せますか ?

回答
できません.以下の[備考}を参考にしてください.
http://mrxray.on.coocan.jp/Delphi/plSamples/006_Assembler_exe.htm#03


□ ----  質問・問い合わせ 6 ------
ファイルが EXE なのか DLL なのかを拡張子でなく,
ファイルの中身から知ることはできますか ?

回答
以下を参考にしてください.
http://mrxray.on.coocan.jp/Delphi/plSamples/006_Assembler_exe.htm#04


□ ----  質問・問い合わせ 7 ------
EXE がコンソールアプリがどうかを知る方法はありますか ?

回答
以下を参考にしてください.
http://mrxray.on.coocan.jp/Delphi/plSamples/006_Assembler_exe.htm#04


□ ----  質問・問い合わせ 8 ------
DLL 内のエクスポート関数の一覧を取得したいのですが

回答
以下を参考にしてください.
http://mrxray.on.coocan.jp/Delphi/plSamples/006_Assembler_exe.htm#05


□ ----  質問・問い合わせ 9 ------
EXE ファイルの PE ヘッダの内容を取得したいのですが

回答
以下を参考にしてください.
http://mrxray.on.coocan.jp/Delphi/plSamples/006_Assembler_exe.htm#04


[7632] 逆コンパイルと元のソースコード返信 削除
2014/5/31 (土) 14:47:45 Mr.XRAY
> ソースコードを無くしてしまいました.EXE からソースコードを取り出せますか ?
>
>回答
>できません.以下の[備考}を参考にしてください.


初心者というか,プログラミングの入門者の方に,
誤解のないように説明しておきますと,

EXE から逆コンパイラというのがあります.フリー,有料もあります.
これは,EXE から

http://mrxray.on.coocan.jp/Delphi/plSamples/006_Assembler_exe.htm#list3

のような内容を取得して,それを,ある開発言語のコードにするものです.
この時,「元のソースコード」にするわけではなく,
「ある開発言語の,予想されるコード」にするものです.

例えば,

procedure TForm1.Button1Click(Sender: TObject);
var
  S : String;
  I : Integer;
begin
  S := 'A';
  I := StrToInt(S);
end;

は「元のソースコード」です.で,StrToInt; は,内部で,

function StrToInt(const S: string): Integer;
var
  E: Integer;
begin
  Val(S, Result, E);
  if E <> 0 then ConvertErrorFmt(@SInvalidInteger, [S]);
end;

という 「Delphi のコード」を実行しています.
さらに,ConvertErrorFmt も,別の 「Delphi のコード」を実行しています.
これ以上は説明する必要はないでしょう.

更に言うと,Delphi のコードに逆コンパイルするというのは,
どのバージョンの Delphi のコードにするかにも注目する必要があります.



[▼次のスレッド]
INCM/CMT
Cyclamen v3.82