eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС
выпущен 4 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: (+2 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Софт, инструменты —› GHIDRA software reverse engineering (SRE) suite of tools
<< . 1 . 2 . 3 . 4 . 5 . 6 . >>
Посл.ответ Сообщение


Ранг: 228.7 (наставник)
Статус: Участник
radical

Создано: 6 марта 2019 04:20 · Поправил: DimitarSerg New!
Цитата · Личное сообщение · #1



A software reverse engineering (SRE) suite of tools developed by NSA's Research Directorate in support of the Cybersecurity mission

It helps analyze malicious code and malware like viruses, and can give cybersecurity professionals a better understanding of potential vulnerabilities in their networks and systems.


GHIDRA 9.1 Beta released !
--> Changelog <--
--> Download <--
--> GHIDRA Sources [github] <--

--> CheatSheet: <--

--> Презентация с RSA <--

--> Twitter от имени гидры: <--
--> Онлайн курсы: <--
--> Документация по API <--

--> Daenerys <-- is an interop framework that allows you to run IDAPython scripts under Ghidra and Ghidra scripts under IDA Pro with little to no modifications.
--> FindCrypt - Ghidra Edition <--
Using --> OOAnalyzer <--<-- to Reverse Engineer Object Oriented Code with Ghidra
--> GhidraX64Dbg <--:
Code:
  1. * Extract annotations from Ghidra into an X32/X64 dbg database
  2. * Extension containing a Ghidra script to export annotations from Ghidra to an x32dbg/x64dbg database.
--> An Abstract Interpretation-Based Deobfuscation <--
Cisco Talos is releasing two new tools for IDA Pro: --> Ghidraaas <-- and --> GhIDA <-- :
Code:
  1. GhIDA is an IDA Pro plugin that integrates the Ghidra decompiler in the IDA workflow, giving users the ability to rename and highlight symbols and improved navigation and comments. GhIDA assists the reverse-engineering process by decompiling x86 and x64 PE and ELF binary functions, using either a local installation of Ghidra, or Ghidraaas ( Ghidra as a Service) — a simple docker container that exposes the Ghidra decompiler through REST APIs
Automating --> Ghidra <--: writing a script to find banned functions
--> Канал гидры на youtube: <--
Список видео на канале:
Code:
  1. 1. Ghidra quickstart & tutorial: Solving a simple crackme
  2. 2. Reverse engineering with #Ghidra: Breaking an embedded firmware encryption scheme
  3. 3. Reversing WannaCry Part 1 in Ghidra
--> Software Reverse Engineering with Ghidra (Video tutors) <--
Code:
  1.     Software Reverse Engineering with Ghidra -- Setup and installation
  2.     Software Reverse Engineering with Ghidra -- How to import files and get started
  3.     Software Reverse Engineering with Ghidra -- Creating Structures
  4.     Software Reverse Engineering with Ghidra -- Creating Arrays and Changing Function Signatures
  5.     Software Reverse Engineering with Ghidra -- C++ Classes Part 1, Part 2,  Part 3
  6.     Software Reverse Engineering with Ghidra -- C++ Classes Stack and Global Classes

--> GHIDRA | Reverse Engineering a PWN Challenge <--

--> Модернизация GHIDRA. Загрузчик для ромов Sega Mega Drive <--
--> Хакер - Ghidra vs crackme. Обкатываем конкурента IDA Pro на примере решения хитрой крэкми с VM <--
--> Reverse Engineering Gootkit with Ghidra Part I <--
--> A few Ghidra tips for IDA users, part 0 - automatic comments for API call parameter <--
--> Implementing a New CPU Architectures <--
--> Toshiba MeP-c4 for Ghidra <--
Ghidra --> utilities <--for analyzing firmware

| Сообщение посчитали полезным: SReg, sefkrd, CyberGod, Vnv, Gideon Vi, cppasm, mak, v00doo, Rio, Orlyonok, sergio12, kp0m, memadm, Hugo Chaves



Ранг: 227.3 (наставник)
Статус: Участник

Создано: 28 апреля 2019 22:06 New!
Цитата · Личное сообщение · #2

sergeu пишет:
Power Architecture

Набор инструкций PowerPC гидра из коробки поддерживает.
sergeu пишет:
Кстати как гидра работает с Variable length encoding (VLE), allowing mixed 16-bit and 32-bit ins

ppc_64_isa_vle_be.slaspec ("PowerISA-VLE-64-32addr")
ppc_64_isa_altivec_vle_be.slaspec ("PowerISA-VLE-Altivec-64-32addr")
Посмотри это ли.
sergeu пишет:
Да и есть опыт работы с хитрыми процессорами фрескале с переключаемыми банками кода и епрома? Вобще возможно ли реализавать это для плагина гидры?

Все, что не потянет сам движок sleigh, можно закостылить плагином-анализером. (например для расстановки delay slot'ов в зависимости от msb следующей инструкции недавно делал плугин, на движке этого сделать нельзя, получилось) Так что потенциально поддерживает что угодно. Регистрируешься как AnalyzerType.INSTRUCTION_ANALYZER, подкручиваешь значение в контексте, дизасмишь заново (Disassembler.getDisassembler'ом, чтоб эвент не создавало еще один).

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


Ранг: 5.7 (гость)
Статус: Участник

Создано: 28 апреля 2019 22:31 New!
Цитата · Личное сообщение · #3

f13nd Спасибо. Не обращал на эти позиции.
В принципе автопоиска нету, но есть вариант самому обозначить секцию кода или данных. Да команды как из даташита или 32 или 16 битные идут. Попробуем конечно проверить качество дизасма тестом своего кода для начала. Чтобы видеть где что размечается в коде. Потому как адреса расположения памяти и кода не нашёл на этот проц.


Ранг: 227.3 (наставник)
Статус: Участник

Создано: 28 апреля 2019 22:39 New!
Цитата · Личное сообщение · #4

sergeu пишет:
Попробуем конечно проверить качество дизасма тестом своего кода для начала.

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

Ранг: 5.7 (гость)
Статус: Участник

Создано: 28 апреля 2019 22:49 · Поправил: sergeu New!
Цитата · Личное сообщение · #5

Научится бы плагины ваять как под копирку,много есть интересных процов которые хотелось бы добавить. Особенно из за псевдоси. На мой взгляд за ней будущее, хоть пока она и сыровата.
Кстати есть ли по ней статейки, ну там как типа глянуть дерево вызывов функций ну и прочие мелочи?
Кстати ида так и не открыла данный проц. Ну или есть какие то фичи неочевидные, ну или очевидные только разработчику ида.


Ранг: 227.3 (наставник)
Статус: Участник

Создано: 28 апреля 2019 23:03 New!
Цитата · Личное сообщение · #6

Есть справочник по апи \docs\GhidraAPI_javadoc.zip и немного по движку \docs\languages\ Примеры полезно в самих исходниках искать. Туториал с картинками как эклипс настроить где-то выше в теме был.


Ранг: 227.3 (наставник)
Статус: Участник

Создано: 30 апреля 2019 11:37 · Поправил: f13nd New!
Цитата · Личное сообщение · #7

Думал может я чего поломал, распаковал обе версии начисто, проверил - точно. Похоже началось... Опенсурсники снесли важный функционал в версии 9.0.2 (аналог additional load) И радость была бы неполной, если бы PointerDataType() корректно обрабатывался в ByteMappedBlock.

ЗЫ: насчет функционала был неправ, а баг действительно баг.


Ранг: 227.3 (наставник)
Статус: Участник

Создано: 8 мая 2019 09:08 New!
Цитата · Личное сообщение · #8

Плагин для пакетной замены адресных пространств в референсах. Для профилактики артрита. --> Link <--

Берет выделение из code viewer'а, либо подставляет максимальный/минимальный адрес адресного пространства. В гидре можно создавать любое количество адресных пространств (через add memory block - overlay в memory map, либо file - add to program с галкой overlay) адреса в которых могут совпадать с другими. Полезно, если в одно и то же место помещаются разные данные/код, в иде из-за этого получается каша из референсов, в которую можно загрузить только что-то одно.

| Сообщение посчитали полезным: sergeu, plutos, mak, dma, DICI BF


Ранг: 5.7 (гость)
Статус: Участник

Создано: 8 мая 2019 09:46 New!
Цитата · Личное сообщение · #9

А проц какой либо из серии фрискале не освоил? Или это ещё и в других процах такая фича есть?


Ранг: 227.3 (наставник)
Статус: Участник

Создано: 8 мая 2019 17:59 New!
Цитата · Личное сообщение · #10

sergeu пишет:
А проц какой либо из серии фрискале не освоил?

Интересовали в основном tricore,sh,m32r, их освоил. Это не фича проца, может иногда пригодиться где угодно, поэтому и выложил


Ранг: 536.3 (!)
Статус: Участник
_Вечный_Студент_

Создано: 10 мая 2019 23:22 New!
Цитата · Личное сообщение · #11

Three Heads are Better Than One: --> Mastering Ghidra <--- Alexei Bulazel, Jeremy Blackthorne - INFILTRATE 2019

75% of this presentation was live tutorials, so watching the video is best the way to experience it.

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



Ранг: 536.3 (!)
Статус: Участник
_Вечный_Студент_

Создано: 19 мая 2019 06:00 · Поправил: plutos New!
Цитата · Личное сообщение · #12

--> Dragon Dance <--is a plugin for Ghidra to visualize and manipulate the binary code coverage data.

Пока этот plugin поддерживает Dynamorio and Intel Pin binary instrumentation tools.
Смотрится симпатично.

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


Ранг: -12.1 (нарушитель)
Статус: Участник

Создано: 19 мая 2019 08:27 · Поправил: dma New!
Цитата · Личное сообщение · #13

Какие-то "фишки" чем-то напоминающие отладчики, потихоньку начинют внедряться в гидру. То ли еще будет...

Ранг: 5.7 (гость)
Статус: Участник

Создано: 19 мая 2019 14:36 New!
Цитата · Личное сообщение · #14

f13nd пишет:
Декомпиль очень просто устроен. В \Ghidra\Processors\<name>\data\languages\ есть *.slaspec и *.sinc файлы иполученные из них промежуточные *.sla,


А поподробнее возможно? я так понял для создания плагина под нужный проц необходимо только эти два файла отредактировать? Потому как посмотрел на некоторые исходники там только эти файлы из папки дата и больше ничего.


Ранг: 227.3 (наставник)
Статус: Участник

Создано: 19 мая 2019 16:28 New!
Цитата · Личное сообщение · #15

sergeu пишет:
А поподробнее возможно?

Скачай эклипс с ant'ом, установи в него Extensions\Eclipse\GhidraDev\GhidraDev-2.0.0.zip (help-install new software вроде). В эклипсе появится пункт меню GhidraDev, GhidraDev -> New -> Ghidra module project, галки все можешь снять. В c:\Users\<username>\eclipse-workspace\<имя проекта>\data\languages будет шаблон процессорного модуля, затаскиваешь файл c:\Users\<username>\eclipse-workspace\<имя проекта>\data\build.xml в еклипс, правой кнопкой по нему -> Run As -> Ant build сборка .sla файлов. Сам модуль в *.slaspec, в котором могут быть подключены *.sinc в качестве инклудов. *.ldefs - файл-манифест, где подмодули описаны (которые в меню при выборе процессорного модуля), *.pspec - специфичные для подмодуля параметры: ip-регистр, группы регистров, адреса системных регистров и области памяти, которые надо объявить при создании проекта этим профилем. *.cspec - директивы для декомпиля. Таким образом все файлы кроме .sla редактируются руками, *.sla компилится из *.slaspec и *.sinc антом.

Писать как *.slaspec/*.sinc устроены и как работают долго, но скорей всего сам разберешься.

Ну и если плагины будешь делать, класс Plugin основной, Analyzer - для различных костылей, в нем можно выбить высокий приоритет, чтоб не мешать другим анализаторам, Loader, Filesystem, Exporter - не особенно нужные.

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


Ранг: 7.1 (гость)
Статус: Участник

Создано: 23 мая 2019 12:52 New!
Цитата · Личное сообщение · #16

Итаг... Хотя я так себе реверсер (ну для меня это сопутствующий скил), но мени есть, что сказать =)
Закончил проектик по реверсу на гидре. Могу сказать, что лично МЕНЯ оно боле-менее устроило. Есть странности с декомпилем - в одной функе оно проебало else ветку..., на некоторых функах странно работает с переменными, хотя в асме очевидно (ну тут уже приводили баги по декомпилю), не распознает коллинг конвеншоны - но тут не минус скорее, менять очень все удобно. Да! Я работаю только на интеле (32/64 бита) и только винда и почти всегда виндовый компилер смотрится (иногда кланг).

Очень порадовала тема с проектом. Те есть несколько версий дллок - засунул в проект и работаешь, а не открываешь идб (если еще и забыл куда положил, то караул). Ну это такое.

НО! Что меня сцуко просто убило и я вот хз кто виноват - гидра или сам рантайм джавы (та которая опен), это глюки с гуем. Те 2 монитора, перетащил на другой дисплей - в окне гидры начинается тайл-шоу отрисовки гуя, те кусками рисует, то не рисует. И так на всех диалогах тоже. Но иногда может и час норм работать, закономерности не выявил (да и не старался). Если кто знает в чем дело - плиз не держите в себе (линукс не предлагать, там я только сетевое пилю)

Еще не ясно с графиком выхода версий. Те хз, когда след версию выкатят (9_0_3), те какие тикеты блочат итд (хотя ясно что у них есть своя разработка внутренняя и она вот влияет по тикетам).

Все бобра!


Ранг: 227.3 (наставник)
Статус: Участник

Создано: 23 мая 2019 13:08 · Поправил: f13nd New!
Цитата · Личное сообщение · #17

superakira пишет:
в одной функе оно проебало else ветку

Следи за аргументами и значением на выходе. Если гидра почует unreachable code (такой детектор мусора) - уберет этот код из декомпиля (за это отвечает галка eliminate unreachable code, но ей лучше быть включенной, так гидра подметает лишние фреймы п-кода, которые неизбежно образуются при дизасме инструкций с условными переходами внутри). Так что следи за прототипом функции.

ЗЫ: кстати обо всех выброшенных ветках гидра в начале листинга в декомпиле сигнализирует.


Ранг: 316.3 (мудрец)
Статус: Участник

Создано: 23 мая 2019 16:21 · Поправил: difexacaw New!
Цитата · Личное сообщение · #18

Я немного подумал, обобщил все текущие задачи и последние проблемы и сложности. Все темы и всё сводится к двум проблемным задачам - построить cfg(те накопить инструкции) и главная сформировать DFG. Ранее это было не особо нужно, так как например все подряд темы по протекторам я не трогал.

Собственно какие для этого есть инструменты, сабж может строить графы данных ?

Накопление инструкций это второстепенная задача, это можно сделать в динамике и статике, но на выхлопе д-граф будет не завесить от источника потока инструкций. Судя по всему задача не проста.

Короче говоря есть ли мотор, который на основе cfg строит dfg пригодный для обработки ?

Ранг: -12.1 (нарушитель)
Статус: Участник

Создано: 23 мая 2019 21:19 New!
Цитата · Личное сообщение · #19

superakira пишет:
Хотя я так себе реверсер


Ну, это смотря с какого ника с какой точки зрения на вас посмотреть. Если с позиции специалиста ядерщика из Могилева, то все верно, а если с моей точки зрения, то вот если бы "снять вам коньки", то все форумчане (за исключением одного ) пришли бы к выводу, что таких специалистов еще поискать нужно.


P.S. Есть хороший анекдот. Сборная России по футболу! Снимайте коньки, мы вас узнали!...

Ранг: 388.9 (мудрец)
Статус: Участник

Создано: 23 мая 2019 22:00 · Поправил: BfoX New!
Цитата · Личное сообщение · #20

вышла Ghidra v9.0.4 --> (PUBLIC_20190516) <--

для тех, у кого --> Ошибка <--403

| Сообщение посчитали полезным: mak, plutos, DimitarSerg



Ранг: 536.3 (!)
Статус: Участник
_Вечный_Студент_

Создано: 31 мая 2019 02:05 New!
Цитата · Личное сообщение · #21

Implementing a New CPU Architecture for --> Ghidra<--

Toshiba MeP-c4 for --> Ghidra <--

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



Ранг: 536.3 (!)
Статус: Участник
_Вечный_Студент_

Создано: 7 июня 2019 23:42 New!
Цитата · Личное сообщение · #22

Ghidra --> utilities <--for analyzing firmware

Various modules for Ghidra to assist with PC firmware reverse-engineering.
This was accepted as a coreboot project for GSoC 2019.

Ранг: 7.1 (гость)
Статус: Участник

Создано: 17 июня 2019 12:43 New!
Цитата · Личное сообщение · #23

На счет бага с гуем. Спасло добавление
VMARGS=-Dsun.java2d.noddraw=true
VMARGS=-Dsun.java2d.d3d=false
в launch.properties
Невозбранно спер из тикета с гитхаба, народ уже сталкивался.

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

Странности с декомпилем.

TEST dword ptr [ESI + 0x8],IMAGE_DOS_HEADER_10000000 = 00 00 00 10

те замена в асме неким сгенерированным представлением (понятно что константа)

но вот в декомпиле

if ((param_1[2] & 0x10000000) == 0) { <-- те тут не поменял.. можно ли как-то синхронизировать?

Добавлено спустя 3 часа
Хотя конструкции типа

ulonglong LdrLoadDll(wchar_t *param_1,uint *param_2,ulonglong *******param_3,ulonglong ****param_4) // <--- откуда он нарожал стоко указателей... =(

{
uint uVar1;
ulonglong uVar2;
wchar_t *pwVar3;
ulonglong *******pppppppuVar4; // <-- wtf
wchar_t *pwVar5;
ulonglong *****local_res8;
undefined4 uVar6;
ulonglong ******local_28 [2]; // <-- wtf

Вгоняют меня в уныние... =( Может я галку где не поставил хитрожопую...

Ранг: 3.4 (гость)
Статус: Участник

Создано: 21 июня 2019 22:36 New!
Цитата · Личное сообщение · #24

f13nd пишет:
Разбор динамической адресации (по-моему для 8051 не очень принципиально) лучше. Декомпилер в псевдокод есть

поставил версию 9.0.4-PUBLIC посмотреть на псевдокод 8051, но пишет ошибка not found decompiler.exe -- а у Вас работает?


Ранг: 227.3 (наставник)
Статус: Участник

Создано: 21 июня 2019 23:22 New!
Цитата · Личное сообщение · #25

PhilXe пишет:
not found decompiler.exe

Скорей всего речь об \Ghidra\Features\Decompiler\os\win64\decompile.exe, файл есть, декомпилер в 8051 тоже работает.

Ранг: 3.4 (гость)
Статус: Участник

Создано: 21 июня 2019 23:47 · Поправил: PhilXe New!
Цитата · Личное сообщение · #26

f13nd пишет:
речь об \Ghidra\Features\Decompiler\os\win64\decompile.exe, файл есть, декомпилер в 8051 тоже работает

файл такой имеется, но декомпилятор не работает -- может это быть из-за того, что я запустил Гидру в 32-битной ОС ?

P.S.
сделал копию папки win64 и переименовал ее в win32 -- ошибка исчезла, но в окне декомпилятора вместо текста появилась объясняющая "подсказка"
"C:\ghidra_9.0.4_PUBLIC_20190516\ghidra_9.0.4\Ghidra\Features\Decompiler\os\win32\decompile.exe":
CreateProcess error=216, This version of %1 is not compatible with the version of Windows
you're running. Check your computer's system information to see whether you need a x86
(32-bit) or x64 (64-bit) version of the program, and then contact the software publisher

Интересно, а возможно ли из исходников собрать под 32-битную ОС или возни будет больше с отладкой и быстрее поставить 64-битную ОС?


Ранг: 227.3 (наставник)
Статус: Участник

Создано: 21 июня 2019 23:54 · Поправил: f13nd New!
Цитата · Личное сообщение · #27

PhilXe пишет:
я запустил Гидру в 32-битной ОС ?

Очевидно да, х86 версии там нету.

Добавлено спустя 5 минут
PhilXe пишет:
а возможно ли из исходников собрать под 32-битную ОС

А ты ознакомься с перечнем того, что надо для этого установить и как настроить --> Link <--, учти, что сразу ничего не собирается, тем более вероятно х86 там даже не предусмотрен в проекте.

Ранг: 3.4 (гость)
Статус: Участник

Создано: 22 июня 2019 00:28 New!
Цитата · Личное сообщение · #28

f13nd пишет:
тем более вероятно х86 там даже не предусмотрен в проекте

прислушался к вашему авторитетному мнению и забросил эту затею, запустил Гидру в 64-битной виртуалке -- декомпилятор запустился, но генерируемый им код не очень вдохновил с первого взгляда, буду смотреть дальше


Ранг: 536.3 (!)
Статус: Участник
_Вечный_Студент_

Создано: 21 июля 2019 02:49 · Поправил: plutos New!
Цитата · Личное сообщение · #29

Using --> OOAnalyzer <-- to Reverse Engineer Object Oriented Code with Ghidra

Code:
  1. Object-oriented programs continue to pose many challenges for reverse engineers and malware analysts. 
  2. C++ classes tend to result in complex arrangements of assembly instructions and sophisticated data 
  3. structures that are hard to analyze at the machine code level.
  4.  We've long sought to simplify the process of reverse engineering object-oriented code by creating tools,
  5. such as OOAnalyzer, which automatically recovers C++-style classes from executables.


Download the Pharos Binary Analysis Framework in --> GitHub<--


Ранг: 227.3 (наставник)
Статус: Участник

Создано: 25 июля 2019 10:11 New!
Цитата · Личное сообщение · #30

sergeu
В иде 7.2 таки добавили vle (он был в 7.0, просто не включался сегментным регистром). Гидра не поддерживает весь набор инструкций для SPC5746R например, ида тоже, но там вроде как всего у одной инструкции неизвестный формат замечен. Если еще не сделал модуль для гидры можешь попробовать.

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


Ранг: 99.6 (постоянный)
Статус: Участник

Создано: 6 августа 2019 18:01 New!
Цитата · Личное сообщение · #31

Как и PhilXe сделал попытку запустить Гидру в 32-битной ОС:
Гидра установилась, запустилась, открылось её главное окно - Браузер кода,
затем она дизассемблировала исследуемую программу, привела таблицы функций,
символов и типов.
Но правая панель, в которой должен быть декомпилированный текст, осталась пустой.
Ответственный за эту панель файл decompile.exe работает только для 64-битной ОС.
<< . 1 . 2 . 3 . 4 . 5 . 6 . >>
 eXeL@B —› Софт, инструменты —› GHIDRA software reverse engineering (SRE) suite of tools

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS