плагины ida : Патчестроение : Форум |
den_po: |
30.10.10, 04:35 |
обновил по мелочи jdprean и решил выложить всё, что я публиковал из своих плагинов, в одном месте. ida babe loader - загрузчик для mbn файлов db2000/2010/2012/2020/pnx5230. для a2 не подходит. с ним в своё время было много непоняток, народ всё какие-то шаманства повторял. при открытии файла не нужно выбирать тип процессора, вообще ничего не нужно, только убедиться, что в верхнем списке выбрано "SonyEricsson firmware file", и нажать OK. ida cxc loader - такая же штука, что babe loader, но открывает cxc файлы от a2. за исключением типов поддерживаемых файлов, работает так же. плагины-лоадеры кладутся в ida\loaders find bl - простой плагин для поиска вызовов текущей функции (ищет bl/blx). ставите курсор на начало функции, вызываете плагин, ждёте окончания автоанализа, смотрите xref'ы. jdprean - мой первый плагин для анализа арм-кода. разбирает код по нескольким захардкоденым сигнатурам. достаточно тупой, но позволяет автоанализатору ida разобрать довольно внушительную часть прошивки. я сам очень давно им не пользовался, вот, решил попробовать снова. многие считают, что плагин работает очень долго. на самом деле плагин работает относительно быстро (на моём ноутбуке phone_app.cxc от w705 обрабатывает чуть меньше двух минут), а вот автоанализатор ida может после этого очень долго думать. в принципе, автоанализатор не особо мешает работе, так что не обязательно ждать, пока он закончит. sub/page finder - второй плагин для анализа кода. разбирает гораздо меньше, чем jdprean, но при этом даёт нормальные имена куче структур и функций. очень помогает при исследовании кода и при портировании. чтоб функции имели более понятные имена, рекомендуется перед плагином выполнить скрипт getevents_fromtarget (при наличии таргета в исходниках dyn_const для данной прошивки; см. ссылку ниже). плагины кладутся в ida\plugins всё плагины для x86. до кучи ещё ссылки: разбор прошивки - скрипты от mnemo, адаптация lost getevents_fromtarget - скрипт от slawwan, добавляет в базу ida константы из исходников dynconst скрипт для IDA - обзывание функций из библиотеки от slawwan Прикрепленный к сообщению файл: findbl.zip (64.37 kb; 219 hits) Скачать файл ida_babeldr.zip (64.04 kb; 145 hits) Скачать файл ida_cxcldr.zip (69.61 kb; 158 hits) Скачать файл jdprean.zip (22.37 kb; 196 hits) Скачать файл subpagefn.zip (102.13 kb; 220 hits) Скачать файл |
den_po: |
10.12.10, 14:29 |
выложить, в общем-то, некуда, поэтому публикую здесь. простенький патч для модуля процессора ARM к IDA, который ставит двоеточия возле имён меток кода Код: ROM:00000000 label1: ROM:00000000 NOP ROM:00000002 NOP ROM:00000002 ; --------------------------------------------------------------------------- ROM:00000004 label2 DCD 0x12345678 |
den_po: |
03.02.11, 14:11 |
в ida 5.3 макрос MOVL заменили на MOV, чтоб не было путаницы с командой MOVLS (команды MOV в thumb дополняются битом "S"). можно было бы переименовать макрос movl, но мне больше нравится другое решение. я написал плагин, который отображает макрос по-старому. надеюсь, другие макросы/команды он не трогает :D ну и заодно плагин предотвращает перевод в команды последовательностей нулей. |
den_po: |
14.08.11, 23:17 |
wraprenamer - плагин для переименования обёрток на лету. к примеру, вызывается в каком-то месте функция Код: 44F09640 LDR R0, [SP,#0x24+var_24] 44F09642 BL sub_45109760 44F09646 CMP R0, #1 а функция эта - обёртка для обозванной функции Код: 45109760 sub_45109760: ; CODE XREF: sub_44F095BC+86p 45109760 LDR R3, =(BookObj_GetDisplayOrientation+1) 45109762 BX R3 ; BookObj_GetDisplayOrientation 45109762 ; End of function sub_45109760 45109762 45109764 off_45109764 DCD BookObj_GetDisplayOrientation+1 ; DATA XREF: sub_45109760r так вот sub_45109760 будет автоматически переименована в j_BookObj_GetDisplayOrientation даже без перехода на неё Код: 44F09640 LDR R0, [SP,#0x24+var_24] 44F09642 BL j_BookObj_GetDisplayOrientation 44F09646 CMP R0, #1 Добавлено 14.8.11 23:35 вот ведь, только выложил, нашёл ещё один вид обёртки, который не обрабатывался. перезалил. один-два человека успели скачать первую версию Добавлено 15.8.11 00:26 ну и ещё обёртка. есть ещё пара необратабываемых вариантов, но я не уверен, буду ли их добавлять: ldr pc, =... push {lr} bl ... pop {pc} |
den_po: |
02.09.11, 17:37 |
обновил wraprenamer: - не обзывает обёртки для unk_* - нормальное определение для адресов, если указатель лежит не сразу после thumb обёртки - удаление имени обёртки при удалении имени фукнции |
den_po: |
11.03.12, 00:53 |
обновил wraprenamer. теперь в конце имени обёртки добавляется не порядковый номер, а адрес. без этого плагин переименовывал не больше 100 обёрток на каждую функцию |
URL этой темы: https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=5131 © 2005-2018 supertrubka.org |