| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm: Общие вопросы > Дизассемблирование библиотеки |
| Автор: T0ohtik 23.2.2009, 16:25 | ||
Привет! С ассемблером знаком весьма смутно, в пределах университетской программы.Сейчас программирую на С/С++ под UNIX (Mac OS). Так получилось, что надо дизассемблировать одну динамическую библиотеку (dylib) найти одну функцию и узнать какие она параметры принимает (тип, количество) и какие возвращает. Либу открывал через IDA. Функцию нашел, но по коду только смутные представления:
Как я понял CMP R0, #0 делает сравнение 0 параметра функции с #0. #0 - это скорее всего строка? А R0, R1 ... Rx - это параметры функции? Что значит строка LDRSB R3, [SP] - по гуглу понял, что это загрузка из памяти? Далее следует вообще что то не понятное: LDR R0, =(unk_38A85224 - 0x30A59EE0) при наведении мышки на unk_38A85224 всплывает подсказка, в ней присутствует слово NSString - в Ojective C это строка. Т.е. как я понял идет объявление строки? Заранее спасибо! |
| Автор: p51x 19.3.2009, 14:41 |
| Rx - регистры, #0 - это 0 LDRSB R3, [SP] - загрузка байта со знаком в регистр R3 из памяти, адрес в SP LDR R0, =(unk_38A85224 - 0x30A59EE0) - это не объявление, а загрузка в регистр (возможно указателя на строку) |