Поскольку клаб лежит, спрошу здесь. Есть софтина, какой-то инсталятор малвары. Инсталлер дропает в темп какой-то файл на VB6 и запускает. Не могу распаковать файл на вб - прога VB decompiler пишет что не может открыть, т.к. файл упакован, Quick Unpack показывает очень понятную ошибку "wrong platform", в Ида вижу какой-то мусор. В какую сторону копать, посоветуйте. Нужно не просто отследить, что малварь делает (тогда бы взял какой-то визор), а выдрать оттуда дизассемблером алгоритм, т.е. распаковать полностью. Indy_ f13nd
M0rg0t, Такие вопросы стали как какая то монотонная однотипная молитва/мантра чтоле. Сам анпакер распаковывает, нужно лишь получить управление на нужном месте. Образ открывается на точке входа если нет вирты. Для этого нужны те самые визоры. Ты отладчиком ничего не решишь это крипта.
Отдай Инде, он распакует без проблем, раз у него есть чудо визор, которого никто в глаза не видел. А так, попробуй запустить в виртуалке и сдампить образ из памяти. Ну или залей сюда, может кто посмотрит.
В Ида открывается какая-то фигня, вероятно файл чем-то еще упакован, но все эти универсальные анпакеры говорят что нет. Прикрепил к посту, пасс wasm там малварь и файлы (он с них берет какую-то инфу). Rel, с vb нет опыта, вообще странно что им еще пакуют малварь, думал все на шарп перешли, но нет..
M0rg0t, Я думал что нэйтивный бинарь тянет либу на vb, ты так написал. Модуль умпешно грузится в vb decomp и ида его норм парсит. Этоже вирта, а не нэйтив ида для этого не предназначена. vbd только скачанный на таких местах: loc_004AF7AE: call 004C0FC0h Выдаёт что pro version" и на этом всё. В любом случае работа вирты выясняется динамикой. Тот же вмп ты не сможешь декомпилить, но это не нужно, конечно если нет нужды выяснять сами алго. Для малварки всегда нужна лишь динамическая активность, что бы понять что она делает, а как это она делает и каким кодом в каком виде значения не имеет. Учитывая что это vb, то процмона хватит с избытком.
Моргот, https://wasm.in/threads/dekompiljacija-msil-i-vb6.31708/ это только к TheTrick и его скиллам. внезапно, в 2020 использовать инструмент 1998 года не только можно, но и нужно, чтобы не дать изучать результирующий exe.
Thetrik, > образ на первый взгляд не запакован. Любое отклонение в штатном формате декомипь считает криптой, как то пе хидер изменить и всё декомпилер в лучшем случае будет ругаться или вообще не сможет обработать. Это примитивные кривые инструменты. Что бы что то реверсить, прежде нужно определить задачу, те узнать динамик активность, а для этого её нужно снять. Выхлоп vbd в виде асма судя по всему, какая же это декомпиляция. VB очень давно используется как годный метод обхода авер вирты. Это не нэйтив вирта, не особо кому то нужно было создавать инструменты для девирта. Может что и есть я не знаю с этим дел не имел.
В какой именно? У меня он пишет что запаковано и не открывает. мне надо алгос оттуда, процмона не хватит , именно реверс. Thetrik, там есть файл data.txt , в нем хеш. Этот софт берет хеш или из этого файла или откуда-то с инета, и преобразует в ссылку. Вот надо выдрать алгоритм, как он это дешифрует. И тот же вопрос, что к Инди - как это и чем открыть? Как не смешно, лет 15 назад я кодил на вб6, ну как кодил.. игрался с формами сугубо, + в курсе по оллидбг пропустил главы по распаковке вб. Ибо еще 20 лет назад все писали, что бейсик умер, будущее за дотнетом. А оказывается нет. За последние месяца 3 это вторая малварь на вб, которую я разбираю, при этом я как бы ни разу ни авер и не реверсер, это скорее исключение. Мб в этом и есть смысл..
Сорян за оффтоп, просто подумал над такой темой. Thetrik, как ты думаешь, опираясь на опыт работы с вб6. Можно ли взять виртуальную машину, исполняющую п-код, и запустить в режиме эмбеддинга в нативном процессе. По сути использовать как Lua там например. Загрузить контекст машины в нативный процесс, создать несколько функций расширения для этой машины, передать машине скомпиленный п-код на исполнение. Если да, то какие функции из каких длл посмотреть по этой теме?
M0rg0t, > Этот софт берет хеш или из этого файла или откуда-то с инета Так место нужно конкретное узнать откуда начинается выборка из файла для начала. Обычные инструменты позволяют смотреть стек на момент ядерного вызова. Это в статике не разобрать идой, может олькой открыть там проще без глюков, но врядля чем то поможет.
Rel, я лет 15 назад реверсил плагин к екселю, для решения оптимизационных задач, так вот он тащил с собой интерпретатор вб6 и сам п-код то есть думаю можно это подружить, но возникает вопрос а оно тебе надо ? Имхо что-то другое лучше взять с этой целью
M0rg0t, какую именно ссылку, на что? Вот что у меня делается http://ip-api.com/json/?fields=countryCode - получается локаль: Далее грузится и дропается в Temp https://egame.s3-eu-west-1.amazonaws.com/Racingcar.exe Пи-код тут вообще не при чем, здесь натив. Rel, ну такое очень просто делается через IActiveScript. Специально предназначен для интеграции скриптинга в свои приложения, можно добавлять как и внешние сущности которые скрипт будет вызывать, также вызывать потом из нативного кода любую функцию в скрипте. Если именно нужен P-код, то можно попробовать сохранить состояние через IPersist*, а потом переоткрыть, но не уверен что будет работать. Также теоретически можно и msvbvm заюзать в качестве исполнения, но я этим не занимался. Могу сказать что ProcCallEngine, MethCallEngine передают управление в P-кодную функцию, но там нужно инициализировать рантайм. Проще написать AXDLL и в ней уже делать подобные манипуляции.
M0rg0t, нет, не закодированы. Там есть закодированное содержимое (в EXE), но это HTML страница, а не ссылка, которая отображается в WebBrowser'е. Причем криво закодированная. EXE использует WinHttpRequest для запросов, так ты можешь поставить бряк на IWinHttpRequest::Send чтобы посмотреть какие запросы отправляет EXE. К примеру вторая ссылка хранится по адресу 0040AD00.
Я не знал, что VB6 поддерживает этот интерфейс, думал, что его реализуют только всякие вбскрипты, джейскрипты и тд. Да, я про это. Погуглю потом на досуге про эти апишки, спасибо! Еще оффтоп небольшой, раз уж зашел разговор, сорян. Какой сейчас самый актуальным детектер пакеров?
Вспомнил про статью от Andreageddon, погуглил, помимо собственно статьи "vb reversed, a decompiling approach", есть сборник ссылок, http://sandsprite.com/vb-reversing/ Гугление Methcallengine (отдельно слово meth лучше не гуглить) дало некий костыль для Ida, https://gist.github.com/ghassani/7b23b0be6dea8015bc133cbf125b03e6