アカウント名:
パスワード:
厳密には文字列と違いますが、IOCCC [ioccc.org] でソース中にマシン語を直接埋め込む コード [ioccc.org] が 受賞した [ioccc.org] ことがあります。
それから、奈良女の新出先生の UNIX like tools の中にもそういうコードがあったような記憶があります (com2txt とか sos だったかも知れない)。 あれは確か static char [] な文字列だったと思います。 LSI C-86 限定でインラインアセンブラが必要なら、素直に asm を使えばいいのですが、DOS コンパイラ汎用で人間最適化するためのテクニックではなかったかと勝手に想像しています。
で、何が言いたいかというと、上記の受賞作品の hint にある通り、
NOTE: If your machine is not a Vax-11 or pdp-11, this program will not execute correctly. In later years, machine dependent code was discouraged.
なのではないかと。 ソース配布の長所の一つに「アーキテクチャに依存しない (ようにすることもできる)」点もあるわけですから。
タレコミのように GPL を前提にするのではなく、 商用ソフトのバイナリを売ることが目的なのであれば 「文字列として、かつマシン語としても有効」である必要はないはずです。 それこそ魔法のデータ列をバイナリ中に埋め込んで 「このソフトに同梱されている fuga.dll 中には、当社が仕込んでおいた hoge という文字列が散見される。 従って、このソフトは盗品である」と主張すればすむわけですから。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ナニゲにアレゲなのは、ナニゲなアレゲ -- アレゲ研究家
タレコミと類似の手法? (スコア:3, 興味深い)
"Pascal"という文字列が機械語では特定の演算に対応していて、文字列を実行し、レジスタの内容を確認すると、その文字列が書き換えられたかどうかが判定できる、というものがありました。
x86のシェア(特に商用ソフト)を考えると、x86+特定のコンパイラで文字列にもなる機械語列を用意する、というのはアリかもしれません。
Re:タレコミと類似の手法? (スコア:3, 興味深い)
厳密には文字列と違いますが、IOCCC [ioccc.org] でソース中にマシン語を直接埋め込む コード [ioccc.org] が 受賞した [ioccc.org] ことがあります。
それから、奈良女の新出先生の UNIX like tools の中にもそういうコードがあったような記憶があります (com2txt とか sos だったかも知れない)。 あれは確か static char [] な文字列だったと思います。 LSI C-86 限定でインラインアセンブラが必要なら、素直に asm を使えばいいのですが、DOS コンパイラ汎用で人間最適化するためのテクニックではなかったかと勝手に想像しています。
で、何が言いたいかというと、上記の受賞作品の hint にある通り、
なのではないかと。 ソース配布の長所の一つに「アーキテクチャに依存しない (ようにすることもできる)」点もあるわけですから。
タレコミのように GPL を前提にするのではなく、 商用ソフトのバイナリを売ることが目的なのであれば 「文字列として、かつマシン語としても有効」である必要はないはずです。 それこそ魔法のデータ列をバイナリ中に埋め込んで 「このソフトに同梱されている fuga.dll 中には、当社が仕込んでおいた hoge という文字列が散見される。 従って、このソフトは盗品である」と主張すればすむわけですから。
Re:タレコミと類似の手法? (スコア:1)
確かにすげぇ。8進・10進・16進、バイト・ワードが入り乱れているのが味ですね。
# これがバイト単位で16進だとてんで味気ないですから。
> 魔法のデータ列
EICAR test fileとか?(違う)
Re:タレコミと類似の手法? (スコア:0)
Vzなんてエディッタがありましたね。あと古くはishのデコーダの
テキスト版を最初にパソコン通信をする時になんたら.comという名で
保存し、それを使っていろんなソフトをデコードするなんて事は
かなりの人がやっていたんじゃないかな?
# ってこれだけでは情報量0なので...
# アセンブラのソースでわざと
# xor ax, ax
# sub ax, ax
# mov ax,