2016-08-14 19 views
-3

我已經嘗試了一些方法,並在網上跟着一些教程,但沒有幫助我。我想要做的是爲我的遊戲製作一個簡單的預熱程序。它所要做的就是按名稱掃描源代碼中定義的程序,讀取十六進制代碼並搜索字符串或十六進制值。示例:如果cheatengine.exe正在運行,請掃描此進程的十六進制代碼。如果在十六進制代碼中找到0x328934,請關閉該程序。這可能嗎 ?謝謝您的幫助。在C中製作一個簡單的反斜線#

+1

是的,這是可能的。但是這個問題對於StackOverflow太廣泛了。 –

回答

0

我很驚訝你沒有發現任何東西......

using System.Diagnostics; 
using System.IO; 

string[] definedPrograms = { "cheatengine.exe", "otherhacktool.exe" }; 

void stopCheats() 
{ 
    Process[] processList = Process.GetProcesses(); 
    foreach (Process process in processList) 
    { 
     foreach (string definedProgram in definedPrograms) 
     { 
      if (Path.GetFileName(process.MainModule.FileName) == definedProgram) 
      { 
       //Kill the other program 
       process.Kill(); 
      } 
     } 
    } 
} 

至於讀取進程內存和掃描的十六進制代碼,你可以存儲在一個二維數組定義的十六進制代碼,但我不知道如何讓他們擺在首位。

另外你也許應該知道這個實現不是很安全......你可以從字面上將金手指引擎的exe名稱改爲不同的東西,程序不會識別它。我建議你至少檢查exe文件的md5哈希而不是文件名,或者甚至將整個exe文件存儲在程序中,並將其與2個程序的字節進行比較...

我知道這並沒有完全解決這個問題,但我希望它指出你在正確的方向......