如何比较不区分大小写的字符串 IDC

逆向工程 艾达 调试 登录
2021-07-08 13:23:41

所以我想跟踪某个文件何时加载到 Win32 应用程序中。这就是我在“CreateFile”上放置一个断点的方式,它将第一个参数与目标文件名进行比较,但问题是它是区分大小写的比较。不敏感怎么办?

这是“CreateFileA”上的断点条件:

GetString(DbgDword(esp + 0x4), -1, ASCSTR_C)  == "D:\\3K-MILLENNIUM\\3K-MILLENNIUM\\USER_LAW.TXT"

有任何想法吗?

2个回答

在给定断点的断点设置中,按下...按钮,选择 Python 作为脚本语言,并使用以下脚本主体:

GetString(DbgDword(esp + 0x4), -1, ASCSTR_C).upper()  == "D:\\3K-MILLENNIUM\\3K-MILLENNIUM\\USER_LAW.TXT"

条件断点

我能够使用 IDA-Python 1.7.0 和 IDA Demo 6.6 进行此比较。脚本代码是这样的:

Tmp = GetString(DbgDword(cpu.ESP + 0x4), -1, ASCSTR_C)

return str(Tmp).upper() == "D:\\3K-MILLENNIUM\\3K-MILLENNIUM\\USER_LAW.TXT"

链接到为 Win32(32 位和 64 位)编译的IDA-Python 1.7.0