0

特定のプログラムが開いていると続行できないプログラムを作成しようとしています。この特定のケースでは、Cheat Engine.exeが開いていると、続行できません。

コードは次のようになると思いました。

def openedprogram():
with open('Cheat Engine.exe', 'r') as f:
    print("You have Cheat Engine Open! Close and uninstall it before continuing!")
else:
    continue()

これにはいくつかのエラーがあります。「Else:」を削除しようとすると、CheatEngine.exeが有効なディレクトリではないというエラーが発生しました。どんな助けでもありがたいです!ありがとう。

4

2 に答える 2

1

これを行うことはほぼ完全に不可能ですが(ウイルス対策およびハッキング防止インジェクションを参照)、ほとんどの場合、プロセス名がプロセスリストに表示されるかどうかを確認できます。

このようなものは、現時点でプロセスをアクティブにします

import os
import psutil # http://code.google.com/p/psutil/
import time

def get_procs():
    while 1:
        procs = psutil.get_process_list()
        procs = sorted(procs, key=lambda proc: proc.name)

        for proc in procs:
            yield proc.name
于 2013-01-28T00:46:50.670 に答える
0

あなたの質問は1つのことを尋ねます(プログラムは「実行中」です)が、コードは別のことをチェックし(ファイルを正常に開いて読み取ることができますか)、エラーメッセージと質問のテキストはさらに別のことを議論しています(与えられています)実行可能ファイル「インストール済み」)。

これらのさまざまな質問の違いを理解するまでは、意図したこと(実際に何であれ)を実行するプログラムを作成することはできません。

ファイルを開くと、特定の名前のファイルが、アクセスを許可するアクセス許可を持つ特定の場所に存在するかどうかがわかります。これは、プログラム/ゲームの実行中に「チート」ユーティリティが使用されないようにするのに役立ちません。

PATHをチェックして、「cheat.exe」プログラムがその上のどこかにあるかどうかを確認することで、非常に限られた成功を収めることができます。しかし、それはかなり足りないでしょう。プログラムの名前を変更し、PATH上にないディレクトリにプログラムを保持するためのインテリジェンスと教育の基準はかなり低いです。MS Windowsでゲームをプレイしている平均的な10歳の人は、おそらく5分以内にそのパズルを解く(その戦略をハックする)と思います(「成果のロックが解除されました!」)。

「WorldofWarcraft」などのプログラムには、WoWが開いているときにプログラム(「Glider」や「Shadowbot」など)が実行されないようにする、かなり洗練された「ウォーデン」テクニックがあります。もちろん、このようなプログラムは、任意のディレクトリに任意の名前でインストールでき、実行中にプロセスリストで名前を変更できます。これらの「チート」プログラムは、基本的にデバッガーが使用するのと同じOS機能を使用します(MacOS Xではptraceインターフェイス、MSWindowsではそのアナログは何でも)。これらにより、gdbやstraceなどのプログラムは、別のプログラムのアドレススペースを「覗き見」し、そこに値を「突く」ことができます。そのため、プログラムがユーザーインターフェイスに関する特定のモデル情報を格納している場所(基本的にはターゲットが配置されている場所、

「ワーデン」は、おそらく、プロセステーブルをスキャンして特定のシグネチャ(アンチウイルスと同様)を探し、同様の「デバッグ」インターフェイスを使用して、verbottenプログラムの痕跡を探すこともできます。

ただし、最終的には、これは、コモディティ消費者市場(汎用PCおよびMac、例えば)。

でもねえ、楽しんでみてください。

于 2013-01-28T09:32:04.410 に答える