
No.1ベストアンサー
- 回答日時:
どのような回答をしたらよいか迷いますね。
Delphiについてではなく、一般論です。
基本的には機械的に作ればいいだけです。コンパイラの癖がわかっていれば、それを手がかりに解析し、そこから芋づる式に作れます、手間は大変ですが、コンパイラの作り方の基本がわかっていればなんとかなります。
必要なのは、コンパイラがどんなコードを出すかという知識でしょう。
目的は一般にはリバースエンジニアリングですから、アルゴリズムやI/O、インターフェースの使い方などがわかれば十分です。結果は最初のソースとは似ても似つかないものになります。元々使っていたラベルなどはわかりませんから、変数名などは英数字の組み合わせなどで表現されているものも多く、可読性は高くありません。
ただ、それを見るのは、プログラムのプロですから、それで十分です。
防ぐ方法というか、わかりにくくする方法もあります、簡単な方法としては、無意味なジャンプを多用したり、ダミーのコードを埋め込んだりします。リテラルを暗号化するのも効果的でしょうね。
あるいは、内部にプログラムローダーを用意し、そこで変換しながらロードするなども。普通そこまではやりません。
いずれにしろ、コンパイラだけじゃ難しいですが、こういうことをするツールはあります。
この回答へのお礼
お礼日時:2006/03/14 23:19
関数の習得なんて後回しの勢いで、小さいプログラムを作りました。
Delphiは、ぱかぱかソフトができて楽しいですねー。
質問は、このソースを見られたら恥ずかしいなー、というレベルでした。
今考えると、作った程度のソフトは、なれている人が見れば1時間もあればできるレベルだし、逆コンパイラも難しそうなので、素人のプログラムのレベルを見るためだけに中身を見る人もいなさそうですねー。
素人の質問に、回答ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
どのプログラミング言語ででき...
-
C++でアボート(Abort)で処理が...
-
io.hをincludeしたプログラムで...
-
volatile修飾について
-
0除算して、落ちるプログラムと...
-
MacでFortranプログラミングを...
-
io.hをincludeするとそのような...
-
C++ で、「)」が必要 というエ...
-
ファイルの開き方
-
XnViewにwebpを「いつも開く」...
-
VBAで関数をつくる
-
Excelで4096点以上のFFTの方法
-
あるプログラムのコマンドライ...
-
正しい五十音順について
-
Bluestacks内でダウンロードし...
-
VBAで仕様書は書きますか?
-
☆★大学院入試のアルゴリズムに...
-
.NETプログラムが初回起動が遅い
-
バッチファイルでウインドウを...
-
OS入ってる機器のソフト・アプ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
0除算して、落ちるプログラムと...
-
C++ で、「)」が必要 というエ...
-
C++でアボート(Abort)で処理が...
-
io.hをincludeするとそのような...
-
CPUが16bitでも32bitOSでコンパ...
-
graph.hがincludeできない
-
ABAQUS ユーザーサブルーチン...
-
Visual C++とVisual C++.NETの違い
-
Eclipseの環境設定について
-
変数(関数)名の頭に_
-
fortranでのNaNについて
-
PICマイコンによる乱数の表示に...
-
コンパイラについて
-
バイナリファイルとソースコー...
-
コンパイラの制限 : ヒープの領...
-
コンパイルできない
-
移植性の高いmakefileの作成
-
何も書いて無いのに警告が出る...
-
C/C++のインラインアセンブラに...
-
FORTRANとC++の連動について
おすすめ情報