2013-05-13 3 views
1

Привет, у меня есть быстрый вопрос.IDA Pro python idaapi

Я пытался сохранить полный дамп памяти в IDA Pro в переменной для выполнения поиска с помощью скрипта python, но я не нашел правильную функцию для этого, используя idaapi.

Я хочу сделать что-то вроде:

import idaapi 

dump=get_memory_dump() # Or whatever function to do it 

if "foo" in dump: 
print "foo is in dump" 

Как я могу получить дамп? Как вы можете видеть, я хочу сделать скрипт для поиска паттерна в памяти, пока я отлаживаю приложение.

Большое спасибо

ответ

2

Использование idaapi.nextthat() для поиска последовательности байтов затем использовать dbg_read_memory() читать память отлаживаемой программы. Поскольку последний, похоже, делает копию, чтение, скажем, 4 ГБ было бы неразумным.

+0

Спасибо, Скотт, но я попытался прочитать память с помощью dbg_read_memory(), и авария была разбита. Работает ли это для вас? Благодаря! – user1618465

+0

@ user1618465, попробуйте 'dbg_read_memory (cpu.Esp, 4)'. Это действительно не должно терпеть крах. Если вы читаете 4 байта из ESP, тогда я предполагаю, что IDA только сбой на диапазонах адресов, которые недействительны в процессе debugee, и вам придется ограничивать себя чтением страниц, которые можно прочитать на карте памяти процесса. – scottt

+0

http://s24.postimg.org/rpookzd39/idaerror.jpg – user1618465