Ida pro что это за программа
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Необходимо обновить браузер или попробовать использовать другой.
Введение в реверсинг с нуля используя IDA PRO. Часть 1
Дата публикации 12 фев 2017 | Редактировалось 2 дек 2018
Приветствуя тебя, Гость.
Если тебе не очень понравится данный перевод, хочу сказать, что дальше всё становится лучше. Уже сейчас ты можешь открыть последние главы, например №24 или №25 и увидеть, что всё читается по другому. Как только курс будет переведён и закончен, я вернусь к первым главам и переделаю их.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ВВЕДЕНИЕ В РЕВЕРСИНГ С НУЛЯ ИСПОЛЬЗУЯ IDA PRO
Идея этих серий учебных пособий является обновить наш оригинальный курс по реверсингу, но используя IDA PRO. Будем обучаться использовать ее с нуля и работать будем с последней версией Windows. В моем случае, я использую Windows 10 Anniversary Update x64 со всеми патчами, вплоть до 29 октября 2016.
ПОЧЕМУ ИМЕННО IDA PRO
Потому что, пока OllyDBG просто 32-х битный отладчик режима пользователя, а IDA PRO целая программа для реверсинга, которая может быть использована в 32/64 системах, как и отладчик и как дизассемблер. Она позволяет делать статический реверс, который не может быть выполнен в OllyDBG и которая обучает как использовать ее, не смотря на сложный процесс обучения, она позволяет работать в Windows, Linux или Mac как внутри системы, так и удаленно в следующих операционных системах.
Для того, чтобы иметь представление о поддерживаемых процессорах, здесь есть список.
Как мы можем видеть, обучение как использовать IDA позволяет нам улучшить рабочее окружение, мы сфокусируемся на 32/64 разрядной Windows в пользовательском режиме и иногда в режиме ядра. Это позволит нам легче адаптироваться к любому использованию .
Здесь мы увидим большинство вещей, которые мы видели в Введение в отладку с нуля с использованием OllyDBG, но сейчас будет IDA. Попытаемся идти дальше с самого начала.
В этом курсе будет всё: статический и динамический реверс, крякме, будем учиться исследовать эксплоиты и распаковку. Я постараюсь писать о какой-нибудь важной детали с нуля.
Нам нужна IDA PRO. Проблема в том, что это коммерческая программа и мы должны платить за нее и она того стоит. Мы не можем и не будем распространять её, но вы можете поискать утекшие в сеть версии через Гугл по такому запросу: IDA PRO 6.8 + HEXRAYS. Эта версия с которой мы будем работать. Последняя же версия — IDA 6.95.160808 ( 08 Августа 2016).
Когда мы скачали, можем увидеть zip файлы и такой установщик
idapronw_hexarmw_hexx64w_hexx86w_150413_cb5d8b3937caf856aaae75 0455d2b4ae
Пароль на установку хранится в файле install_pass.txt.
Также будет установлен Python 2.7.6. Он используется, чтобы избежать проблем используя другие версии IDA. Если вы установили Питон самостоятельно отдельно, он должен быть той же версии, что использует IDA.
После установки, загрузим крэкме Cruehead, он идет вместе с этим туториалом.
Так как это 32-х битный исполняемый файл, мы загрузим его в IDA для 32-х битных
файлов напрямую.
Если мы запустим крэкме вне IDA, мы увидим через Диспетчер Задач, что это 32-х битный процесс. Если мы хотим знать 32-х битный это или 64-х битный файл, без запуска, мы можем использовать 16-тиричный редактор. Например такой.
Загрузите и установите английскую версию
Самый простой способ — это открыть файл в хекс-редакторе, чтобы узнать какой он.
То, что мы видим — это Snipping Tools. И это 64-х битное приложение. Мы видим, что после слова PE есть следующие значения -> PE..d†
Наш крэкми — 32-х битный, после слова PE видим -> PE..L
Поэтому мы уже знаем какой мы файл имеем, чтобы загрузить его с использованием IDA 32. Когда IDA покажет окно QUICK START, мы выберем NEW, чтобы открыть новый файл, найдем наш крэкми и выберем его.
Сейчас не будем трогать настройки, потому что IDA правильно определила версию файла и мы можем нажать OK.
Если дальше нажмем YES на PROXIMITY VIEW, отобразиться дерево просмотра программы.
Чтобы перейти к графическому режиму или неграфическому — режиму инструкций нужно нажать пробел.
Также в OPTIONS — DEBUGGING OPTIONS — LINE PREFIXES мы можем добавить адреса в переднюю часть при графическом представлении.
Когда вы открываете исполняемый файл, первое, что открывается, это окно дизассемблера, которое называется LOADER, оно не запускает программу, а только ее анализирует для реверсинга и создает файл idb или базу данных (database).
Чтобы отладить программу мы должны выбрать среди всех доступных отладчиков включенных в IDA и запустить его в Режиме отладки, который мы разберем позже
Мы видим, что многие опции программы представлены в виде вкладок, в меню VIEW — OPEN SUBVIEW можно выбрать те вкладки, которые вам нравятся или нужны, чтобы не были открыты все.
Одной из возможных трудностей или неудобств при использовании IDA, пока к ней не привыкнешь, может быть то, что есть части графа, в которых для одного и того же адреса используются разные ссылки, как например, в начале работы — адрес повторяется несколько раз.
То же происходит и в конце, там мы находим начало дизасма, в этом случае инструкция соответствующая 401000 — PUSH 0
В IDA есть возможность настроить интерфейс по умолчанию отдельно для LOADER и для DEBUGGER.
Как только вы привыкнете, например, в LOADER, наиболее часто используемые окна и вкладки можно сохранить, перейдя в WINDOWS-SAVE DESKTOP и отметив «по умолчанию», то же самое можно сделать для режима дебаггера и изменить настройку по умолчанию.
В любой из вкладок IDA, где есть такие списки, как FUNCTIONS, STRINGS, NAMES можно с помощью CTRL+F открыть поисковую систему, которая фильтрует информацию, в соответствии с тем, что мы набираем.
В VIEW-OPEN SUBVIEW-STRINGS точно также будут показываться строки, содержащие «try».
Через VIEW-OPEN SUBVIEW-DISASSEMBLY можно открыть второе дизасм окно, показывающее и выполняющее другие функции.
В OPEN SUBVIEW в LOADER есть hex представление или через вкладку HEX DUMP.
В OPEN SUBVIEW я могу показать импортируемые функции или вкладка IMPORTS.
Во VIEW можно активировать GRAPH OVERVIEW, он выполняет поиск по графику видимых функций и может двигать и изменять ту часть, которая отображается в данный момент на экране
Также имеются вкладки STRUCTURES, EXPORTS, NAMES, SEGMENTS и другие, которые я объясню позже, когда мы их будем использовать
Верхняя панель навигации с помощью различных цветов отображает разные части исполняемого файла.
Ниже поясняется, что обозначает каждый цвет, например, серый — .data, и если на него кликнуть, график сдвинется в секцию, соответствующую серому цвету. На рисунке можно увидеть, что розовая часть соответствует внешнему символу или секции .idata, синяя часть – тому, что определяется как функция в кодовой секции.
В первой части мы сделали лишь первые шаги, в следующих частях мы будем понемногу углубляться в тему.
До встречи во второй части.
Ricardo Narvaja
Перевод на английский: IvinsonCLS
Перевод на русский: Яша_Добрый_Хакер.
27.11.2016
Введение в реверсинг с нуля, с использованием IDA PRO
Для тех, кто не знает, в своё время я взял на себя ответственность перевести испанский курс Introduccion Al Reversing Con Ida Pro Desde Cero под авторством Ricardo Narvaja на русский язык. Прошло 2,5 года и теперь я могу смело сказать, что курс переведен на русский язык. На данный момент это 67 частей. Но это ещё не всё. В конце 67 части, мы можем увидеть, что нас ждёт продолжение. Сейчас же я бы хотел рассказать, про то как я переводил курс, с чем столкнулся при переводе, что узнал и как всё это было.
А было это так, что в ноябре 2016 года, когда я уже почти снял весь курс про отладку www.youtube.com/watch?v=PvA316tqfNE&list=PL59fvn5FIiQG0CrnALLgXzdpDTOk0hrz2
Рикардо оставил в своём твиттере такой пост — twitter.com/ricnar456/status/793441072307376136. Я очень обрадовался этому посту, ведь курс по отладке уже давно не обновлялся и остановился на главе 58. Это был что-то новое и полезное, ведь по Ida Pro не так много литературы, тем более на русском языке — это старая книжка Криса Касперски, всего лишь первый том, из трёх, которые должны были выйти и книга The Ida Pro by Book Chris Eagle.
И вот я приступил к переводу, ведь как я на тот момент знал, испанский очень легкий язык. На тот момент я сразу создал темку на Exelab’е exelab.ru/f/index.php?action=vthread&forum=5&topic=24454. И сразу после создания я получил в ответ, что это сизифов труд. Я очень расстроился, но взбодрился, так как меня сразу поддержал модератор r_e и я понял что нужно продолжать. Но у меня ничего не получалось. Гугл справлялся с переводом очень плохо, а Promt ещё хуже. Тогда я решил искать фрилансера, который помог бы мне перевести текст. Очень многие фрилансеры отказывались помогать, после того как я присылал им исходник, аргументируя, что это нестандартная тема и они не готовы браться. Но всё-таки я нашел одного. Все фрилансеры берут оплату за количество символов или слов и поэтому первые три части мне обошлись ~3т.р. Я стал их обрабатывать, параллельно разбираться в испанском и подготавливать тексты без картинок для следующего перевода, но переводчик-фрилансер мне отказал, сказав, что он больше не готов помогать и мне пришлось остановить перевод. Перевода на форуме уже давно не было, и про меня стали писать, что Яша сдулся. Но в тот самый момент, когда я уже опустил руки, стал появляться перевод на английский язык, сделанным twitter.com/ivinsoncls и только благодаря этому человеку, курс теперь доступен на русском языке. Его перевод остановился на 46 части, но это меня не остановило. До 46 главы я переводил английский текст и параллельно переводил испанский на английский, и русский, и стал замечать, что гугл переводит лучше на английский, чем на русский. Так я и стал обучаться, попутно купив книгу www.chitai-gorod.ru/catalog/book/817261. Переводить тексты Рикардо было очень тяжело. Он постоянно делал в них грамматические ошибки, или просто пропускал буквы, например писал Pedo, а нужно было Puedo. Также, в его текстах абсолютно неправильно расставлены знаки препинания и было совершенно не ясно закончилось ли предложение или нет. То есть, он постоянно опускал точки, или вместо точек ставил запятые или вообще не ставил ничего и получалось одно очень длинное предложение, без точек и запятых, с ошибками в словах и пропущенными символами. Также он придумал очень много слов, производные от английских глаголов, которых нет в испанском, например Pushear, Popea, Pivoteando, Leakeando, Bypassear и т.д. Ещё были слова, которые нормально не переводились через переводчик и нужно было запускать Ida и смотреть что они значат и что делает Ida, например — Armado, Tiros и т.д. Но самое сложное, это то, что он используют обороты и устойчивые выражения, которые новичку очень сложно переводить и которые не переводит онлайн переводчик. Например — «Responded con los pies”. Если перевести это дословно, то получится — „И ответьте ногами“. Правильный же перевод такой — „Принесите ответ“. Также в его тексте встречается очень много одинаковых слов. Когда они повторяются уже по 10 раз на одной страницы, то понимаешь, что это уже слова паразиты. Весь его текст напичкан словам — „Мы видим“. Также в одном предложении может быть до 5 слов — „Который“. Ещё одна из сложностей — это использование местоимений. Совершенно было бы непонятно без картинок о чем он говорит, о каком существительном, просто использует местоимения „это“, „эта“ или „он“ или „она“.
Как только я смог перевести 46 глав, я стал искать переводчика в своём городе, который бы мне помог перевести оставшиеся главы. У меня получилось его найти, и когда я приехал, и показал ему тексты Рикардо, он сказал, что это просто ужас и спросил, точно ли Рикардо испанец. Я ответил, что он с Аргентины, на что он ответил, что в Аргентине так не общаются и это человек либо безграмотен, либо самоучка. Также, во время перевода я стал обучать гугл правильному переводу, засылая ему правильные переводы и набивая словарик в Promt’е, пока уже не стал узнавать и переводить слова без их помощи.
Также всё это время на форуме действовал провокатор, он же гений из Могилева, более известный сообществу интернета как Indy, Clerk, difexacaw(как это читается??). Он постоянно спускал тему на форуме на самое дно, разводя такой оффтоп, что администрация специально создала для этого персонажа кислотную тему, где ему можно было общаться без бана. Видя, что его посты удаляют, он начинал написывать мне в личку, всегда одно и то же — что курс не нужен, что главное — это изучение матчасти и что дизассемблер это для холопа, а он боярин(читай элита) использует только самописный отладчик. Сам того не зная, Инди после своих постов, только заставлял меня больше работать. Так что передаю ему привет. Также спасибо модератором, которые поддерживали меня и защищали от этого персонажа.
Отдельно, я хочу передать привет Александр Гостеву twitter.com/codelancer бывшему сотруднику Лаборатории Касперского, который очень положительно отозвался о моем первом видео курсе и Борису Рютину twitter.com/dukebarman за отзывы о моей работе над переводом.
После того как я опубликовал pdf файл с последним переводом — dropmefiles.com/XYeNL мне поступило такое предложение. Смогу ли я перерисовать все картинки и сделать курс более красивым в плане скриншотов, так как каляки Рикардо не очень красивы, а в 67 части, где он стал оформлять скриншоты как в предыдущем курсе, глава смотрится очень красиво. Я поддерживаю это предложение. Все картинки будут перерисованы, грамматические ошибки исправлены, текст будет вычитан и предложения будут раскрыты. Весь перевод будет таким, как в 67 части.
Также я хочу передать большой привет ребятам с портала Exelab, которые поддерживали меня лайками и заставляли переводить курс дальше — это SReg – 26 лайков, ClockMan – 20, ksol – 18, mak – 14, zNob – 12, а также супер-модераторов, которые также меня поддержали и защищали от нападок Инди — это r_e и Jupiter. Для них я ставлю это песню — www.youtube.com/watch?v=3vD4wmKtOJk
Ещё хочу сказать огромное спасибо администрации Exelab’a за то, что она мне помогла в трудно сложившейся жизненной ситуации — „Спасибо, без Вас бы я не справился“.
Также хочу сказать Спасибо, человеку, который помог мне приобрести ПК для снятия этого курса. Мой старый ПК на котором я снимал первый курс не потянет нормальную работу даже Windows 7. Ещё хочу сказать спасибо всем, кто донатил. Донатов было немного, но они всё же были. Все они пошли на доброе дело. На них я ездил на другой конец города, оплачивал ими перевод и приобрел пару книг по Испанскому.
Всем, кто хочет выразить мне благодарность за проделанную работу и помочь мне в обучении испанскому(Сейчас бы я хотел пойти в языковую школу, чтобы обучаться испанскому.) и переводах дальнейших курсов команды CracksLatinoS прошу посетить мой сайт. Там есть всё что нужно.
P.S.
Так как наш курс называется «Введение в реверсинг с нуля, с использованием IDA PRO», я хочу провести небольшой конкурс. Как Вы уже знаете, я ездил в Успенское в гости к отцу Криса Касперски (об этой поездке я уже расскажу совсем скоро) и отец подарил мне книгу, которую Коля купил, когда был в командировке — The Ida Pro by Book Chris Eagle. Всем, кому интересна это книга, напишите мне на [email protected] с заголовком — «Хочу книгу». Генератор случайных чисел определит, кому она достанется. С Вас нужен будет просто Ваш адрес в России. Перевод по почте России будет бесплатным. Также в качестве бонуса Вы получите эту милую мышу К.К.
About IDA
The IDA Disassembler and Debugger is an interactive, programmable, extensible, multi-processor disassembler hosted on Windows, Linux, or Mac OS X. IDA has become the de-facto standard for the analysis of hostile code, vulnerability research and commercial-off-the-shelf validation.
Numerous changes and additions in
IDA Pro 7.6
Reverse Engineering hobbyist?
IDA Home
was made for you!
IDA Pro in a nutshell
IDA Pro is a disassembler
A disassembler is a piece of software used to translate machine code into a human readable format called assembly language.
The source code of the software we use on a daily basis isn’t always available. A disassembler like IDA Pro is capable of creating maps of their execution to show the binary instructions that are actually executed by the processor in a symbolic representation called assembly language. This disassembly process allows software specialists to analyse programs that are suspected to be nefarious in nature, such as spyware or malware. However, assembly language is hard to read and make sense of. That is why advanced techniques have been implemented into IDA Pro to make that complex code more readable. In some cases, it is possible to revert the binary program back, to a quite close level, to the original source code that produced it. The map of the program’s code can then be post-processed for further investigation.
See also:
Need to get to high level code?
Get our decompiler and win precious time. There is even a free, limited demonstration version for you to try…
IDA Pro is a debugger
A debugger is a computer program that assists in the detection and correction of errors in other computer programs.
In software analysis – as in real life – things are rarely simple and obvious. Hostile code usually does not cooperate with the analyst. Creators of viruses, worms and trojans often write their code in an obfuscated way, making it extremely hard to read and analyse. More powerful tools are thus required to efficiently help analysts. The debugger in IDA Pro complements the static analysis capabilities (examining the code without executing the program) of the disassembler by allowing users to single step through the code being investigated; this way, the debugger often bypasses the obfuscation and helps obtain data that the more powerful static disassembler will be able to process in depth.
IDA Pro runs on Windows, Linux and Mac OS X and can debug a large array of specific platforms (Windows 32/64-bit, Linux 32/64-bit, OS X x86/x64, iOS, Android, etc.). This can be carried out either locally or remotely. Remote debuggers are very useful to safely dissect potentially harmful programs. Some IDA debuggers can also run the application in a virtual environment makinges malware analysis even safer.
IDA Pro is interactive
Because no computer can currently beat the human brain when it comes to exploring the unknown, IDA Pro is fully interactive. IDA always allows the human analyst to override its decisions or to provide hints. A built-in programming language and an open plugin architecture pushes interactivity even further.
A plugin architecture allows a program to call external code at certain points without knowing all the details of that code in advance, therefore adding functionalities to the calling program.
IDA Pro is programmable
IDA Pro is a complete integrated development environment. It consists of a very powerful macro-like language that can be used to automate simple to medium complexity tasks. For more advanced tasks, the open plugin architecture allows external developers to enhance IDA Pro’s functionalities.
Hostile Code analysis
Given the speed and the complexity of today’s hostile code, a powerful analysis solution is required. IDA Pro has become such a standard in the field of malware analysis that information about new viruses is often exchanged under the form of “IDA Databases”. IDA Pro is used daily by anti-virus, malware and spyware analysts to investigate new virus samplesthreats and to provide timely solutions.
Vulnerability research
The topic of vulnerability disclosure remains quite controversial but software is, as a matter of fact, unfortunately often vulnerable to outside attacks. IDA Pro is the ideal tool to investigate such vulnerabilities. If they aren’t fixed they could be exploited by third-parties with dishonest or criminal intentions. The Wisconsin Safety Analyzer, for instance, is a very interesting project investigating software vulnerability where IDA Pro plays an important role.
Commercial-off-the-shelf (COTS) validation
A lot of software are developed outside the country where they are used. Since those programs are incredibly hard to verify and since complete source code audit and rebuilds aren’t always practical or possble, tools such as IDA provide a convenient way to check if a program really does what it claims to do, contains no harmful vulnerabilities and leaks no sensitive information.
Privacy protection
Software is invading our lives at every level. Respect of essential privacy rights is a concern for many, at a time when the amount of data about individual users that can potentially be collected, sold or exploited has surged to an unprecedented level. IDA Pro helps investigate software that may cause concern, thereby protecting your essential rights.
Other uses
IDA Pro has generated quite a lot of interest in academic circles. A partial list of papers where IDA Pro plays a role is visible here.
При подготовке материала использовались источники:
https://www.wasm.in/blogs/vvedenie-v-reversing-s-nulja-ispolzuja-ida-pro-chast-1.3/
https://habr.com/ru/articles/458354/
https://hex-rays.com/products/IDA/