Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Дизассемблирование библиотеки 
:(
    Опции темы
T0ohtik
Дата 23.2.2009, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 9.2.2008

Репутация: нет
Всего: 1



Привет! С ассемблером знаком весьма смутно, в пределах университетской программы.Сейчас программирую на С/С++ под UNIX (Mac OS). Так получилось, что надо дизассемблировать одну динамическую библиотеку (dylib) найти одну функцию и узнать какие она параметры принимает (тип, количество) и какие возвращает. Либу открывал через IDA. Функцию нашел, но по коду только смутные представления:
Код

__text:30A59EB0                 BL      _SBGetApplicationBadge
__text:30A59EB4                 CMP     R0, #0
__text:30A59EB8                 BNE     loc_30A59EE4
__text:30A59EBC                 LDRSB   R3, [SP]
__text:30A59EC0                 CMP     R3, #0
__text:30A59EC4                 BEQ     loc_30A59EE4
__text:30A59EC8                 LDR     R0, =(unk_38A85224 - 0x30A59EE0)
__text:30A59ECC                 LDR     R1, =(unk_38A8718C - 0x30A59EDC)
__text:30A59ED0                 MOV     R2, SP
__text:30A59ED4                 LDR     R1, [PC,R1]     ; "stringWithUTF8String:"
__text:30A59ED8                 LDR     R0, [PC,R0]
__text:30A59EDC                 BL      _objc_msgSend
__text:30A59EE0                 B       loc_30A59EE8
__text:30A59EE4 ; ---------------------------------------------------------------------------
__text:30A59EE4
__text:30A59EE4 loc_30A59EE4                            ; CODE XREF: __text:30A59EB8j
__text:30A59EE4                                         ; __text:30A59EC4j
__text:30A59EE4                 MOV     R0, #0
__text:30A59EE8
__text:30A59EE8 loc_30A59EE8                            ; CODE XREF: __text:30A59EE0j
__text:30A59EE8                 SUB     SP, R7, #8
__text:30A59EEC                 LDMFD   SP!, {R4,R5,R7,PC}
__text:30A59EEC ; ---------------------------------------------------------------------------
__text:30A59EF0 off_30A59EF0    DCD unk_38A871EC - 0x30A59E88 ; DATA XREF: __text:30A59E78r
__text:30A59EF4 off_30A59EF4    DCD unk_38A872DC - 0x30A59E9C ; DATA XREF: __text:30A59E90r
__text:30A59EF8 off_30A59EF8    DCD unk_38A85224 - 0x30A59EE0 ; DATA XREF: __text:30A59EC8r
__text:30A59EFC off_30A59EFC    DCD unk_38A8718C - 0x30A59EDC ; DATA XREF: __text:30A59ECCr


Как я понял CMP     R0, #0 делает сравнение 0 параметра функции с #0. #0 - это скорее всего строка? А R0, R1 ... Rx - это параметры функции? Что значит строка LDRSB   R3, [SP] - по гуглу понял, что это загрузка из памяти?
Далее следует вообще что то не понятное:
LDR     R0, =(unk_38A85224 - 0x30A59EE0) при наведении мышки на unk_38A85224 всплывает подсказка, в ней присутствует слово NSString - в Ojective C это строка. Т.е. как я понял идет объявление строки? Заранее спасибо!
PM MAIL   Вверх
p51x
Дата 19.3.2009, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 19.12.2008

Репутация: нет
Всего: нет



Rx - регистры, #0 - это 0
LDRSB  R3, [SP]     - загрузка байта со знаком в регистр R3 из памяти, адрес в SP
LDR     R0, =(unk_38A85224 - 0x30A59EE0) - это не объявление, а загрузка в регистр (возможно указателя на строку)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0398 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.