Blog. Just Blog

Armadillo Environment Variables Injector 1.4

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Мои программы | Автор: ManHunter
Скриншот программы Armadillo Environment Variables Injector
Скриншот программы Armadillo Environment Variables Injector

Armadillo Environment Variables Injector - это вспомогательная утилита для обхода защиты программ, основанной на переменных окружения навесного протектора Armadillo. После снятия Armadillo и восстановления дампа, при помощи Armadillo Environment Variables Injector вы можете добавить в распакованный файл код, который при запуске будет автоматически устанавливать переменные окружения в нужные значения. Тем самым отпадает необходимость искать и патчить проверки переменных окружения в самой программе. Работоспособность проверена на Windows XP и Windows 7, в том числе на 64-битных системах. Поддерживаются исполняемые файлы и DLL-библиотеки. Для поиска имен используемых в файле переменных можно воспользоваться утилитой Armadillo Environment Variables Finder.

Armadillo Environment Variables Injector позволяет инжектить код двумя способами на выбор: в пустую область в конце секции кода или путем добавления новой секции в исполняемый файл.

Если для распаковки вы используете ArmaGeddon, то НЕ ставьте галочку на опции "Minimize size", так как в этом случае патч путем добавления новой секции будет невозможен. Для удаления секций протектора после распаковки я рекомендую пользоваться программой CFF Explorer.

В качестве полезной нагрузки разработчики софта тоже могут использовать утилиту Armadillo Environment Variables Injector. С ее помощью можно проверять и отлаживать реакцию своих программ на различные события Armadillo без необходимости каждый раз навешивать сам протектор.

Armadillo Environment Variables Injector 1.4Armadillo Environment Variables Injector 1.4

Armadillo.Environment.Variables.Injector.1.4-PCL.zip (25,155 bytes)


Поделиться ссылкой ВКонтакте Поделиться ссылкой на Facebook Поделиться ссылкой на LiveJournal Поделиться ссылкой в Мой Круг Добавить в Мой мир Добавить на ЛиРу (Liveinternet) Добавить в закладки Memori Добавить в закладки Google
Просмотров: 7988 | Комментариев: 36

Комментарии

Отзывы посетителей сайта о статье
ManHunter (19.01.2018 в 11:35):
На криво распакованном файле конечно не работает.
brute (19.01.2018 в 07:03):
"Странно, что за все эти годы никто не сообщил о подобных аномалиях"
я сразу написал ,что не работает.
ManHunter (16.01.2018 в 19:16):
Да ладно, навешивают только в путь. Согласен, что количество защищенного софта заметно сократилось, но списывать со счетов арму пока рано.
ЖК (16.01.2018 в 18:20):
>Странно, что за все эти годы никто не сообщил о подобных аномалиях.

Арма как проект прекратила существование несколько лет назад. Да и софта, на который она навешена, уже давненько не встречалось. Может поэтому
User (14.01.2018 в 02:32):
>Странно, что за все эти годы никто не сообщил о подобных аномалиях.

Всегда использовал code cave. Две остальные ошибки самостоятельно не проявлялись.
ManHunter (14.01.2018 в 01:34):
Версия 1.4. Попробовал пропатчить обычную программу, вылезло аж три критических ошибки. В режиме добавления секции не учитывался оверлей, фигачило прям поверх. Теперь оверлей принудительно отрезается. При выравнивании секций в заголовке мог возникнуть глюк с неправильным определением размера виртуальной секции. Исправлено. И вообще полный финиш был, когда в заголовке PE-файла в характеристиках не был установлен флаг "Relocation stripped". Прога грузится по рандомным адресам, релоки исправляют что надо, а из патча переход на OEP типа push 401000 / ret и уходим в никуда. Исправлено, теперь для exe флаг принудительно выставляется.
Странно, что за все эти годы никто не сообщил о подобных аномалиях.
speedboy (21.03.2016 в 04:01):
Always in use
ManHunter (14.03.2016 в 13:34):
Версия 1.3. Добавлена опция автоматической корректировки поля Checksum в PE-заголовке. Размер дописываемой секции теперь выравнивается до размера параграфа. Сделаны проверки на дублирование инжектируемых переменных. Мелкие изменения и доработки.
user (19.10.2015 в 12:48):
Нормально работает. Это, в принципе, то же самое, что, я говорил, делаю в HIEW. Можно пользоваться, thanks.
ManHunter (19.10.2015 в 10:45):
Обойдусь внеочередным мелким билдом, до целой новой версии масштаб изменений не дотягивает. :)

Добавлена автоматическая коррекция значения SECTION_ENTRY.VirtualSize секции кода при инжекте, если оно меньше SECTION_ENTRY.PhysicalSize. Архив обновлен. Мои благодарности user.
user (17.10.2015 в 19:36):
(( Вау. Я уже приготовился было к очередному релизу ((.

Хотя согласен, тут спешить лучше не надо - пока работает и так, и то хорошо.
ManHunter (17.10.2015 в 18:51):
Ну вот, будет что в новой версии делать. Спасибо за наводку, я упустил этот момент.
user (17.10.2015 в 15:31):
Почти окончательно:

if(
( VirtSize_of_section < (RVA_1st_injector_byte_fritten - RVA_section) )
&&
( PhysSize_section > (RVA_last_injector_byte_written - RVA_section) ) )
  )

{
// Then injector written Ok.
VirtSize_of_section = (RVA_last_injector_byte_written - RVA_section) +1 ;
}

else
{
//.... стрёмный вариант - возможно пытаемся записать инжектор
//    поверх проинициализированных нолём данных ....
.. do something ..
}
user (17.10.2015 в 13:38):
Так. По новой опции возникло замечание.

Берём для примера пресловутую программу AWIcons v.10.2.
После всех манипуляций инжектор дописвается в конец секции .text,
которая имеет виртуальный размер 001E7A8Eh, а реальный в файле 001E8000h (выравнивание).
Всё вроде бы работает - но стОит только запаковать файл UPX'ом или чем-нибудь другим, как работать перестанет - в распакованном коде на месте инжектора будут нули-заполнители.

Короче, после записи инжектора в конец существующей секции нужно подкорректировать её размер VirtualSize = PhisSize.
Вот пример патча, после которого всё работает без вопросов (пакуется/распаковывается UPX'ом):

-----------------------------------------------------------OLD-BAD!
N  Name   VirtSize   RVA    PhysSize  Offset    Flag
1 .text >!>001E7A8E 00001000*001E8000*00001000 60000020
2 .rdata   0006133A 001E9000 00062000 001E9000 C0000040
3 .data    00020FBC 0024B000 0000D000 0024B000 C0000040
4 .rsrc    00098668 0026C000 00099000 00258000 40000040
-----------------------------------------------------------NEW-OK
N   Name   VirtSize   RVA    PhysSize  Offset    Flag
1 .text >!>001E8000 00001000*001E8000*00001000 60000020
2 .rdata   0006133A 001E9000 00062000 001E9000 C0000040
3 .data    00020FBC 0024B000 0000D000 0024B000 C0000040
4 .rsrc    00098668 0026C000 00099000 00258000 40000040
--------------------------------------------------------------
user (17.10.2015 в 13:08):
) В общем, thanks.
user (17.10.2015 в 12:53):
Работает нормально новая опция. Всё путём - то, что нвдо.

Насчёт добавления секций. Всегда стараюсь не трогать размер файла - так проще вести учёт изменений. Тогда и откатиться можно не из бэкапа, а из текущего состояния распатчиванием.
user (16.10.2015 в 22:22):
ЦитатаПропатчил одним способом, проверил, работает - хорошо, не работает - откатил из бэкапа

Ну, это да. В общем, надо пробовать.
ManHunter (16.10.2015 в 22:14):
А чего скользкого? Пропатчил одним способом, проверил, работает - хорошо, не работает - откатил из бэкапа, пропатчил другим способом. Инжект в секцию кода работает даже с файлами после Армагеддона с опцией минимизации exe-шника и полностью засранным заголовком, антивирусы опять же не паникуют. А добавление новой секции является наиболее стабильным способом из-за неприкосновенности основного кода, но требует больше телодвижений при подготовке файла к патчу.
user (16.10.2015 в 22:08):
Хм.. Скользкий момент. Но опция полезная, считаю.
ManHunter (16.10.2015 в 22:05):
В инжекторе с этой версии уже появился новый режим с внедрением в секцию кода, без необходимости дописывания новой секции.
user (16.10.2015 в 22:01):
) Да никаких вопросов.
Работает та программа уже нормально. Перестали они глупостями заниматься с протектором.

Вообще это тема для размышлений - полно статей по ковырянию софта, которого сейчас уже не найти.

Что касается EnvVarFinder'a - полезная вещь. А вот EnvVarInjector'ом не пользуюсь - мне не нравится, что добавляется новая секция. Хотя автоматически по-другому, наверное, смысла делать нет. Просто в HIEW вставляю процедуру, похожую на ту из инжектора, оттранслированную отдельно из .ASM'а. Это оказалось удобнее.
ManHunter (16.10.2015 в 21:17):
Вся информация актуальна на день публикации. Комментарий и та статья опубликованы в далеком 2011 году.
user (16.10.2015 в 18:23):
Типа уточнение. По аоводу ковыряния AWIcons Pro v.10.2.

ЦитатаManHunter (17.07.2011 в 03:23):
Выложил:


Там описывается версия 10.2.
А на офсайте нынче раздача версии 10.3, она уже без армалиллы.
Надо быдет взглянуть на неё, кстати.

)) .. Сорри за опечатки, паскудный монитор, ничего не видать, и чужая клавиатура - не попадаю по кнопками ..
speedboy (16.10.2015 в 05:37):
Thanks
ManHunter (15.10.2015 в 01:30):
Добавлен новый способ патча путем инжекта в существующую секцию кода. Оптимизирован инжект новой секции. Много прочих доработок и изменений.
brute (14.02.2015 в 09:59):
понимаю, что литературы полно - бери да читай (но спросить - это проще и быстрее:). Ветку про арму на лабе прочитал - ничего дельного, половина аттачей (приватные брутеры сертификатов) удалены. Пишут: "обработать после армагедона напильником". Дело не в армагедоне (все версии пробовал. Может, какие-то хитрые опции-ключи нужны?). Все твои статьи просмотрел - больше нигде арма не снимается. Научи хорошо снимать арму(ну, или ссылку на ман для медитации). Без этого Variables Injector бесполезен. П.С. понял, что арма - серьезный прот, и до появления армагедона с ней была Ж.
ManHunter (13.02.2015 в 11:38):
В программе все работает. Не работает в плохо распакованном файле.
brute (13.02.2015 в 10:52):
Патчил ALTUSERNAME/USERNAME и на ХП тоже не робит.
brute (13.02.2015 в 09:59):
что-то не пашет на этой проге:
https://yadi.sk/d/MK3irxxeeeMNg
W7_32. Патчил ALTUSERNAME
Kindly (04.09.2012 в 01:47):
Класс!!! Спасибо! Ручками тоже можно патчить, но в некоторых прогах надо поднапрячся, чтобы получить нужные рег-данные, а с этой тулзой очень удобно экономить время. Супер!!!
ManHunter (25.07.2011 в 22:49):
Где у меня такое написано?? "...НЕ ставьте галочку на опции..." Слово "НЕ" специально выделено заглавными буквами. "Do not use" - это то же самое, только по-английски. Как еще объяснять? Выделил цветом.
Стас (25.07.2011 в 22:33):
Делал все как Вы писали AWiconsPro.exe Armageddon 1.9 ставлю опцию Minimize size , после скармливаю AEVI 1.1 Выдаёт ошибку:
Header contains extra data!
Do not use option "Minimize Size" in Armageddon, cut sections manually with CFF Explorer
Размер уменьшен вот сам файл hТТp://zalil.ru/31467044
WinXP 32
ManHunter (20.07.2011 в 21:07):
Версия 1.1. Теперь пропатченные файлы работают на 64-битных системах. Добавлена поддержка DLL, проверка на файлы после распаковки армагеддоном с опцией "Minimize size".
ManHunter (17.07.2011 в 03:23):
Dimas (10.07.2011 в 18:33):
Жду с нетерпением
ManHunter (07.07.2011 в 13:15):
Скоро выложу пример использования инжектора на реальной программе.

Добавить комментарий

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2018
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.16 сек. / MySQL: 2 (0.0027 сек.) / Память: 4.75 Mb
Наверх