2015-10-23 193 views
0

我想製作一個程序,允許我選擇一個文件或一個進程並在其中搜索一個值。 (如果它存在,我希望它返回所有存在它的值的地址) 例如,如果我選擇Chrome並搜索我的聲譽值,它應該會得到包含聲譽變量的地址(加上所有的其他地址包含相同的值)。 有沒有辦法做這樣的事情? (這個程序的一個例子是'Cheat Engine' - 這正是我想要構建的)檢查一個文件中是否存在一個值

回答

0

不確定您的示例,因爲它可能涉及來自第三方(Google)的一些信息,但用於檢查是否一個值存在於一個文件中,你可以輕鬆地加載文件並使用一個if語句。

with open('file') as f: 
    for line in f: 
     if 'value' in line: 
      do_whatever_you_want 
+0

我想過這個,但是因爲我不確定文件是如何保存的(以什麼格式),我不知道是否可以按照我想要的方式來做。 想想這樣,你選擇一個過程,其中有一個值和一個按鈕將值更改爲隨機值。我想要做的是能夠通過該值查找保存的變量的地址。如果有什麼不清楚的地方,請告訴我。 – pystudent

+0

@pystudent很好,你真的需要知道文件的格式是什麼,否則,地球怎麼知道在哪裏尋找變量的值?假設一個純文本文件,其中變量逐行存儲,例如,您可以找到該變量,然後打印整行。然後,如果你看到你能夠使用正則表達式來完善輸出。 – yzT

+0

'Cheat Engine'是一個完全符合我想要的程序,他們做得非常快,所以我想還有另一種解決方案/我沒有讓自己清楚。 – pystudent

0

這樣做與可執行文件是非常困難的。你實質上是要求對給定進程的地址空間中的所有內容都進行正則表達式,並返回每個匹配的結果。有沒有簡單的方法來做到這一點,但正則表達式確實是最好的解決方案。

這個過程在文本文件中簡單得多。您只需打開文件,搜索您的字符串並返回結果。下面是讀取使用re保存SQL文件,該文件,然後搜索模式最近的一個項目,我一直在說:

with open('filename.sql', 'r') as sqlfile: 
    sql = sqlfile.read() 
    if re.search('some pattern', sql): 
     print('found it!') 

這裏有一個鏈接到Python的re模塊:https://docs.python.org/2/library/re.html

+0

'Cheat Engine'是一個完全符合我想要的程序,他們的速度非常快,所以我想還有另一個解決方案/我沒有讓自己清楚。 – pystudent

相關問題