Pull to refresh

Comments 32

Дальше у нас цикл из 2 итераций.

Судя по приведенному листингу итераций все же будет три (0, 1 и 2):


    local_18 = 0;
    while (local_18 < 3) {

      local_18 = local_18 + 1;
    }

То есть автор crackme зачем-то анализирует и argv[0].

Вы правы, спасибо. Исправил.
Убедиться, что это его crackme — в чужом все может быть по-другому :)
Десятичные значения чисел, а заодно и соответствующие ASCII-символы можно подсмотреть, удерживая курсор над соответствующим шестнадцатеричным литералом. Отображение ASCII не всегда работает (?), поэтому рекомендую глядеть ASCII таблицу в Интернете.

В окне листинга дизассемблера:


Convert - Char Sequence


В результате меняется константа как в листинге ассемблера, так и в листинге декомпилятора.

Да, можно и так. Хотя мне удобнее просто подсматривать. Но спасибо — добавил в статью.
Предлагаю разобрать какой-нибудь стелс полиморфный 4х килобайтный вирусняк, OneHalf например, должно быть очень интересно и компактно.
Вот вам подробный разбор небезызвестного WannaCry.
Никаких космических технологий в том OneHalf'е то и нет.
В своё время шуму он наделал скорее благодаря зловредности (втихую шифровал диск), чем какому-то супер полиморфизму.
Но для тех времен было прикольно, да. Похоронил Aidstest вместе с идеей простого сигнатурного сканера.
Dr.Web оказался молодцом, не только детектируя эту заразу в загрузочном секторе, но и при удачном стечении обстоятельств расшифровывая диск. Не помню, был ли их «эвристический анализ» частичным эмулятором или тупо строил дерево возможных переходов.
В те славные времена касперский имел штатную возможность для написания и подключения наколеночного плагина для детектирования и лечения вирусов, не известных лаборатории и не включенных в основную базу сканера.
В 3,5 КБ было:
запуск из загрузочного сектора, запуск из файла
заражение загрузочного сектора, заражение файла
полиморфизм
стелс механизм(ы?)
шифратор + дешифратор «на лету» (помню случай когда системный диск расшифровывался больше суток и удачно расшифровался, эта тварь жила на компе несколько дней и расшифровывала открываемые файлы пока не была убита и диск расшифрован Дрвебом)
Да, DrWeb тогда хорошо сработал, спас немало компов. И их CureIT всегда будет жить в наших сердцах :-)
Спасибо за ссылку на мою статью.:)

Основной момент, который меня не радует во всех этих статьях и видео по Гидре — это изучение того, что давно уже было изучено и показано, но в Иде.
Есть же столько нового и классного функционала в продукте от АНБ (да хотя бы декомпилеры почти под всё), а все по-прежнему примитивные крякми изучают. Покажите новое кто-нибудь!

Не могу не поддержать. Но сначала — в массы :) По мне, самое большое преимущество в гидре по сравнению с идой — удобство интерфейса и гибкость работы. (Хотя, может, я просто плохо знаю ильфаковское детище.)

А мне вот после более чем двадцати лет использования IDA на эту гидру сложновато переползать. И одна из сложностей это как раз неудобство интерфейса по сравнению с IDA :-) Хотя это скорее непривычность чем неудобство. Да и тормоз эта гидра по сравнению с IDA. Что не удивительно, Java ведь. Так что пожалуй что не буду пока. Но со стороны посмотрю что там творится.
Вот здесь еще интересный обзор человека, который по его словам 22 года юзает Иду. Он пока переходить тоже не торопится и занимает вашу позицию — смотреть со стороны.
А там есть какой-нибудь механизм/плагин/поддержка из коробки для конвертации готовых IDA файлов в Гидру? Есть у меня один долгоиграющий проект по реверсингу, к которому приходится периодически возвращаться. Приложение очень большое из нескольких исполняемых файлов и я в нём разбираю только нужные мне места. Несколько десятков своих структур, и несколько сотен методов приведены в порядок и прочее — с нуля не хочу начинать. Если есть возможность открыть это всё в гидре было бы здорово.
А там есть какой-нибудь механизм/плагин/поддержка из коробки для конвертации готовых IDA файлов в Гидру?

Есть полный экспорт из IDA c использованием плагина — 7xx/xml_exporter.py и 6xx/xmlexp.py с последующим импортом в Ghidra.

Спасибо. Посмотрю.
смогу ли я этой штукой ломать андроидные аппы с целью убирать рекламу?
Да, ARM поддерживается из коробки. Но в случае с андроидом, я бы все-таки работал в AndroidStudio.

Андроидные приложения же на жаве, может ли гидра в виртуальные машины?

Ну там в видео всё, что угодно, кроме Java-кода (Rust мелькнул даже) — реверсятся библиотеки для низкоуровневой работы с железом. Тем не менее, Гидра вроде поддерживает Java-байткод и dex-файлы.

Ghidra processor modules: X86 16/32/64, ARM/AARCH64, PowerPC 32/64, VLE, MIPS 16/32/64,micro, 68xxx, Java / DEX bytecode, PA-RISC, PIC 12/16/17/18/24, Sparc 32/64, CR16C, Z80, 6502, 8051, MSP430, AVR8, AVR32, Others+ variants as well. Power users can expand by defining new ones

— Rob Joyce (@RGB_Lights) March 5, 2019


Я наверное покажусь людям параноиком, но работать с программой для взлома предоставленной АНБ, это как запрыгнуть к незнакомому дядьке в грузовик за конфетой. И ведь даже исходники выложили, но всё равно стойкое чувство подвоха.
Раз выложили исходники, значит готовы ко всестороннему анализу их со стороны мирового сообщества. И все, что будет находиться, будет репортиться — на Гитхабе уже >300 баг-репортов. Но это означает, как мне представляется, прозрачность и открытость здесь со стороны пресловутых шпионов. Хотя есть и другое мнение — это было сделано специально, чтобы собрать экспертное мнение и баги и улучшить свой продукт (который затем можно будет опять закрыть).

Надо бы написать что запускать какой то левый кракми надобы из под виртуалки или из под запасного юзнра или вообще на отдельной машине для тестов. Думаю на последнем левеле там могут быть и бомбы замедленного действия)

Ну это как бы предполагается… Хотя я просто пока прогонял через АВ.

Похоже, запускается только под x64?
Как иронично — написан на Джаве, но таки не запускается везде.

Sign up to leave a comment.

Articles

Change theme settings