Сейчас на форуме: -Sanchez- (+6 невидимых)

 eXeL@B —› Основной форум —› Использование IDA Pro
<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . 35 . 36 . 37 ... 50 . 51 . >>
Посл.ответ Сообщение

Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 08 августа 2008 18:53
· Личное сообщение · #1

Здесь предлагаю обмениваться опытом использования, настройки этой тулзы.

Сегодня в Options->Color настроил основное окно дизассемблера все в старом классическом стиле Borland ща стало или в стиле Far(для справки первая версия была написана на Borland C++), но когда подносишь курсор на jne\je то в хинте появляется фон бежевый. Вот никак не могу найти место где это настраивается?! Может кто шарит ? )

-----
My love is very cool girl.




Ранг: 33.8 (посетитель), 11thx
Активность: 0.020.01
Статус: Участник

Создано: 21 июля 2014 18:17
· Личное сообщение · #2

смысл есть - автоматический анализ переданных аргументов в ф-ию.
И в зависимости от типа и/или значений этих самых аргументов деобфуцировать так или иначе.
Это хорошо, когда ф-ий 2 - 200 - 1000, а когда их больше 9000, да еще от билда к билду меняется логика ...

Посмотрел funcap
Ну ... тут Debug api используется.
Так можно договориться до того, что нафига тогда вобще нужен дизассемблер, когда есть отладчик.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 21 июля 2014 18:26
· Личное сообщение · #3

деобфускатор есть только один под ида, он на питоне http://code.google.com/p/optimice/
пилите-фиксите, говорят автор чето там даже хочет обновить, но за два года воз и ныне там, автор занят

все остальные деобфускаторы должны работать под отладчиком (я считаю)
соответственно для этого в новую иду был добавлен PIN
который умеет и трейсить и которым гугл говорит можно деобфускировать - анпакать



Ранг: 5.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 21 июля 2014 20:19
· Личное сообщение · #4

reversecode пишет:
деобфускатор есть только один под ида, он на питоне http://code.google.com/p/optimice/


еще был такой плагин ariadne




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 21 июля 2014 20:21
· Личное сообщение · #5

был был, я его постил на форуме
но он уже сто лет как заброшен, и авторов не слышно



Ранг: 33.8 (посетитель), 11thx
Активность: 0.020.01
Статус: Участник

Создано: 21 июля 2014 21:34
· Личное сообщение · #6

Сам спрашиваю - сам отвечаю
цитата из sdk
// Emulate instruction, create cross-references, plan to analyze
// subsequent instructions, modify flags etc. Upon entrance to this function
// all information about the instruction is in 'cmd' structure.
// If zero is returned, the kernel will delete the instruction.

int (idaapi* u_emu) (void);

Вот похоже "она" и расставляет каменты к аргументам на стеке.
Может у кого завалялись сырцы pc / pc64 процессорного модуля?



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 21 июля 2014 22:47
· Личное сообщение · #7

awlost пишет:
Может у кого завалялись сырцы pc / pc64 процессорного модуля?


а они когда-нить шли в исходниках, пардоньте?



Ранг: 46.1 (посетитель), 1thx
Активность: 0.02=0.02
Статус: Участник

Создано: 31 июля 2014 00:16 · Поправил: carver
· Личное сообщение · #8

подскажите, есть ли какой плагин/скрипт, автоматически делающий в IDA ссылки ?
помнится раньше для llvm+ios - был похожий плагин, но там было попроще и потом IDA сама научилась.

а тут посложнее и ида - пока не умеет.

сам файл с интернет-рутера: Linux mifi 3.0.21+ #1 PREEMPT Thu Dec 12 13:02:50 PST 2013 armv7l GNU/Linux

Code:
  1. .text:00009570         STMFD   SP!, {R4-R6,R11,LR}
  2. .text:00009574         ADD     R11, SP, #0x10
  3. .text:00009578         SUB     SP, SP, #0xAB0
  4. .text:0000957C         SUB     SP, SP, #4
  5. #инициализация #var_AC0
  6. .text:00009580         LDR     R0, =unk_4CB68
  7. .text:00009584         STR     R0, [R11,#var_AC0]
  8. .text:00009588         LDR     R1, [R11,#var_AC0]
  9. .text:0000958C         ADD     R1, PC, R1
  10. .text:00009590         STR     R1, [R11,#var_AC0]
  11. # и дальше по процедуре, все ссылки типа таких
  12. .text:000095D0         LDR     R3, =0x26C
  13. .text:000095D4         LDR     R0, [R11,#var_AC0]
  14. .text:000095D8         LDR     R2, [R0,R3]

хотелось бы в последнем "LDR R2, [R0,R3]" - что-бы автоматически расчиталось смещение




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 31 июля 2014 00:35
· Личное сообщение · #9

стягиваете 6.6 демо, пробуете, если распарсила - значит научилась
если нет - то нет



Ранг: 46.1 (посетитель), 1thx
Активность: 0.02=0.02
Статус: Участник

Создано: 31 июля 2014 02:49
· Личное сообщение · #10

да, именно такое ида пока не умеет.

в похожих случаях решали скрипами, но я не нашол готового.
не уверен что у самого выйдет, даже с алгоритмом, поэтому и спросил.




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 31 июля 2014 12:38 · Поправил: DenCoder
· Личное сообщение · #11

carver
Пробовали перед автоанализом убирать галочку explicit RIP-addressing? Оно (эта опция) на последней странице мастера настроек перед анализом



Не важно, что там в заголовке MAC OS, главное - принцип. Я любил раньше эту галочку всегда ставить. Можно изменить файл конфига иды, чтобы она всегда там стояла. Но вот при реверсе именно ARM v6 - v7 эта галочка оказалась лишней. И без неё появляется больше ссылок

-----
IZ.RU


| Сообщение посчитали полезным: carver

Ранг: 46.1 (посетитель), 1thx
Активность: 0.02=0.02
Статус: Участник

Создано: 01 августа 2014 00:25 · Поправил: carver
· Личное сообщение · #12

в арме такой опции нет, но спасибо. запомню для интелов.

у меня, скореее в *.so линукса, оказалось что все упрошается до
Code:
  1. .text:000095D0         LDR     R3, =0x26C
  2. .text:000095D4         LDR     R0, [R11,#var_AC0] ; var_бла-бла - всегда один адресс
  3. .text:000095D8         LDR     R2, [R0,R3]


тут я и сам наверное какой-то простой скрипт напишу,
шоб по нахжтию кнопки, поправить ссылки, и руками в нескоких процедурах нажму кнопку.




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 01 августа 2014 11:50 · Поправил: BoRoV
· Личное сообщение · #13

HexRaysCodeXplorer v1.2
- Bug fixes
- Added support for IDA v6.6 and Hex-Rays Decompiler (x86) v2.0
--> Link <--

Версию 2.0 выпустят в октябре и презентуют на конференции H2HC --> Link <--

-----
Лучше быть одиноким, но свободным © $me




Ранг: 95.1 (постоянный), 247thx
Активность: 0.260.01
Статус: Участник

Создано: 01 августа 2014 13:22
· Личное сообщение · #14

BoRoV пишет:
Версию 2.0 выпустят в октябре и презентуют на конференции H2HC --> Link <--

Ну и е...рожи трушные программеры.

-----
TEST YOUR MIGHT




Ранг: 33.8 (посетитель), 11thx
Активность: 0.020.01
Статус: Участник

Создано: 01 августа 2014 16:38 · Поправил: awlost
· Личное сообщение · #15

хм хм нашел "баг", точнее не нашел вот что:
в lines.hpp есть:
Code:
  1. int gen_labeled_line(ea_t ea);
  2. int gen_lname_line(ea_t ea, bool make_null);

а в lib эти функции отсутствуют.
в 6.1 и в 6.5 сдк
Может называются как-то иначе. Кто-нибудь в курсе?

add:
Сам спрошу и сам отвечу:
ф-ии не экспортируемые (нету спецификатора ida_export)

add2:
может понадобится кому
.text:10073A60 - int gen_lname_line(ea_t ea, bool make_null) в ida.wll от .6.1.110315




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 02 августа 2014 14:58
· Личное сообщение · #16

carver пишет:
в арме такой опции нет

Да, точно, для бинарей от некоторых процессоров не сделали...

Для не-бинарей - MACH-O, ARM есть.
Для бинарей, Intel есть.
...

И опцию эту относят то туда, то сюда... Бардак какой-то с опциями получается

-----
IZ.RU




Ранг: 5.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 07 августа 2014 03:09
· Личное сообщение · #17

как с помощью idaapi во время дебага получить unicode строку, указатель на которую находится в регистре?

Пробую что-то вроде этого
getString(GetRegValue("EAX"), -1, ASCSTR_UNICODE)
TypeError: getString() takes exactly 2 arguments (3 given) # в манах 3!

getString(GetRegValue("EAX"), -1)
TypeError: in method 'get_max_ascii_length', argument 2 of type 'int32'




Ранг: 158.5 (ветеран), 219thx
Активность: 0.120.01
Статус: Участник

Создано: 07 августа 2014 04:57
· Личное сообщение · #18

litecoiner
Может так?
r_eax = GetRegValue("EAX");
ret_string = GetString(DWORD(r_eax), -1, ASCSTR_UNICODE);

-----
One death is a tragedy, one million is a statistic.




Ранг: 5.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 07 августа 2014 12:41
· Личное сообщение · #19

ZaZa, спасибо, вот так заработало
GetString(GetRegValue("R1"), -1, ASCSTR_UNICODE) (регистр важен)



Ранг: 33.8 (посетитель), 11thx
Активность: 0.020.01
Статус: Участник

Создано: 09 августа 2014 12:49 · Поправил: awlost
· Личное сообщение · #20

awlost пишет:
Уважаемые гуру скиптов и плагинов, подскажите вот что.Когда у функции есть (указан) тип, т.е. задан в виде

Code:
BOOL __cdecl Function(void *arg0, void *arg1, int arg2)


то автоанализ, встречая вызов такой функции, помечает ее аргументы на стеке в виде коментариев:

Code:
.text:13028F7C                 jnz     short loc_13028F97.text:13028F7E                 push    0 ; arg2
.text:13028F80                 push    0; arg1.text:13028F82                 push    esi; arg0
.text:13028F83                 call    Function.text:13028F88                 test    eax, eax


Возвращаясь к вопросу.
За расстановку комментариев отвечает ф-ия set_cmt
А непосредственно анализ "ГДЕ" - apply_callee_type(...)

PS.
Ничего магического в apply_callee_type нет.
Анализ изменения стека и/или анализ аргументов в регистрах



Ранг: 15.5 (новичок), 6thx
Активность: 0.01=0.01
Статус: Участник

Создано: 14 августа 2014 16:19
· Личное сообщение · #21

Ковыряю экзешник древней досовской игрушки, написанной на Turbo C. Модель памяти - Compact, т.е. множество сегментов кода, но один сегмент данных. Ида, выстраивая стек в функциях, принимающих указатели на данные, ближние указатели трактует как дальние, получается фигня. Выбор соответствующей модели памяти в Options -> Compiler ни на что не влияет. В Ида 6.1 выкручивался, жмакая Y, указывая в прототипе функции указатели как near и правя стек руками. В 6.5 правка прототипа вообще не приводит ни к каким изменениям в стеке функции. Может я что-то не так делаю?



Ранг: 33.8 (посетитель), 11thx
Активность: 0.020.01
Статус: Участник

Создано: 14 августа 2014 17:13 · Поправил: awlost
· Личное сообщение · #22

Глюкалово какое-то с этой 6.5

1
экспортируем inc:
Writing include file D:\ida.inc
Assembler include file has been created, total 0 lines.

2
в "заголовок" листинга не добавляется include ida.inc (возможно как раз из-за 0 lines)

3
экспортируем asm
все структуры, что должны быть в inc, все прям с начала файла, еще "до шапки"

Решается конечно скриптом (или плагином) но как-то все равно осадочек есть



Ранг: 27.8 (посетитель), 13thx
Активность: 0.030
Статус: Участник

Создано: 16 августа 2014 21:12 · Поправил: microxa
· Личное сообщение · #23

ребят, и всетоке больной вопрос чем всетоки сгребать ASMъ c иды обратно таки в бинарь? а то ток две тулзы после некоторых правок собирают tasm32, и ML ехе (в опции совместимости с masm5.1), ток они оба глючат если файлики больше метра. воткомовским wasm- еще мог собирать но чет всё глючно.


в принципе как попривык, с иды на тасм, обджик потом вконпилировать в дельфу. и уж потом если все хорошо отработает по частям на дельфеассемблер оформлять. К примеру диелелка от секретного драйверка реалтек ASIO, что для рилтаймового ввода вывода звука. кому если интересно
--> http://pastebin.com/K1JeZEXi <--



Ранг: 3.2 (гость), 4thx
Активность: 0.010
Статус: Участник

Создано: 19 августа 2014 14:52 · Поправил: maximrouf
· Личное сообщение · #24

Вопрос снят.
*удалил библиотеку, нашел точку по ошибке доступа*

Вопрос новичка.
Я присоединяюсь к процессу с помощью IDA 6.5 (т.е. к запущенному приложению) и работаю с ним.
В некоторый момент времени загружается dll которой не было на момент присоединения.
Мне надо установить точку остановки в самом начале загрузки этой библиотеки.

Какие у меня сложности – Условий для вызова этой библиотеки сотни. Я не могу повесить остановку на каждое такое условие.

Что у меня есть – имя этой библиотеки и возможность ее редактирования в отдельном окне Иды.
Есть ли у Иды инструмент или настройка, которая может сделать остановку или паузу во время загрузки dll?
Спасибо.




Ранг: 33.8 (посетитель), 11thx
Активность: 0.020.01
Статус: Участник

Создано: 19 августа 2014 16:46
· Личное сообщение · #25

maximrouf пишет:
Есть ли у Иды инструмент или настройка, которая может сделать остановку или паузу во время загрузки dll?

Debugger -> Debugger setup -> Suspend on library load/unload
удачи



Ранг: 27.8 (посетитель), 13thx
Активность: 0.030
Статус: Участник

Создано: 20 августа 2014 12:34 · Поправил: microxa
· Личное сообщение · #26

Еще раз перечитал труды комрада Erfaren, но не могу сказать что такой путь "пиления гирь, ножовочным полотном" мне подходит...

добавлю пять копеек относительно быстрой сборки библ для MS-линкера (для не тяжелых случаев сборки MASM-ом): главная фишка состоит в использовании
Intel C++ Compiler, с опциями
Code:
  1. icc /LD /Zl /Gr  kernel32.c



сишный фейк на kernel32.c (и прочих/прочих по мере надобности), у меня примерно такого содержания

Code:
  1. #define begin  __declspec(dllexport)
  2. #define end (){}
  3.  
  4.                 begin WideCharToMultiByte end
  5.                 begin GetModuleFileNameA end
  6.                 begin GetModuleHandleA end
  7.                 begin CreateThread end
  8.                 begin CreateEventA end
  9.                 begin GetCurrentProcessId end
  10.                 begin WaitForSingleObject end
  11.                 begin SetEvent end
  12.                 begin ReleaseMutex end
  13.                 ...
  14.  



ну и более/менее автоматически создаеться либа импорта, с достаточным минимумом телодвижений..


Хоть ML и уделывает TASM32, в корректной пересборке 2.5 метрового tasm32.asm, но что-то "obj" несмотря на опци "-omf"
дельфикомпилером не принимаеться ( эх.. а этоже тааакой бубльгум...


п.сЫЫЫ!

JWASM32 (JWasm v2.12pre, Nov 27 2013, Masm-compatible assembler), после незначительных правок по соурсу (в основном переправкой "repe" на "rep" ), и с опцией "-Zm" (совместимость с масмом) пересобрал тасм32.asm, причем 230кб обьектник был легко прожеван DCC32-ым ... Будем тестить на более сложных тематиках..

з.зы
Сборки средней тяжести (те что с приплюснутым рунтаймом), вроде как полет нормальный, единственное что
MS-link не хочет конвертать инвалидный OMF формат, но благо у него выхлоп в COFF имееться...


JWASM, в релизе v2.11a, доступен с сорцах, на ура пересобираеться CL/ICL (причем быстрее чем он сам компилирует).

Хотя больше интересовала сборка BCB6-ого (опятьже таки из за его бубльгумистости с дельфой), но чето увы какието лаги
(идет из parser.c) на собирании:

Code:
  1. !tasm32.asm(330) : Error A2048: Operands must be the same size: 1 - 4


Такбы вот пофиксить траблу с "repe", и был бы достаточно "IDA/DCC совместимый" инстрюмент..
...
добалено:
в принципе сорцы довольно логично устроены, за исключением некоторых моментов, но благо хоть на сишке, поддержка x64/SSE4, за одно это можно всё простить и поиграть в пазл/расследование - "собери это на борланде в миксе с визуалом си"... (цель - конечно захватить парсер/анализатор, и хендлить на несколько более простом и туповатом дельфе, на котором можно и подумать)

а так в "instruct.h" конец строки 287, пилится до AP_REP) //xx) и... пилите шура пилите, да компелируйте...
Code:
  1. @set path=c:\vc71\bin\
  2. @set include=c:\vc71\include\
  3. @set lib=c:\vc71\lib\
  4. ::icl -arch:SSE2 -Ot -I".\H" -O2 -Gs -DNDEBUG *.-link -out:jwasm.exe
  5. cl -arch:SSE -Os -I".\H" -O2 -Gs -DNDEBUG *.-link -out:jwasm.exe




Ранг: 27.8 (посетитель), 13thx
Активность: 0.030
Статус: Участник

Создано: 22 августа 2014 17:57 · Поправил: microxa
· Личное сообщение · #27

хм.. по крайней мере до 2.0х версий, а именно форк 1.96, борделяндом /компилировался/и компилировал, но движок там еще старый и больной -_- (как раз с ужосом вспомнил про косяки от (с)ваткома)...

А допиленый энтузиастом квэйка2 в досе, движок 2.12 таки осилил сборку 7метров DCC32 от 7рки..Ну в качестве теста... и мда.. , в источнике зла, конкретно 6.1 -ой иде пришлось вырубить тилы и сиги, чтоб был этакий RAW - ASM. и мда.. всетаки ждать чтото там овер 10секунд сборки (хоть и первый проход довольно быстрый), както муторно,. за это время пропадает смысл в творимой алхимии. Но в принципе хоть чтото чем.. хрен его знает чего. Такто вот разборок хватает и с миниатюрами, где во истену познаецо суть того, что нет такой программы (или участка участка кода на асме), которую нельзя былобы сократить, оптимизировать, или занопить.

p.s

в ходе увлекательного, эротического приключения в поисках баги: а именно - обьектник "parser.c" с VC7 конвертился ida6.1 -> далее некоторые поправки (в основном это .code/.data и bla-bla по мелочи)->сборка тасм32-ым, далее скормление уже "omf" обьектника BCB6 ,была установлена аццкая глючность версии 6.1 котороая прохлопала торчащие из COFF-а имена и обьявы, (а именно - "check_size"), соответствено был нагорожен глюканат в по асму. Посему версия 6.1 не может более применяцо в качестве проффесионального инстрюмента.. (

Ну и..

отстрелом с подменой кучки функций с asm образца и обратно... выявился
достаточно тривиальный корень зла в inttype.h, "long" у буилдера мутный
это решилось:
Code:
  1. //typedef unsigned long      uint_32;
  2. //typedef   signed long      int_32;
  3.  
  4. typedef unsigned int uint_32;
  5. typedef int int_32;

получено достаточно ясное представление и о парсере, и о bcb6 который чутли не в полтора/два раза
сливает по скорости cl/icl с мега-оптимайзами, и о том что.. вот нафига оно было надо..

ммм... разбор полетов:
В целом-то, результат оценивался как сомнительный - ведь parser.c имеет обьем кода аж 137кил, (~260кил в асме), даже то что всё срослось с буилдером, на стадии линковки, можно было считать разве что "финтом ушами" - первый блин вышел комом, однако после установки размера вырванивания данных на 8 байт (дефолтная у VC), всё пришло в полнофункциональную норму...

А причина "глюка в 6.1" больше была связана, как с "улучшеной" оптимизацией (arch:SSE) vc71 компилятора, так и с тем как он создает coff-обьектники (которые к примеру, ламповый VC98 считает инвалидными), так что абсолютно некритичный глюк, скорей недооценка других вариантов сборок, с которыми всё вполне приемлимо. (куда неприемлемей менять олдскульный vcl-шный, ынтерфейс, (в силу привычки, предвзятости, и кой каких наработок еще под 5.2-ую) )



Ранг: 27.8 (посетитель), 13thx
Активность: 0.030
Статус: Участник

Создано: 25 августа 2014 06:37 · Поправил: microxa
· Личное сообщение · #28

ндэ.. а плагинчик CodeXplorer v1.1 (по крайней мере, совпадающий с импортом на ida.wll (v6.3)) чтото не хочет запускацо, странно.. по крайней мере, каких то особых requires нету. да версия IDP_INTERFACE_VERSION = 4С (76)
(трабла периодически решаецо, так как.. ну как так? )...

максимум что можно было сделать - внести магическую поправочку под hexrays_sdk6.1 (вместо
обьявленого 0xBE39BABE, по всей видимости рейза1.8/c 6.4 релиза да)

const int HEXRAYS_API_MAGIC1 = 0xC001C0DE;
const int HEXRAYS_API_MAGIC2 = 0xBE36BABE; // xxNNxxxx


ну и таки оно завелось, по крайней мере в Output window

Hex-rays version 1.5.0.110408 has been detected, HexRaysCodeXplorer ready to use
HexRaysCodeXplorer plugin by @REhints loaded.

правда, на вызов контекста правой кнопкой мыши -
IDA has encountered a problem, и вылет с плиз репорт, да...

/me промолчит про попытку сборки bcb6/vc7/и какбы линупсовым, mingw32, собиравшим помницо куда более крутые тематики (он обарал хидеры)
./sdk63/kernwin.hpp:2885: error: ISO C++ forbids casting between pointer-to-func
tion and pointer-to-object
Однако!!!: после того как cpp файлы и заголовочники были переформатированы с юниксного конца строки на виндовый...
cl -c -I".\sdk63" -D__NT__ -D__IDP__ -DWIN32 -DNDEBUG /EHsc CodeXplorer.cpp
по крайней мере с этим - компиль даже не пискнул...
Остальное связано с нововведенными типами данных в sdk6.4
нормально...
и bcb6 тоже комплит (хоть и через шквал варнингов)
#if defined(DONT_DEPRECATE) || defined(__BORLANDC__)
#undef NORETURN <- если впихнуть это
#define NORETURN
...мож пригодицо

ехехе:
собралось то оно конечно собралось (просто надо было откопать версию 1.1), и даже есть добавка в всплывающее контектст-меню, хоткеев и прочих действ, но путем некоторых исправлений, весьма вызывающей манеры написания плюсов "под VS2010-ый шизуал"... Результат - вылет, да и ладно.

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



Ранг: 5.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 30 августа 2014 17:31
· Личное сообщение · #29

кто нибудь знает решение данной проблемы? ida 6.5

380e_30.08.2014_EXELAB.rU.tgz - error.jpg




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 30 августа 2014 17:48
· Личное сообщение · #30

база Idb создана для 16 бит, а запущенный процесс к которому база - 32 бита,
я хз как вы такого добились, да еще и для арма
когда объясните что вы так и как делаете, может мысли у кого какие и появятся



Ранг: 5.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 30 августа 2014 19:23 · Поправил: DumaZik
· Личное сообщение · #31

Как думаю ошибка заключается в том, что само приложение 32 бита, а почему то ее библиотека 16 бит и вовремя дебага выходит нестыковка. может ida плохо работает с Thumb или Thumb-2
использую ida 6.5, android 4.4.2 samsung galaxy s4. кидаю в /data/local/tmp/ два файла android_server и gdbserver.
adb push gdbserver /data/local/tmp
adb push android_server /data/local/tmp

пробрасываю на них порты
adb forward tcp:5039 tcp:5039
adb forward tcp:23946 tcp:23946

выставляю нужные права
adb shell
su
chmod 755 /data/local/tmp/gdbserver
chmod 755 /data/local/tmp/android_server

запускаю нужное приложение на телефоне, затем запускаю андроид сервер
adb shell
su
/data/local/tmp/andoid_server

Через Debugger > Attach to > Remote ARM/Android Debugger ищу приложение. Потом ищу нужное мне смещение библиотеки, запоминаю. (к примеру 739FC000)

Отключаюсь от процесса (Debugger > Detach from process). Процесс на устройстве остается жив.
Далее скопировав с apk этого приложения нужную мне библиотеку открываю в ida. Тут выбираю, то что на скрине (уже начал метод перебора разных архитектур, но пока бестолку), затем указываю ранее найденное смещение выбираю, жду как ida проанализирует. После дебагинг через gdbserver и связываю через порт 5039 (ранее открытый), затем attach to process и все кирдык ошибка.



7faf_30.08.2014_EXELAB.rU.tgz - 111.jpg


<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . 35 . 36 . 37 ... 50 . 51 . >>
 eXeL@B —› Основной форум —› Использование IDA Pro
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати