Armadillo Environment Variables Injector 1.5
Скриншот программы 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.5
Armadillo.Environment.Variables.Injector.1.5-PCL.zip (25,146 bytes)
Armadillo.Environment.Variables.Injector.1.5-PCL.zip (25,146 bytes)
Просмотров: 11639 | Комментариев: 40
Метки: мои программы, реверсинг
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(16.07.2020 в 12:43):
Работает
Petya
(16.07.2020 в 12:36):
Не очень понял - просьба не обижаться - работает ли она:
а) с произвольными ИМЕНАМИ ПЕРЕМЕННЫХ?
б) с произвольными, а не вытащенными из под мудилами, ЭКЗЕШНИКАМИ?
а) с произвольными ИМЕНАМИ ПЕРЕМЕННЫХ?
б) с произвольными, а не вытащенными из под мудилами, ЭКЗЕШНИКАМИ?
speedboy
(05.03.2019 в 03:16):
IT is good tools
ManHunter
(04.03.2019 в 10:46):
Версия 1.5. Исправлена ошибка вычисления OEP при добавлении новой секции на файлах, у которых не совпадали значения выравнивания файла и секций. Улучшения: при открытии исполняемого файла автоматически подтягивается AEV-файл с соответствующим именем (например, filename.exe.aev). При сохранении данных инжектора сразу подставляется имя для AEV-файла.
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. Две остальные ошибки самостоятельно не проявлялись.
Всегда использовал 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.
Добавлена автоматическая коррекция значения 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 ..
}
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
--------------------------------------------------------------
Берём для примера пресловутую программу 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'а. Это оказалось удобнее.
Работает та программа уже нормально. Перестали они глупостями заниматься с протектором.
Вообще это тема для размышлений - полно статей по ковырянию софта, которого сейчас уже не найти.
Что касается EnvVarFinder'a - полезная вещь. А вот EnvVarInjector'ом не пользуюсь - мне не нравится, что добавляется новая секция. Хотя автоматически по-другому, наверное, смысла делать нет. Просто в HIEW вставляю процедуру, похожую на ту из инжектора, оттранслированную отдельно из .ASM'а. Это оказалось удобнее.
ManHunter
(16.10.2015 в 21:17):
Вся информация актуальна на день публикации. Комментарий и та статья опубликованы в далеком 2011 году.
user
(16.10.2015 в 18:23):
Типа уточнение. По аоводу ковыряния AWIcons Pro v.10.2.
Там описывается версия 10.2.
А на офсайте нынче раздача версии 10.3, она уже без армалиллы.
Надо быдет взглянуть на неё, кстати.
)) .. Сорри за опечатки, паскудный монитор, ничего не видать, и чужая клавиатура - не попадаю по кнопками ..
Там описывается версия 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):
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
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):
Скоро выложу пример использования инжектора на реальной программе.
Добавить комментарий
Заполните форму для добавления комментария