【问题标题】:Check if a value exists in a file检查文件中是否存在值
【发布时间】:2015-10-23 16:24:41
【问题描述】:

我正在尝试制作一个允许我选择文件或进程并在其中搜索值的程序。 (如果它存在,我希望它返回值存在的所有地址) 例如,如果我选择 Chrome 并搜索我的信誉值,它应该会得到包含信誉变量的地址(加上包含相同值的所有其他地址)。 有没有办法做这样的事情? (这种程序的一个例子是“作弊引擎”——这正是我想要构建的)

【问题讨论】:

    标签: python file process


    【解决方案1】:

    不确定您的示例,因为它可能涉及来自第三方 (Google) 的一些信息,但要检查文件中是否存在值,您可以使用 if 语句轻松加载文件。

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

    【讨论】:

    • 我想过这个,但是因为我不确定文件是如何保存的(以什么格式),所以我不知道是否有可能以这种方式做我想做的事。这样想,您选择一个过程,其中有一个值和一个将值更改为随机值的按钮。我想要做的是能够通过值找到保存变量的地址。如果有什么不清楚的地方,请告诉我。
    • @pystudent 好吧,你真的需要知道文件的格式是什么,否则,你怎么知道在哪里寻找该变量的值?例如,假设一个纯文本文件中逐行存储变量,您可以找到该变量,然后打印整行。然后,如果您发现可以使用正则表达式来优化输出。
    • 'Cheat Engine' 是一个完全符合我要求的程序,他们做得非常快,所以我想还有另一种解决方案/我还没有说清楚。
    • @pystudent 这比“检查文件中是否存在值”更复杂。看来您正在寻找内存调试器,如果您的计划是构建一个,那么我建议您开始研究它,当您有更详细的问题时,再问。
    【解决方案2】:

    使用可执行文件执行此操作非常困难。您实际上是要求对给定进程的地址空间中的所有内容执行正则表达式并返回每个匹配的结果。没有简单的方法可以做到这一点,但正则表达式确实是最好的解决方案。

    这个过程在文本文件中要简单得多。您只需打开文件,搜索您的字符串,然后返回结果。这是我最近在做的一个项目,它读取一个保存的 SQL 文件,稍后使用re 搜索模式:

    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

    【讨论】:

    • 'Cheat Engine' 是一个完全符合我要求的程序,他们做得非常快,所以我想还有另一种解决方案/我还没有说清楚。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    相关资源
    最近更新 更多