|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Май 30, 2004 15:53:40 · Поправил: SolidCode Люди, видел ли кто такой плаг или фичу для OllyDbg, чтобы можно было просмотреть какую-либо память в виде структуры (как API так и User Defined)? Хорошо, если ещё её можно и редактировать аналогично. |
|
|
Дата: Май 31, 2004 19:10:20 Вы что, смеётесь? Мне самому её писать, что-ли? Ладно, найду время напишу. Хотя бы с минимумом возможностей. |
|
|
Дата: Май 31, 2004 19:14:48 Правка SolidCode А ты подумал, что надо сделать, чтобы показывать структуры? Как вариант, дизассемблировать можно, только как перегнать потом нужное в то, что понимает OllyDbg? |
|
|
Дата: Май 31, 2004 20:08:52 Я ещё ничего не знаю и много об этом не думал. Просто я знаю, что при работе в Олли мне не хватает возможности просмотреть содержимое по определённому адресу в виде определённой структуры. АПИ-шные стуктуры можно подкачивать из windows.inc. |
|
|
Дата: Июн 6, 2004 06:17:28 · Поправил: SolidCode Вопрос к тем, кто хочет помочь с плагом. Требуется преобразование из hex строки в число. Быстро по скорости, но не особенно в ущерб размеру. Требования: должна преобразовывать от начала строки до первого символа, который не относится к hex. Должна понимать как заглавные варианты hex-символов, так и строчные. У меня пока получилось лишь так: ;esi-ptr to string
;ebx-max address in string (esi+sizeof string)
;returns num in eax
HexStr2Num proc
xor eax,eax
xor edx,edx
.repeat
mov dl,[esi]
sub dl,"0"
js @end
cmp dl,9
jbe @1
sub dl,11h
js @end
cmp dl,6
jb @2
sub dl,20h
js @end
cmp dl,6
jae @end
@2:
add dl,10
@1:
shl eax,4
inc esi
add eax,edx
.until esi>=ebx
@end:
ret
HexStr2Num endp
И ещё ламерский вопрос. Я не понял что такое union и чем он отличается от структуры и зачем он вообще. |
|
|
Дата: Июн 7, 2004 04:05:54 · Поправил: q_q SolidCode Требуется преобразование из hex строки в число Импортировать sscanf из crtdll.dll или msvcrt.dll? что такое union ... и зачем он вообще Например. Объединение можно рассматривать как структуру, все элементы которой имеют нулевое смещение от начала. При таком размещении разные элементы занимают в памяти один и тот же участок. Тем самым объединения обеспечивают возможность доступа к одному и тому же участку памяти с помощью переменных разного типа. |
|
|
Дата: Июн 7, 2004 13:27:37 crtdll.dll - это часть WinAPI и есть в любой версии винды нчиная с 95? В противном случае - мне это не подходит. Я как плагин, т.е. библиотека не должен требовать ещё каких-либо библиотек, кроме системных. Тем самым объединения обеспечивают возможность доступа к одному и тому же участку памяти с помощью переменных разного типа. И всего то?! А я думал, голову ломал. Большое спасибо, q_q. Тогда, при отображении этого union, для каждого его члена берём один и тот же адрес в памяти, но интерпретируем по-разному в зависимости от типа. Правильно? А как насчёт hex-строки. Быстрее варианты есть? |
|
|
Дата: Июн 7, 2004 15:10:58 · Поправил: Black_mirror |
|
|
Дата: Июн 8, 2004 11:13:10 В целом концепция плагина получается следующая: Выбираем из менюшки плаговю Вводим адрес и выбираем структуру. В текстовом окне выводится эта структура со всеми полями заполненными той информацией, которая была в памяти на момент просмотра. Если память недоступна (GPF), то пишем вопросы. В следующей версии возможна и обратная операция, т.е. редактирование памяти из плага. |
|
|
Дата: Июн 8, 2004 12:17:01 · Поправил: q_q SolidCode преобразование из hex строки в число ... У меня пока получилось лишь так Тип числа - signed/unsigned? Что будет результатом твоего варианта, если исходная строка содержит F'FFFF'FFFF, т.е. допустимых символов больше, чем вмещает eax? не должен требовать ещё каких-либо библиотек У меня нет возможности проверить все версии windows, afaik msvcrt есть всегда. Теоретически можно посмотреть исходный текст sscanf, только он не тривиальный, потому что рассчитан не только на strhex_to_int. берём один и тот же адрес в памяти, но интерпретируем по-разному ... Правильно? Правильно. Только учти, что элементом структуры/объединения может быть структура/объединение. А как насчёт hex-строки. Быстрее варианты есть? Ты же просил не просто строку, а "до первого символа, который не..." Зачем быстрые, тебе много преобразований в секунду надо делать. Imho работа в отладчике не терпит суеты - подумал, порулил, посмотрел результаты, подумал и т.д. концепция плагина получается следующая Мне нравится. |
|
|
Дата: Июн 9, 2004 03:40:48 > Мне нравится. А я не понимаю зачем может пригодиться такой плагин ;-) |
|
|
Дата: Июн 9, 2004 11:31:44 А я не понимаю зачем может пригодиться такой плагин ;-) Я вот тут в олли ковырял свою прогу. Она брыкалась на обращении к GetOpenFileName. И у меня не оказалось интрумента, чтобы просто и быстро проверить правильность всех полей в структуре, которая ей передавалась. Не важно, что проблема оказалась в другом. Я это выяснил после похода на Олли форум. Всё-равно есть потребность в плаге, который позволяет быстро и удобно проверять все поля структуры. В Паскале такое было... А в перспективе планируется и редактирование памяти из плага. Правда, я ещё не продумал до конца, как прикрутить флаги к соответствующим переменным. Хотя бы к той же (OPENFILENAME ptr [eax]).Flags |
|
|
Дата: Июн 9, 2004 12:14:37 SolidCode не оказалось интрумента Вывод отладочных сообщений? Использование vkdebug? |
|
|
Дата: Июн 9, 2004 13:43:11 Что подразумевается под отладочными сообщениями? Мне удобен Олли, встроенный в РадАСМ. |
|
|
Дата: Июн 10, 2004 03:50:10 SolidCode OutputDebugString + DbgView, MessageBox, и, наконец, просто запись log-файла. удобен Олли, встроенный Чем он удобнее просто OllyDbg? |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.057 |