
18.06.2008, 10:02
|
|
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме: 4226446
Репутация:
1564
|
|
Вменяемый поиск строки и универсальный (в отличие от приведенного выше). Внимательно читаем комменты - там ответы на все потенциальные вопросы=) Результат работы скрипта по обыкновению в Log Window
Код:
# -*- coding: cp1251 -*-
from immlib import *
import struct,sys,string
#------------------------------------------------------------------|
#Простой скрипт для поиска строки или ее части
#Вызываете скрипт командой !имя_скрипта строка
#------------------------------------------------------------------|
def main(args):
imm = Debugger()
if not args:
imm.Log("Error search string. No args")
return "Error. See log window"
str = " ".join(args)
imm.Log("Search string -> "+str) #выводим в лог, что ищем
cur=imm.getCurrentAddress() # получаем текущий адрес
mod_=imm.findModule(cur) #получаем информацию о загруженной в отладчик проге
hep=imm.getReferencedStrings(mod_[1]) # ищем все строки (а точнее, ссылки на них)
for info_str in hep: #пробегаемся по всем строкам
if (info_str[2].count(str))>0: # метод count возвращает число вхождений строки str в строке info_str[2]
imm.Log("String reference found at address -> 0x%08X" % info_str[0]) #выводим в лог где найдена строка, содержащая введенную строку
return "Done. See log window"
Последний раз редактировалось 0x0c0de; 28.06.2008 в 19:39..
|
|
|