Показаны сообщения с ярлыком usage. Показать все сообщения
Показаны сообщения с ярлыком usage. Показать все сообщения

воскресенье, 30 марта 2025 г.

Расшифровать за 100 секунд

Молодые пользователи спрашивают авторские примеры использования hiew.
Что ж, их есть у меня и сегодня будет пример использования Crypt = встроенной возможности hiew для (де)шифрования. 

Сейчас сам удивился, но до сих пор ничего про Crypt не писал. 
Crypt  впервые появился в ноябре 1993 года в версии 4.20 и был 16-битным. А когда в версии 6.00 был удален, столько недовольства и возмущений от пользователей не было ни до ни после. И в 6.01 вернулся.


Напримером будет HiEW Loader 1.1 (кто не знает - легко найдет)
В архиве он тоже называется hiew32.exe, других букв уже не осталось. Что ж, переименуем в loader.exe

Начинаем стандартно:

Hiew32.exe loader.exe
enter enter ;переход в режим кода
F8               ;просмотр заголовка PE

на широких экранах сразу видно что в последней строке кнопка F11 Tls активна,
(если в этом месте встретилось незнакомое слово из трех букв, самое время пойти почитать про Tls callback),  а значит есть еще исполняемый код до передачи управления в точку входа,

но для начала
F5         ;переход на точку входа
и видим мусор вместо кода.
(не знаю зачем все это пошифровано, да еще и через Tls, да еще и с проверкой "чтоб только раз наверняка", впрочем, и в самом коде загрузчика много таких "зачем?", но сейчас не об этом)

возвращаемся в заголовок PE
F8          ;просмотр заголовка PE
и смотрим чего там в Tls callback
F11         ;переход на этот самый Tls callback

разумеется, рассшифровка кода на точке входа


в регистрах esi/edi начало зашифрованного блока = точки входа
в ecx длина зашифрованного блока = 3c9

сам алгоритм шифрования - простой xor по одному байту и простой модификацией маски шифрования на каждом шаге и один-в-один переносится в хьюшный Crypt

вернемся на точку входа
3            ;переход на начало блока расшифровки
enter     ;возвращаем режим кода
F3         ;режим редактирования (в hiew всегда редактировался только один экран за раз)
F7         ;вызов Crypt

и переписываем сюда код расшифровки

 

расшифровка идет по одному байту, поэтому размер стоит Byte (при необходимости меняется через F2. А F3 меняет направление Forward/Backward)
последняя команда loop 2 завершает цикл, возвращаясь ко второй строке, в первой была инициализация

F7        ;вышли из режима редактирования

и чтобы проверить
F7       ; расшифровываем по одному байту за раз
(да-да, и зашли через F7 и вышли через F7 и расшифровка через F7)

F7 F7 .... F7 F7
и мусор шаг за шагом на глазах превращается в корректый код



ESC            ;отменяем все изменения, расшифруем все за раз
enter enter ;в режим дампа, там проще блок отмечать
*                  ;отмечаем начало блока
F5 +3с8      ;добавляем к текущему адресу размер зашифрованного блока,
                   ;поскольку один байт уже отмечен будет на единицу меньше



enter  ;переход на конец блока
*         ;отмечаем конец блока



Alt-F3    ;Crypt для выделенного блока
было немного тренировки, crypt ip (отмечен стрелочкой) стал после полного цикла на строку 2, вернем на инициализацию:
-        ;crypt ip на строку назад
F5     ;и чтоб красиво, очистить все регистры заодно
F7     ;расшифровать блок



по проявившимуся тексту сразу видно, что все рашифровалось корректно

[          ;переход на начало блока
*         ;убрать пометку блока
enter  ;режим кода

и вот он, оригинальный код на точке входа



Tls не нужен, убираем

F8 F10   ;просмотр PE Directory
курсором вниз до TLS и
F7       ;очистить



Теперь имеем загрузчик без всяких шифрований и ненужных Tls.

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

Подробности о Crypt см. в документации.

суббота, 21 декабря 2024 г.

Больше хэшей - быстрых и разных

 Fernando Mercês обновил свой Hashes.hem до версии 2.00,

а FSC выдал Hash Calculator с вычислением

MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512, CRC-32/MPEG-2, parametrized CRC ("Rocksoft^tm Model CRC Algorithm")

суббота, 5 августа 2023 г.

CopyAs и Hashes - два полезных HEM

 Fernando Mercês сделал два полезных модуля:

CopyAs - запись отмеченного блока в различном формате  

Hashes - вычисление хешей MD5, SHA-1, SHA-256 для блока либо всего файла

вторник, 22 августа 2017 г.

вторник, 11 июля 2017 г.

WhereComesFrom.hem против F6

(когда в почте ответ отвечается через недавно-отвечал-другому-щас-найду-cut-and-paste то пора уже paste сделать и сюда)


F6 - это поиск ссылок в коде, и только в коде.

случай когда на данные ссылаются данные (адрес) - это не случай для F6

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

но уже давным-давно есть WhereComesFrom.hem, который ищет в т.ч. и ссылки данные-на-данные и готовит весь список ссылок за один раз

так что для поиска ссылок рекомендуется пользоваться этим hem-модулем.

четверг, 24 марта 2016 г.

выбрать строки в 3 кнопки

посмотрел статью на хабре про изучение дерева исходников 10й винды,
там автор вынимал строки из pdb и имел какие-то проблемы с мегабайтными файлами, скрипты на питоне, разные утилиты

пользователи хиева знают что это банальная операция делается ровно тремя кнопками:
Alt-F6
F9 *://*
F10


при этом размер файла никакой роли не играет, хоть мегабайт, хоть 10, хоть 100

понедельник, 19 марта 2012 г.

поиск по шаблону, звезды и комментарий в строке

вот к примеру, надо найти cmp eax,0000000FF

в коде это может быть
3DFF000000 cmp eax,0000000FF ;' '
либо
81F8FF000000 cmp eax,0000000FF ;'  '
обратите внимание на наличие комментария в строке

вариант искать команду по hex байтам подходит только для не ленивых, ищущих по байтам сначала один вариант, затем второй, если конечно не забудут что он существует


смотрим на варианты шаблона для F7 F7

пятница, 11 февраля 2011 г.

в кулацком хозяйстве все пригодится

Давно вычитал о том что windows позволяет даже в пользовательском режиме запросто контролировать запуск процессов.
И чесались у меня руки эту штуку задействовать, но не к чему было ее приложить.
А тут понадобилось узнать параметры запускаемого процесса который стартует из-под другого процесса и быстро-быстро завершается.

четверг, 13 января 2011 г.

Чапай должен уметь думать, а не просто шашкой махать

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

предлагается задачка: программа не корректно работает с образами .iso размером более 2Г

среда, 5 января 2011 г.

если хотели что-то изменить в файле по F3, а увидели


 а затем



это значит что файл занят другой программой (или файл - сам процесс и сейчас запущен и находится в памяти).

чтобы избавиться от Sharing violation надо закрыть этот самый файл в другой программе (или завершить процесс).

четверг, 16 декабря 2010 г.

р-р-раз и готово! не надо при старте переключаться на русскую раскладку

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

как настоящий ленивый пользователь сначала написал письмо авторам с пожеланием отключать это в настройках, но ответа не дождался.

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