Comments 32
Дальше у нас цикл из 2 итераций.
Судя по приведенному листингу итераций все же будет три (0, 1 и 2):
local_18 = 0;
while (local_18 < 3) {
local_18 = local_18 + 1;
}
То есть автор crackme зачем-то анализирует и argv[0].
Десятичные значения чисел, а заодно и соответствующие ASCII-символы можно подсмотреть, удерживая курсор над соответствующим шестнадцатеричным литералом. Отображение ASCII не всегда работает (?), поэтому рекомендую глядеть ASCII таблицу в Интернете.
В окне листинга дизассемблера:
В результате меняется константа как в листинге ассемблера, так и в листинге декомпилятора.
В своё время шуму он наделал скорее благодаря зловредности (втихую шифровал диск), чем какому-то супер полиморфизму.
Но для тех времен было прикольно, да. Похоронил Aidstest вместе с идеей простого сигнатурного сканера.
Dr.Web оказался молодцом, не только детектируя эту заразу в загрузочном секторе, но и при удачном стечении обстоятельств расшифровывая диск. Не помню, был ли их «эвристический анализ» частичным эмулятором или тупо строил дерево возможных переходов.
В те славные времена касперский имел штатную возможность для написания и подключения наколеночного плагина для детектирования и лечения вирусов, не известных лаборатории и не включенных в основную базу сканера.
запуск из загрузочного сектора, запуск из файла
заражение загрузочного сектора, заражение файла
полиморфизм
стелс механизм(ы?)
шифратор + дешифратор «на лету» (помню случай когда системный диск расшифровывался больше суток и удачно расшифровался, эта тварь жила на компе несколько дней и расшифровывала открываемые файлы пока не была убита и диск расшифрован Дрвебом)
Основной момент, который меня не радует во всех этих статьях и видео по Гидре — это изучение того, что давно уже было изучено и показано, но в Иде.
Есть же столько нового и классного функционала в продукте от АНБ (да хотя бы декомпилеры почти под всё), а все по-прежнему примитивные крякми изучают. Покажите новое кто-нибудь!
Не могу не поддержать. Но сначала — в массы :) По мне, самое большое преимущество в гидре по сравнению с идой — удобство интерфейса и гибкость работы. (Хотя, может, я просто плохо знаю ильфаковское детище.)
Будет время — отдельную статью напишу про этот фреймворк.
А там есть какой-нибудь механизм/плагин/поддержка из коробки для конвертации готовых IDA файлов в Гидру?
Есть полный экспорт из IDA c использованием плагина — 7xx/xml_exporter.py и 6xx/xmlexp.py с последующим импортом в Ghidra.
Андроидные приложения же на жаве, может ли гидра в виртуальные машины?
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
Надо бы написать что запускать какой то левый кракми надобы из под виртуалки или из под запасного юзнра или вообще на отдельной машине для тестов. Думаю на последнем левеле там могут быть и бомбы замедленного действия)
Похоже, запускается только под x64?
Как иронично — написан на Джаве, но таки не запускается везде.
Ломаем простую «крякми» при помощи Ghidra — Часть 1