16

プログラムで2つのexeファイルを1つにマージして、実行すると古いexeファイルが両方とも一緒に実行されるようにする方法はありますか。コードまたはdllファイルの挿入についてGoogleでいくつか見つけましたが、2つのexeファイルをマージしたり、exeをexeに挿入したりすることは可能ですか?

前もって感謝します。

[編集] みんなありがとう。それは不可能だと言った人のために、私は最終的にいくつかの提案された方法でほとんどやったと言わなければなりません. ほぼこんな感じです(昔のことなので全部は覚えていません)。

[注意: このアルゴリズムは、一部のワームやウイルスのアルゴリズムと非常によく似ています。私はハッカーでもウイルス作成者でもありません。これは、実験的または無害な理由でのみ使用されます。コードに誤りがあると、ディレクトリ内の実行可能ファイルが台無しになる可能性があります。]

1- Exe は自身のサイズをチェックして、自分自身に何かが追加されているかどうかを検出します。そうでない場合:

     1.1- The exe finds other executable files in its directory (lets call one of them as victim!)
     1.2- it makes a copy of itself (lets call it newMe)
     1.3- it copies the other executable found in the directory to the end of newMe.
     1.4- it deletes the other executable file found and renames newMe to its victim's name.

2-何かが追加されたことをexeが検出した場合:

     2.1- Then it copies data from itself (from ORIGINAL_FILE_SIZE to the end of file) to a new file (lets call it newBorn.exe)
     2.2- It runs itself's code and then executes the newBorn.

私は、exeが別のexeをそれ自体に追加するこの方法で、ほぼそれを実行したと言いました。ただし、これを繰り返して、2 つまたは 3 つ以上の実行可能ファイルを 1 つに追加して実行することもできます。書かれたプログラムの ORIGINAL_FILE_SIZE を知る必要があるだけです。

4

8 に答える 8

6

理論的にはこれは可能ですが、あなたの側からいくらかの努力が必要になります。

exeファイルにデータを追加できます。これが自己解凍アーカイブの仕組みです。ただし、フラットな.exeファイルは1つしかないため、ファイルシステムと同様の独自のデータ形式が必要になります。
このMicrosoftの記事を参照してください(Googleにはもっとたくさんあります)http://support.microsoft.com/?scid=kb%3Ben-us%3B84062&x=12&y=13

2つのファイルをパックしているexeファイルは、それらのファイルを抽出して、最終的に実行できるようにする必要があります。

幸運を。

于 2010-02-15T20:09:49.443 に答える
5

他の2つのEXEファイルを埋め込みリソースとして含む独自のEXEファイルを作成し、それぞれを抽出して実行することができます。

別のディレクトリに抽出すると、埋め込んだEXEが機能しない場合があることに注意してください。

于 2010-02-15T20:07:29.137 に答える
5

いいえ、最善の策は、両方の実行可能ファイルを実行する.batファイル (Windows) を作成することです。

@echo off
c:\path\to\first\exe\file1.exe
c:\path\to\second\exe\file2.exe

Linux でシェル スクリプトを作成して、同じことを行うこともできます。

#!/bin/sh
/path/to/first/exe/file1
/path/to/second/exe/file2

これにより、file2 の前に file1 が実行されることに注意してください。

于 2010-02-15T19:55:00.297 に答える
3

技術的には、他のexeファイルをexeに埋め込むことができますが、upxのような一部のパッカーはそれを行います。したがって、2つのexeで同じことができるはずです。

Unixライクな方法で、exeがフォークし、最初のプロセスが最初の古い実行可能ファイルを実行し、新しいプロセスが2番目のexeを実行し、前にそれらの間にパイプをインストールする可能性があります。

しかし、これは明らかにそれほど簡単ではなく、おそらくあなたのニーズには役に立たないやり過ぎです。おそらく小さな.batまたは.shが必要です

于 2010-02-15T20:09:19.077 に答える
2

これは、私が c++ System("type virus.exe >> not_virus.exe") でウイルスを作成した方法ですが、コマンド プロンプトから実行している場合は、単純にこれを実行します。virus.exe と入力 >> not_virus.exe しかし、最初の行に移動してからそのコードを被害者の実行可能ファイルにコピーするように要求することで、追加するのではなく、先頭に追加できる方法を楽しみにしています

于 2013-11-21T00:05:04.743 に答える
1

1つのファイルから3番目のファイルにデータをコピーします。eofの位置を覚えておいてください。2番目のファイルから3番目のファイルにバイナリを追加します。次に、eof値の最後の番号(int)に追加します。最初のファイルには、ファイル全体をファイルの最後のこの値から別のファイルにコピーできるコードが含まれている必要があります。

そして実行します。

それを行うのは簡単な方法です。

于 2010-02-15T20:08:27.050 に答える
-4

いいえ、あるexeを別のexeに「注入」することはできません。このアクションは、オブジェクトを相互に注入するときに行う実行内部を制御できないため、定義されていません。

exe ファイルで最も近いのはパイピングです。これにより、ある exe ファイルの出力を別の exe ファイルの入力にリダイレクトできます。

one.exe | two.exe
于 2010-02-15T19:56:15.723 に答える