Много людей юзают IDA для портирования и для других целей И вот сегодня я решил написать статью по настройке этой полезной программы для тех, кто не догадался покопаться в конфиге надеюсь, что статья будет полезной и пользоваться идой будет еще удонее. И так открываем конфиг
то в конфиге, который мы открыли нужно в секции Keyboard hotkey definitions убрать строку :
"OpNumber" = '#'
[2] Открытие папки IDC скриптов
Когда применяешь патч, а потом хочешь применить еще какой-нибудь скрипт то когда делаешь IDC Open то появляется не папка скриптов, а папка где лежал последний примененный патч. Для того чтобы всегда открывалась папка скриптов меняем в конфиге следующее (в самом начале конфига):
OPEN_DEFAULT_IDC_PATH = YES
[3] Добавляем в фильтр Open... расширения *.raw и *.mbn
Чтобы в диалоге открытия файла были прошивки SE нужно поменять секцию File extension definitions и Default file filter
// Identifier, Name, Extension(s) FILE_EXTENSIONS = { // file formats: // Sony Ericsson FIRMWARE_SE, "Sony Ericsson Firmware Files", "*.mbn;*.raw" // Windows EXE_WIN, "PE Executables", "*.exe" DLL_WIN, "PE Dynamic Libraries", "*.dll" OCX_WIN, ".ocx PE ActiveX Controls", "*.ocx" DRV_WIN, "PE/LE/NE Device Drivers", "*.sys;*.vxd;*.386;*.drv" OBJ_WIN, "COFF/OMF Object Files", "*.obj" LIB_WIN, "COFF/OMF Static Libraries", "*.lib" // DOS EXE_DOS, "MZ/LE/DJGPP-COFF/Watcom-W32RUN Executables", "*.exe" EXE_COM_DOS, ".com Executables", "*.com" DRV_DOS, ".sys Device Drivers", "*.sys" OVR_DOS, ".ovr Overlay Files", "*.ovr" OBJ_DOS, "OMF Object Files", "*.obj" LIB_DOS, "OMF Static Libraries", "*.lib" EXE_PHARLAP, ".exp PharLap Protected Mode Executables", "*.exp" // Unix EXE_UNIX, "ELF/COFF/A.OUT/QNX/SOM Executables", "*" DLL_UNIX, "ELF/COFF Dynamic Libraries", "*.so;*.so.*" OBJ_UNIX, "ELF/COFF/SOM Object Files", "*.o" LIB_UNIX, "ELF/COFF Static Libraries", "*.a" DLL_HPUX, ".sl HP-UX SOM Dynamic Libraries", "*.sl" // Mac EXE_MACOSX, "Mac OS X Mach-O Executables", "*" DLL_MACOSX, "Mac OS X Mach-O Dynamic Libraries", "*.dylib" EXE_MACOS, "Mac OS PEF Executables", "*" OBJ_MACOSX, "Mac OS X Mach-O Object Files", "*.o" LIB_MACOSX, "Mac OS X Mach-O Static Libraries", "*.a" // Java CLASS_JAVA, "Java Class Files", "*.cla*;*.cls" ZIP_JAVA, ".jar/.zip Java Archives", "*.jar;*.zip" // .NET EXE_NET, ".NET Executables", "*.exe" DLL_NET, ".NET Dynamic Libraries", "*.dll" // various OS's EXE_OS2, "OS/2 LX Executables", "*.exe" DRV_NETWARE, "NetWare Loadable Modules", "*.nlm;*.lan;*.dsk" EXE_BEOS, "BeOS ELF/PEF Executables", "*" AMIGA, "Amiga Hunk Files", "*" GEOS, "GeoWorks GEOS Files", "*.geo" OS9, "OS-9 Object Files", "*" EXE_FLEX, ".cmd Motorola FLEX OS Executables", "*.cmd" EXE_RT11, ".sav PDP-11/RT-11 Executables", "*.sav" // PDAs/handhelds EXE_ARM, ".axf ARM Executables", "*.axf" OBJ_ARM, "ARM Object Files", "*.o" EXE_EPOC, ".app Symbian EPOC Executables", "*.app" SIS_EPOC, ".sis Symbian EPOC Installation Files", "*.sis" EXE_PALM, ".prc Palm Pilot Executables", "*.prc" // consoles EXE_XBOX, ".xbe Xbox Executables", "*.xbe" EXE_N64, ".v64 Nintendo ROM Images", "*.v64" ROM_NGB, ".bin Nintendo GameBoy ROM Images", "*.bin" BIN_SPSX, ".bin Sony PlayStation BIOS Images", "*.bin" EXE_SPSX, ".psx Sony PlayStation Executables", "*.psx" OBJ_SPSX, "Sony PlayStation Object Files", "*.obj;*.o" EXE_SDC, ".elf Sega Dreamcast ELF Executables", "*.elf" // embedded INTEL_HEX, ".hex Intel/MOS Hexadecimal Files", "*.hex" S19_HEX, ".s19 Motorola S-record Hexadecimal Files", "*.s19" OBJ_INTEL, "Intel OMF-386 Object Files", "*.obj" MAS, ".p MAS Macro Assembler Code Files", "*.p" SBN, ".sbn Structured Binary Format Files", "*.sbn" // binary files RAW_BIN, "Binary/Raw Files", "*.bin;*.raw" ROM_BIN, "ROM Images", "*.rom" DUMP_BIN, "Dump Files", "*.dmp;*.dump" // file categories (mainly used to define the default file filter): ALL, "All Files", "*.*" IDB, "IDA Databases", IDB_EXT EXE, "Executable Files", EXE_* DLL, "Dynamic Libraries", DLL_* DRV, "Drivers", DRV_* OBJLIB, "Object Files and Libraries", OBJ_*;LIB_* JAVA, "Java Files", *_JAVA NET, ".NET Files", *_NET ARM, "ARM Files", *_ARM EPOC, "Symbian EPOC Files", *_EPOC SPSX, "Sony PlayStation Files", *_SPSX HEX, "Hexadecimal Files", *_HEX KNOWN, "All known file extensions", * }
// // Default file filter (used by the Open command) //
DEFAULT_FILE_FILTER = { FIRMWARE_SE KNOWN ALL IDB EXE DLL DRV OBJLIB JAVA NET DRV_NETWARE GEOS EXE_FLEX EXE_RT11 ARM EPOC SPSX EXE_PALM EXE_XBOX EXE_N64 EXE_SDC HEX MAS SBN RAW_BIN ROM_BIN DUMP_BIN }
теперь при открытии файла в фильтре будет пункт: "Sony Ericsson Firmware Files (*.raw;*.mbn)
С этим файлом конфига все. Если пороетесь, может чего еще найдете, я только основное и полезное описал
Теперь открываем %IDA%\cfg\ida.cfg
[4] Автоматический выбор процессора
Надоело выбирать всегда ARM710a и жать кнопку Set? Меняем секцию Default Processor:
Default Processor:
DEFAULT_PROCESSOR = { /* Extension Processor */ "mbn" : "arm710a" // Sony Ericsson "raw" : "arm710a" // Firmwares "com" : "" // IDA will try the specified "exe" : "" // extensions if no extension is "dll" : "" // given. "drv" : "" "sys" : "" "bin" : "" // Empty processor means the default processor "ovl" : "" "ovr" : "" "ov?" : "" "nlm" : "" "lan" : "" "dsk" : "" "obj" : "" "prc" : "68000" // PalmPilot programs "axf" : "arm710a" "h68" : "68000" // MC68000 for *.H68 files "i51" : "8051" // i8051 for *.I51 files "sav" : "pdp11" // PDP-11 for *.SAV files "rom" : "z80" // Z80 for *.ROM files "cla*": "java" "s19": "6811" "epoc": "arm" "o": "" "*": "" // Default processor }
Теперь сразу будет выбираться ARM710a
PS: Если вы используете babe loader от den_po то процессор автоматически меняется на арм710а
[5] Количество opcode байт всегда 4 Если вы портировали патчи то наверно всегда ставили в настройках при запуске Number of opcode bytes = 4. Теперь это там будет по умолчанию. Ищем секцию Text Representation
OPCODE_BYTES = 4
[6] Disable pointer dereferencing Если вам надоело ставить галочку и хотите, чтобы она сама ставилась то тогда ищите строку:
ARM_NO_PTR_DEREF = YES
И напоследок. Для удобства у меня сделано два ярлыка W660 R8BB001 и W660 R8BB001 Orange. Нажимаю на них и мне остается только нажать кнопку ОК и прошивка со всеми настроенными вещами (см. выше) грузиться сразу. На ярлык надо прописать:
DuXeN0N, последнее про ссылку... По моему проще открывать файл '.idb'. Он создается при сохранении. А уж открывая его у тебя и будут настройки которые ты задал именно для этого файла.:)
Nokia N900 Спасибо: Va_st, Therion. ---------------------------------- WMR 112182965768
Спасибо сказали: DuXeN0N
DuXeN0N
Patcher/Elfmaker
Регистрация: 17.8.08 Сообщений: 230 Репутация: 842 Откуда: Урал
DuXeN0N, плохо :) и каждый раз дизасмишь прошивку по новой. И тем более в сохраненной базе сохраняются все твои комментарии, подписи, имена функций. Так что есть смысл задуматься.
Nokia N900 Спасибо: Va_st, Therion. ---------------------------------- WMR 112182965768
то в конфиге, который мы открыли нужно в секции Keyboard hotkey definitions убрать строку :
"OpNumber" = '#'
русская раскладка клавиатуры по умолчанию - отстой. с английской этой проблемы нет.
[4] Автоматический выбор процессора
Надоело выбирать всегда ARM710a и жать кнопку Set? Меняем секцию Default Processor:
DEFAULT_PROCESSOR = { /* Extension Processor */ "mbn" : "arm710a" // Sony Ericsson Теперь сразу будет выбираться ARM710a
некоторые до сих пор не вкурили, что при использовании ida babe loader и ida cxc loader по барабану, какой тип проца ставить, лоадер всё равно поставит арм
[6] Disable pointer dereferencing Если вам надоело ставить галочку и хотите, чтобы она сама ставилась то тогда ищите строку:
ну да, если ида нужна только тупо портировать патчи, то галка может быть и удобной. если же нужно читать и анализировать код, то без неё гораздо лучше.
и да, каждый раз создавать базу заново - большая глупость
DuXeN0N, а ты случайно не знаешь, можно ли сделать, чтобы окошечко с когда-либо применёнными idc скриптами всегда висело и после перезапуска ИДЫ не пропадало?
Sony Xperia XZ3 Green Sony Xperia Z3 Compact Orange W995i SW-R1GA026 :(
DuXeN0N
Patcher/Elfmaker
Регистрация: 17.8.08 Сообщений: 230 Репутация: 842 Откуда: Урал
Вы не можете начинать темы. Вы не можете редактировать свои сообщения. Вы не можете создавать опросы. Вы не можете вкладывать файлы в сообщения. Вы не можете отвечать на сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать.