これらの行動の正当性をあなたの良心に任せましょう。この記事は、アンチウイルスデータベースの更新機能に精通するためのものであり、法律違反のガイドではありません。 違反を回避するには、ESETの評価ライセンスのみを使用する必要があります。
だから、中のneonka:
0.ロケーション
仮想ホストのDocumentRootであるホームディレクトリ/var/www/site.ru/webがあると想像してください。 特に明記しない限り、すべてのファイルをそこに置くことを意味します。 したがって、cronを介してスクリプトを実行する場合は、メインスクリプトの先頭に次のアクションを配置する必要があります。
CURDIR=/var/www/site.ru/web
cd $CURDIR
1.ライセンスアカウントはどこで入手できますか?
「Eset Password Finder」というおおよその名前のマルチメガバイトの作品に出会いましたが、正確には覚えていません。 マルウェアをアンチウイルスユーザーに配布するためのはるかに効果的な方法を見つけることは困難です。 hex-viewerでexe-shnikをすばやく見ると、中国語のサイトhttp://www.nnvv.orgへのリンクが、新しいパスワードが毎日配置されているシンボルに見つかりました。 出力でbash形式でいくつかの変数を出力する簡単なパーサーを作成しましょう。
USERNAME=EAV-xxx
PASSWORD=xxx
自転車を発明したりエンティティを作成したりすることはなく、DOMツリーを走査するための既製のPHP simplehtmldomフレームワークを使用します。 彼のおかげで、スクリプトは次の形式になります。
./getpass.php:
#!/usr/bin/php
<?php
require('simple_html_dom.php'); //
$html = file_get_html('http://www.nnvv.org/');
$a=$html->getElementById("#nod32ids")->children(0)->children(0)->plaintext;
$a = str_replace("Username:", 'USERNAME=', $a);
$a = str_replace("Password:", 'PASSWORD=', $a);
echo $a."\n";
?>
chmod 755 ./getpass.phpを実行可能にして、そのままにしておきます。
2.必要なディレクトリを作成する
mkdir -p ./download/engine3
mkdir -p ./download/engine3ess
mkdir -p ./eset_upd
mkdir -p ./download/win/emsx
mkdir -p ./download/win/v3eav
mkdir -p ./download/win/v3ess
mkdir -p ./download/win/v3eav/pre
mkdir -p ./download/win/v3ess/pre
この構造は、公式サーバー上のディレクトリ階層を完全に繰り返します。
3.更新情報を取得する
現在のデータベースのデータはファイルhttp://update.eset.com/eset_upd/update.verに保存され、古い無料のアーカイバunrar-0.0.1で圧縮されていますが、これはRoshalevskyと互換性がありません 。 unrar-0.0.1をダウンロードしてコンパイルし、コンパイル後にunrarバイナリをアクションの場所のディレクトリに入れます。 解凍後、更新ファイルのURLのリストを生成することにより、 update.verを解析できます。
wget -q --timestamping http://update.eset.com/eset_upd/update.ver
mv -f update.ver update.rar
cd eset_upd
../unrar e -f -y -c- ../update.rar 2>&1 >/dev/null
cd ..
mv -f update.rar update.ver
grep file= $CURDIR/eset_upd/update.ver |grep "engine3/"| sed -e 's/file\=/http\:\/\/um10.eset.com/' |grep -v data > downlist1.txt
grep file= $CURDIR/eset_upd/update.ver |grep engine3ess| sed -e 's/file\=/http\:\/\/um10.eset.com/' |grep -v data > downlist2.txt
grep file= $CURDIR/eset_upd/update.ver |grep emsx| sed -e 's/file\=/http\:\/\/um10.eset.com/' |grep -v data > downlist5.txt
grep file= $CURDIR/eset_upd/update.ver |grep v3eav|grep -v pre| sed -e 's/file\=/http\:\/\/um10.eset.com/' |grep -v data > downlist3.txt
grep file= $CURDIR/eset_upd/update.ver |grep v3ess|grep -v pre| sed -e 's/file\=/http\:\/\/um10.eset.com/' |grep -v data > downlist4.txt
grep file= $CURDIR/eset_upd/update.ver |grep v3eav|grep pre| sed -e 's/file\=/http\:\/\/um10.eset.com/' |grep -v data > downlist6.txt
grep file= $CURDIR/eset_upd/update.ver |grep v3ess|grep pre| sed -e 's/file\=/http\:\/\/um10.eset.com/' |grep -v data > downlist7.txt
4.アップデートを受け取る
以前に作成したPHPスクリプトを使用して、新しいパスワードを取得します。
./getpass.php > ./pass.sh
sed -i 's/\r//' pass.sh # , wget --http-user=$USERNAME .
source ./pass.sh
データベースを取得するには、-timestampingオプションを指定してwgetを使用します。これにより、以前にダウンロードしたファイルを再度ダウンロードすることはできなくなります。 注意のため、公式の--user-agentを使用し、認証には通常のペア--http-user /-http-passwordを使用します 。 wgetのファイルのリストは、 -input-file =パラメーターで渡すことができます。
wget --timestamping --http-user=$USERNAME --http-password=$PASSWORD --input-file=../../downlist1.txt --user-agent="ESS Update (Windows; U; 32bit; VDB 7001; BPC 4.0.474.0; OS: 5.1.2600 SP 3.0 NT; CH 0.0; LNG 1049; x32c; UPD http://um10.eset.com; APP ess; BEO 1; CPU 5964; ASP 0.0)"
cd ../engine3ess/
wget --timestamping --http-user=$USERNAME --http-password=$PASSWORD --input-file=../../downlist2.txt --user-agent="ESS Update (Windows; U; 32bit; VDB 7001; BPC 4.0.474.0; OS: 5.1.2600 SP 3.0 NT; CH 0.0; LNG 1049; x32c; UPD http://um10.eset.com; APP ess; BEO 1; CPU 5964; ASP 0.0)"
cd ../win/v3eav/
wget --timestamping --http-user=$USERNAME --http-password=$PASSWORD --input-file=../../../downlist3.txt --user-agent="ESS Update (Windows; U; 32bit; VDB 7001; BPC 4.0.474.0; OS: 5.1.2600 SP 3.0 NT; CH 0.0; LNG 1049; x32c; UPD http://um10.eset.com; APP ess; BEO 1; CPU 5964; ASP 0.0)"
cd ../v3ess/
wget --timestamping --http-user=$USERNAME --http-password=$PASSWORD --input-file=../../../downlist4.txt --user-agent="ESS Update (Windows; U; 32bit; VDB 7001; BPC 4.0.474.0; OS: 5.1.2600 SP 3.0 NT; CH 0.0; LNG 1049; x32c; UPD http://um10.eset.com; APP ess; BEO 1; CPU 5964; ASP 0.0)"
cd ../emsx/
wget --timestamping --http-user=$USERNAME --http-password=$PASSWORD --input-file=../../../downlist5.txt --user-agent="ESS Update (Windows; U; 32bit; VDB 7001; BPC 4.0.474.0; OS: 5.1.2600 SP 3.0 NT; CH 0.0; LNG 1049; x32c; UPD http://um10.eset.com; APP ess; BEO 1; CPU 5964; ASP 0.0)"
cd ../v3eav/pre/
wget --timestamping --http-user=$USERNAME --http-password=$PASSWORD --input-file=../../../../downlist6.txt --user-agent="ESS Update (Windows; U; 32bit; VDB 7001; BPC 4.0.474.0; OS: 5.1.2600 SP 3.0 NT; CH 0.0; LNG 1049; x32c; UPD http://um10.eset.com; APP ess; BEO 1; CPU 5964; ASP 0.0)"
cd ../../v3ess/pre/
wget --timestamping --http-user=$USERNAME --http-password=$PASSWORD --input-file=../../../../downlist7.txt --user-agent="ESS Update (Windows; U; 32bit; VDB 7001; BPC 4.0.474.0; OS: 5.1.2600 SP 3.0 NT; CH 0.0; LNG 1049; x32c; UPD http://um10.eset.com; APP ess; BEO 1; CPU 5964; ASP 0.0)"
以上です。 受信したスクリプトを忘れないでください(たとえば、 nodupdate.shと呼びましょう)cronに登録します
# sudo crontab -e
50 * * * * /var/www/site.ru/web/nodupdate.sh 2> /dev/null
5.クライアントのセットアップ
- ウイルス対策ウィンドウを呼び出します
- F5を押すと、 詳細セットアップ設定ウィンドウが表示されます。
- 更新-サーバーの更新-編集-追加
- DocumentRootで作業した場合、 http://site.ruの行を追加すると、更新場所はルートのようになります。つまり、 / mirror /または/ update /ではなく、あちこちで発生します。
- OKをクリックします。
- 重要性を高めるには、更新キャッシュをクリアします - 更新キャッシュをクリアします。 実際には、ウイルス対策ソフトウェアが更新を停止する場合があるのは、更新されていない更新キャッシュが原因になる場合があるためです。
6.まとめ
完全なスクリプトはPastebinにあります。
判明したように、独自の更新のミラーを作成するために特別なユーティリティや特別な知識は必要ありません。 この投稿の目的は、ESET製品更新システムの機能に精通することだけであり、ソリューションの目的は企業のトラフィックを節約することのみであり、決して法律に違反することはできないことを理解する必要があります。 理論的には、このスクリプトを使用するには、ミラーから更新されたウイルス対策ソフトウェアのすべてのインスタンスのライセンスを合法的に取得している必要があります。これは良心のままです。 評価ライセンスのみを探すようにコードを書き換えることができますが、これは使用するのがかなり合法であると思われます。 1人の友人がこのソリューションを3年間使用していますが、ほとんど変更されていません。 すべての更新の重みは約300メガバイトのどこかになり、その後のドッキングは最大700〜900メートルまで増加する可能性があることを考慮します。 6か月に1回、データベースファイルを削除して、古いファイルを削除できます。 update.verファイル形式自体は非常にシンプルで、セクションに分かれており、そこからサーバー上のディレクトリ構造全体を確認できます。新しいESET製品のリリース後に、これらのパスをスクリプトに追加するだけです。
UPD 2012.04.24:小さな変更( zombic yのおかげ)。
getpass.phpの代わりにgetpass.shを使用します。
$ cat getpass.sh
#!/ bin / sh
curl www.nnvv.org | \
grep -A1` date +%Y-%m-%d` | \
awk '$ 9〜/パスワード/ \
{if(sub(/ Username:/、 "+ USERNAME ="))\
{if(sub(/ <br \ />パスワード:/、 "+ PASSWORD ="))\
{if(sub(/ <\ / p> /、 "\ n")){print $ 8 "\ n" $ 9}}}} | \
awk -F "+" '{print $ 2}'> pass.sh
スクリプトは、今日の番号のユーザー名/パスワードを取ります。
スクリプトnodupdate.shでは、それぞれgetpass.phpをgetpass.shに置き換え、行にコメントを付けます
sed -i 's / \ r //' pass.sh、
必要ありません。