アカウント名:
パスワード:
開発した人が使い慣れてるってのもあるんじゃないですかねえ。
当該ブログを見てみたけれど仮想関数っぽいものがあったり割りとちゃんとしたOOっぽかったりパラメータはレジスタとスタックで渡していたりとC++処理系っぽかったりするので、C++に近いものじゃないかなという感じ。
超マイナーなC++コンパイラに自作のフレームワークとかそういう可能性もあるかもしれない。が、マイナーなコンパイラなんてのあるのかな?
>> 超マイナーなC++コンパイラに自作のフレームワークとかそういう可能性もあるかもしれない。
ZortechC++程度のマイナーさならあるかも知れないけど、「関数テーブルがクラスのインスタンス内にある」という特徴からC++の近縁の言語ではないように思えます。
Prototypeベースのネイティブコンパイラ???IOとかドマイナーな言語しか思いつかないですね。
関数テーブルがクラスのインスタンス内にある・・・というと、COMみたいな実装?あれなら、CでもC++でもアセンブラでも実装できますが。あとはWindowsの古いドライバモデルもこれに近いですね。
とか想像しました。
COMのインスタンスはVC++のクラス実装と同じように関数テーブルのポインタしか持ってない
# つーか、メンバを__stdcallで宣言してるだけの普通のクラス
インスタンスとインターフェースをごっちゃにしてないか?
間違えてないでしょ。COMインスタンスには関数テーブルへのポインタだけが入っています。インスタンス内に関数テーブルそのものが入っているわけではありません。
COMをC言語で使ったことがあればすぐ分かる話だけど、C言語でCOMを使う場合、メソッド呼び出しは、関数テーブルを介した間接アドレッシングを行います。
VBなら「obj.func(…);」、C++なら、「obj->func(…);」と記述するところを、C言語の場合、「obj->vptr->func(obj, …);」と書くわけですね。
x86のセグメントの呪縛があるのでショートジャンプを繰り返して目的のアドレスにたどり着いてようやく実行できるて類ですか。 exploitの典型的な方法ですかね。Modula-2 [wikipedia.org]でコンパイルしてcomに吐き出すか、objのままリンクさせてるようでは? 今では超マイナー言語でC++黎明の時代ということなら、その時期にいくつかMS-DOS上で動作するModula-2コンパイラがアキバでも亜土電子とかで手に入りましたし。
途方もないトンチンカンに驚愕したまさに老害FTLとかLogitechのModula-2は16ビット版だぜ
・新言語の開発効率の良さを示すサンプルプログラムがたまたまマルウェアだった
現に使われてる以上理由はあるんでしょう。マルウェア作者は金のためにやってるのであって遊びじゃないんですから普通はより効率的に金儲けできる方法を追求するでしょう。
俺言語なら、欲しい機能を自由に組み込める。マルウェアに役立ちそうなものでもあれば。ちょっとしたハッカーだったら、それくらいやっててもおかしくない。
特定機能(この場合はマルウェア)を簡単に作成できる。
#どっかにマルウェアツクールでもあるんじゃないか?
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家
専用の言語を使う利点 (スコア:0)
Re:専用の言語を使う利点 (スコア:2)
開発した人が使い慣れてるってのもあるんじゃないですかねえ。
当該ブログを見てみたけれど仮想関数っぽいものがあったり
割りとちゃんとしたOOっぽかったり
パラメータはレジスタとスタックで渡していたりとC++処理系っぽかったり
するので、C++に近いものじゃないかなという感じ。
超マイナーなC++コンパイラに自作のフレームワークとか
そういう可能性もあるかもしれない。
が、マイナーなコンパイラなんてのあるのかな?
Re:専用の言語を使う利点 (スコア:2)
>> 超マイナーなC++コンパイラに自作のフレームワークとかそういう可能性もあるかもしれない。
ZortechC++程度のマイナーさならあるかも知れないけど、「関数テーブルがクラスのインスタンス内にある」という特徴からC++の近縁の言語ではないように思えます。
Prototypeベースのネイティブコンパイラ???IOとかドマイナーな言語しか思いつかないですね。
Re:専用の言語を使う利点 (スコア:2)
関数テーブルがクラスのインスタンス内にある・・・というと、COMみたいな実装?
あれなら、CでもC++でもアセンブラでも実装できますが。
あとはWindowsの古いドライバモデルもこれに近いですね。
とか想像しました。
Re:専用の言語を使う利点 (スコア:2)
Re: (スコア:0)
COMのインスタンスはVC++のクラス実装と同じように関数テーブルのポインタしか持ってない
# つーか、メンバを__stdcallで宣言してるだけの普通のクラス
Re: (スコア:0)
インスタンスとインターフェースをごっちゃにしてないか?
Re:専用の言語を使う利点 (スコア:1)
間違えてないでしょ。
COMインスタンスには関数テーブルへのポインタだけが入っています。
インスタンス内に関数テーブルそのものが入っているわけではありません。
COMをC言語で使ったことがあればすぐ分かる話だけど、
C言語でCOMを使う場合、メソッド呼び出しは、関数テーブルを介した間接アドレッシングを行います。
VBなら「obj.func(…);」、C++なら、「obj->func(…);」と記述するところを、C言語の場合、「obj->vptr->func(obj, …);」と書くわけですね。
Re: (スコア:0)
x86のセグメントの呪縛があるのでショートジャンプを繰り返して目的のアドレスに
たどり着いてようやく実行できるて類ですか。 exploitの典型的な方法ですかね。
Modula-2 [wikipedia.org]でコンパイルしてcomに吐き出すか、objのままリンクさせて
るようでは? 今では超マイナー言語でC++黎明の時代ということなら、その時期
にいくつかMS-DOS上で動作するModula-2コンパイラがアキバでも亜土電子とか
で手に入りましたし。
Re: (スコア:0)
途方もないトンチンカンに驚愕した
まさに老害
FTLとかLogitechのModula-2は16ビット版だぜ
Re: (スコア:0)
Re:専用の言語を使う利点 (スコア:1)
・新言語の開発効率の良さを示すサンプルプログラムがたまたまマルウェアだった
Re: (スコア:0)
現に使われてる以上理由はあるんでしょう。マルウェア作者は金のためにやってるのであって遊びじゃないんですから普通はより効率的に金儲けできる方法を追求するでしょう。
Re: (スコア:0)
俺言語なら、欲しい機能を自由に組み込める。マルウェアに役立ちそうなものでもあれば。
ちょっとしたハッカーだったら、それくらいやっててもおかしくない。
Re: (スコア:0)
特定機能(この場合はマルウェア)を簡単に作成できる。
#どっかにマルウェアツクールでもあるんじゃないか?