Сейчас на форуме: bartolomeo, -Sanchez-, morgot, sashalogout (+5 невидимых)

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


Ранг: 253.5 (наставник), 684thx
Активность: 0.260.25
Статус: Участник
radical

Создано: 06 марта 2019 04:20 · Поправил: DimitarSerg
· Личное сообщение · #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.1 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

-----
ds


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


Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 08 марта 2019 04:03 · Поправил: plutos
· Личное сообщение · #2

ZaZa пишет:
разумеется, с целью все той же отладки


--> похоже, что не все с этим согласны<--.

-----
Give me a HANDLE and I will move the Earth.





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 08 марта 2019 04:14
· Личное сообщение · #3

Учитывая то, что большинство подключены к интернетам через роутер, где надо ручищами пробрасывать порты, чтобы попасть в них из интернетов, так себе сенсация. Начальники каких-то там хакерхаузов умеют пользоваться netstat'ом, это забавная новость.

-----
2 оттенка серого


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


Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 08 марта 2019 05:53
· Личное сообщение · #4

f13nd пишет:
где надо ручищами пробрасывать порты


upnp ) но, да, пугают пьяного ежа голым задом.

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

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

Создано: 08 марта 2019 09:34 · Поправил: kunix
· Личное сообщение · #5

f13nd пишет:
Учитывая то, что большинство подключены к интернетам через роутер, где надо ручищами пробрасывать порты, чтобы попасть в них из интернетов, так себе сенсация.

как насчет DNS rebinding?




Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 08 марта 2019 16:45
· Личное сообщение · #6

Ghidra: A quick overview for the curious --> Link <--

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube


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


Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 09 марта 2019 09:27
· Личное сообщение · #7

Начал делать (верней на 2/3 примерно сделал) процессорный модуль на трикор. Используемый там движок sleigh немного капризный и ошибок не прощает, зато почти не оставляет возможности ошибиться. В целом интересная штука. Нашлось несколько неверно раскодируемых идой форматов инструкций и одна в trace32. Если не останавливаться просто на дизассемблере и немного подразвить модуль, можно организовать декомилятор. Своими руками. Без пиратского хексрейза, карл. Вы все еще смеетесь над фразой "убийца иды"?

-----
2 оттенка серого


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

Ранг: -26.7 (нарушитель), 7thx
Активность: 0.060.08
Статус: Участник

Создано: 09 марта 2019 10:03
· Личное сообщение · #8

f13nd пишет:
Если не останавливаться просто на дизассемблере и немного подразвить модуль, можно организовать декомилятор. Своими руками. Без пиратского хексрейза, карл.


Имеется в виду, что бесплатный декомилятор на базе GHIDRA будет ничем не хуже хексрейза? Или, что можно сделать даже лучше, чем хексрейз?




Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 09 марта 2019 10:08
· Личное сообщение · #9

sty пишет:
Имеется в виду, что бесплатный декомилятор на базе GHIDRA будет ничем не хуже хексрейза?

Имеется в виду, что хексрейз есть на несколько самых ходовых архитектур всего. А на PPC например пиратского не существует. А здесь движок, изначально рассчитанный на строительство декомпиляторов и любой желающий относительно несложно может (хотя это титаническое задротство дизассемблеры делать) на любую архитектуру сделать декомпилер.

-----
2 оттенка серого





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 09 марта 2019 11:10
· Личное сообщение · #10

Кто смотрел как устроен Декомпиль ?! Может там чего интересного рипнуть можно

Base-src.zip\ghidra\app\util\pcode - ZIP archive, unpacked size 18,272,217 bytes

Code:
  1. import ghidra.app.plugin.processors.sleigh.template.ConstTpl;
  2. import ghidra.app.plugin.processors.sleigh.template.VarnodeTpl;
  3. import ghidra.program.model.address.AddressFactory;
  4. import ghidra.program.model.address.AddressSpace;
  5. import ghidra.program.model.pcode.PcodeOp;
  6. import ghidra.util.exception.InvalidInputException;
  7.  
  8. import java.util.HashMap;
  9. import java.util.List;
  10.  
  11. class PcodeSpec {
  12.  
  13.          //
  14.          // Input Spec Flags
  15.          //
  16.          private static final int CONSTANT = 0x01;
  17.          private static final int UNIQUE = 0x02;
  18.          private static final int ADDRESS = 0x04;
  19.          private static final int REGISTER = 0x08;
  20.          private static final int RELATIVE_ADDRESS = 0x10;
  21.          private static final int CUR_SPACE_POINTER = 0x20;
  22.  
  23.          //
  24.          // Common Input Specs
  25.          //
  26.  
  27.          private static final int ANY = CONSTANT | UNIQUE | ADDRESS | REGISTER | RELATIVE_ADDRESS;
  28.          private static final int ANY_VARIABLE = UNIQUE | ADDRESS | REGISTER;
  29.  
  30.          private static final int[] NO_INPUT = new int[] {};
  31.          private static final int[] ANY_ONE_INPUT = new int[] { ANY };
  32.          private static final int[] ANY_TWO_INPUTS = new int[] { ANY, ANY };
  33.          private static final int[] DIRECT_BRANCH_INPUTS = new int[] { CONSTANT | ADDRESS |
  34.                  RELATIVE_ADDRESS };
  35.          private static final int[] DIRECT_CONDITIONAL_BRANCH_INPUTS = new int[] {
  36.                  CONSTANT | ADDRESS | RELATIVE_ADDRESS, ANY_VARIABLE };
  37.          private static final int[] DIRECT_CALL_INPUTS = new int[] { ADDRESS };
  38.          private static final int[] INDIRECT_FLOW_INPUTS = new int[] { UNIQUE | ADDRESS | REGISTER |
  39.                  RELATIVE_ADDRESS | CUR_SPACE_POINTER };
  40.          private static final int[] LOAD_INPUTS = new int[] { CONSTANT, ANY };
  41.          private static final int[] STORE_INPUTS = new int[] { CONSTANT, ANY, ANY };
  42.          private static final int[] SHIFT_INPUTS = new int[] { ANY, CONSTANT };
  43.  
  44.          //
  45.          // Output Type
  46.          //
  47.          private static final int OUTPUT_NONE = 0;
  48.          private static final int OUTPUT_INPUT0_SIZE = 1;
  49.          private static final int OUTPUT_INPUT0_SIZE_EXTENDED = 2;
  50.          private static final int OUTPUT_INPUT0_SIZE_TRUNCATED = 3;
  51.          private static final int OUTPUT_INPUT1_SIZE = 4;
  52.          private static final int OUTPUT_BOOLEAN = 5;
  53.          private static final int OUTPUT_ANY_SIZE = 6;
  54.  
  55.          private static HashMap<String, PcodeSpec> pcodeNameSpecMap;
  56.          private static HashMap<Integer, PcodeSpec> pcodeSpecMap;
  57.  
  58.          private String opName;
  59.          private int opCode;
  60.          private int outputType;
  61.          private boolean inputSizesMustMatch;
  62.          private int[] inputSpecs;


-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube


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

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

Создано: 11 марта 2019 12:40
· Личное сообщение · #11

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




Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 11 марта 2019 12:46
· Личное сообщение · #12

superakira пишет:
Мне кажется они юзают его в строго регламентированном порядке и для определенных целей в основном (прошивки думаю)

Страница 21 --> Link <--

-----
2 оттенка серого




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

Создано: 11 марта 2019 13:09
· Личное сообщение · #13

f13nd и там мы видим выхлоп аля соурсер 20 летней давности) графы не особо нужны так-то. ну редко. имхо важна динамика развития и если будет норм, то это действительно конкурент. визуально и сама модель работы с данным ПО мне понравилась. но капец он слоупок.. и с символами он меня задрал.




Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 11 марта 2019 14:12
· Личное сообщение · #14

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

А по-моему там уже есть достаточно всякого, а какой будет динамика нетрудно догадаться глядя на остальные опенсурсные шедевры. Жалко сам попользоваться не могу, пока хотя бы 1 нужный ассемблер не сделаю толком.

-----
2 оттенка серого





Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 16 марта 2019 06:15
· Личное сообщение · #15

RolfRolles создал depository на github'e, которое со временем будет пополнять. Пока там немного, но начало интересное.

--> Ghidra Program Analysis Library<--

Code:
  1. Eventually -- hopefully -- this repository will contain a suite of program analysis-related plugins for Ghidra. I haven't written them yet. For now, there's a port of an abstract interpretation-based analysis that I use for deobfuscation and a binary upon which to test it.


-----
Give me a HANDLE and I will move the Earth.





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 16 марта 2019 12:00 · Поправил: f13nd
· Личное сообщение · #16

mak пишет:
Кто смотрел как устроен Декомпиль ?!

Декомпиль очень просто устроен. В \Ghidra\Processors\<name>\data\languages\ есть *.slaspec и *.sinc файлы иполученные из них промежуточные *.sla, в которых специальным псевдокодом описана инструкция. При дизасме получается нужный алгоритм в этом псевдокоде, декомпиль просто приводит его в более понятный и си-подобный (сворачивая обработку контекста и типов). --> Link <-- Позабавило, что декомпиль несет в себе почерк разработчика процессорного модуля, после этого стараешься не выписывать длинные запутанные портянки, боком выйдет. Рипать эти мегабайты не надо, проще присоединиться

-----
2 оттенка серого


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

Ранг: 14.3 (новичок), 5thx
Активность: 0.070
Статус: Участник

Создано: 17 марта 2019 20:39
· Личное сообщение · #17

plutos пишет:
RolfRolles создал depository на github'e, которое со временем будет пополнять. Пока там немного, но начало интересное.

Как этим пользоваться до конца так и не понял. Обьясните плз.




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 18 марта 2019 01:48 · Поправил: plutos
· Личное сообщение · #18

RoKZaR пишет:
Как этим пользоваться до конца так и не понял. Обьясните плз.


как говорит сам автор в readme, это только начало, там пока еще только:
"there's a port of an abstract interpretation-based analysis that I use for deobfuscation and a binary upon which to test it."

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

Кроме того, там можно и прямо задавать--> вопросы<--:

-----
Give me a HANDLE and I will move the Earth.


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


Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 20 марта 2019 02:45 · Поправил: plutos
· Личное сообщение · #19

--> 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.



картинка конечно великовата, зато хорошо видно дракона...
The project's logo symbolizes harmony between the two SRE frameworks.

-----
Give me a HANDLE and I will move the Earth.




Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 20 марта 2019 10:07
· Личное сообщение · #20

Даже на картинке Ида выглядит посимпатичнее Гидры




Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 20 марта 2019 13:18 · Поправил: f13nd
· Личное сообщение · #21

cppasm пишет:
Даже на картинке Ида выглядит посимпатичнее Гидры

Ну если нарисовать ее так, чтобы было ну совсем не похоже на оригинал --> Link <-- Глядя на портрет ломаешь голову - это художник ничего не знал о перспективе или ее правда так перекосило?
ЗЫ: а сама картинка про один из клонов санта-барбары --> Link <--

-----
2 оттенка серого




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

Создано: 20 марта 2019 18:55
· Личное сообщение · #22

епт там нихера то не сделано... нате helloworld скелет, пишите мол, 121 github звёздочка...

Code:
  1. print("Hello world from Ghidra...")
  2. print("Current address is: %x" % idc.here())
  3. print("Min address: %x - Max address: %x" % (idc.MinEA(), idc.MaxEA()))
  4. print("Byte at current address is: %02x" % idc.Byte(idc.here()))
  5. print("BADADDR=%x" % idc.BADADDR)


Добавлено спустя 1 час 1 минуту
https://xlab.tencent.com/en/2019/03/18/ghidra-from-xxe-to-rce/



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

Создано: 20 марта 2019 23:21
· Личное сообщение · #23

Модернизация GHIDRA. Загрузчик для ромов Sega Mega Drive




Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 21 марта 2019 00:32
· Личное сообщение · #24

Где-то мелькала хотелка в иде объявлять несклько областей памяти по пересекающимся адресам и там это невозможно. В движке гидры можно создать AddressSpace, применить на него .getAddress​(long byteOffset) и поместить получившийся объект Address куда хочется. Пересекаться с основным адресным пространством это альтернативное измерение не будет. Г - гибкость.

-----
2 оттенка серого





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

Создано: 21 марта 2019 00:47
· Личное сообщение · #25

f13nd

Это не только проблема иды, а любого дизасма. Корреляции в графе, так как его части завязаны на диапазон адресов. Проще на примере показать.

Пусть инструкция начинается с адреса A. Далее есть ветвление на A + N, причём размер инструкции А > N. При этом дизасм глюкнет, так как строит граф проверкой адресов: if P ~ [A; N].

Нормальный дизасм не должен привязываться к адресам, корректная проверка должна быть if P = A или P = A + N.

-----
vx





Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 21 марта 2019 00:56 · Поправил: plutos
· Личное сообщение · #26

hash87szf пишет:
епт там нихера то не сделано...


Your contributions are welcome.

-----
Give me a HANDLE and I will move the Earth.





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 21 марта 2019 01:00
· Личное сообщение · #27

difexacaw пишет:
При этом дизасм глюкнет, так как строит граф проверкой адресов

Не знаю с чего он глюкнет, просто пометит адрес этого ветвления как инвалид и отобразит адрес перехода как адрес_начала_инструкции+n. Теоретически можно такой антидизасм разогнуть даже в иде, если пофантазировать.

difexacaw пишет:
Нормальный дизасм не должен привязываться к адресам

Для 99.5% задач и одного адресного пространства хватает, но иногда хочется все 100%.

-----
2 оттенка серого





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

Создано: 21 марта 2019 01:04
· Личное сообщение · #28

f13nd

Дизасм остановится, так как инструкция описана, не смотря на то, что она другая. Это редкие конструкции, но они отлично ломают дизасм если это нужно.

-----
vx





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 21 марта 2019 01:06
· Личное сообщение · #29

difexacaw пишет:
Это редкие конструкции, но они отлично ломают дизасм если это нужно.

Если за дизасмом сидит разумное существо, умеющее не только кнопки давить, его это не остановит.

-----
2 оттенка серого




Ранг: 6.1 (гость), 3thx
Активность: 0.040
Статус: Участник

Создано: 22 марта 2019 22:28
· Личное сообщение · #30

Дежурные ссылки JAVA
-->Open JDK 11 <--
--> AdoptOpenJDK <--



Ранг: 6.1 (гость), 3thx
Активность: 0.040
Статус: Участник

Создано: 24 марта 2019 17:29
· Личное сообщение · #31

ZaZa пишет:
Британский ИБ-эксперт и глава Hacker House Мэтью Хики (Matthew Hickey) заметил, что в отладочном режиме инструмент АНБ открывает и «слушает» сетевой порт 18001, что позволяет подключиться к Ghidra удаленно, через JDWP (разумеется, с целью все той же отладки). Хики отмечает, что исправить проблему совсем несложно.

Поправка.
Linux, launch.sh
Code:
  1. VMARG_LIST+=" -Xrunjdwp:transport=dt_socket,server=y,suspend=${SUSPEND},address=127.0.0.1:${DEBUG_PORT}"

Windows, launch.bat
Code:
  1. set VMARG_LIST=!VMARG_LIST! -Xrunjdwp:transport=dt_socket,server=y,suspend=!SUSPEND!,address=127.0.0.1:!DEBUG_PORT!



<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . >>
 [email protected] —› Софт, инструменты —› GHIDRA software reverse engineering (SRE) suite of tools
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати