Сейчас на форуме: tyns777 (+4 невидимых) |
eXeL@B —› Обсуждение статей —› [ Hex ] Armadillo и CopyMem II |
Посл.ответ | Сообщение |
|
Создано: 22 ноября 2010 00:12 · Личное сообщение · #1 |
|
Создано: 29 июня 2014 07:53 · Поправил: kola1357 · Личное сообщение · #2 Софтайс уже не актуален, сейчас набирает популярность олледебаг. Поэтому распаковывал подобную прогу в олле. Распаковать получилось, все работает, но вот только не получилось выйти на код раскриптовки как рассказывают в статье. Я распаковывал прогу, покрытую армой версии 4.42. Значит, ставлю бряк WriteProcessMemory, ставить надо или хардварный, потому что в новых версиях, арма палит обычные бряки. Либо ставить не на первые инструкции. Первые 2 остановки были на запись бесконечного цикла в еп протектора, это не интересно, а вот тут вижу, что арма собирается копировать 1000 байт в секции кода, значит copymem 2 есть. Code:
Выхожу из функции ctrl+f9 и один раз f7 и еще раз до ret пробегаем и попадаем сюда. Code:
Тут видим, что в стек кладется 3 параметра. Первый это 0, это значит расшифровывать, потом ecx - в нем код расшифровки страницы, а потом edx - тут номер страницы. Решил это дело зациклить, одна проблема код расшифровки страницы, который вычисляется в коде, который приведен в статье. Его начало : Code:
Как пишут в статье на него можно выйти 3 раза нажав выполнить до ret, но у меня так не получилось. Я этот код нашел через поиск в памяти по уникальным байтам. А далее сделал скрипт, который прогоняет через этот код все страницы секции кода. Далее отсоединил дочерний процесс при помощи DebugActiveStop и сдампил его. Вот поэтому вопрос, есть ли еще способы выйти на данный код, потому что через ret не получается это сделать, но код легко найти в памяти по строчке кода Code:
|
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 29 июня 2014 10:02 · Личное сообщение · #3 kola1357 пишет: Софтайс уже не актуален, сейчас набирает популярность олледебаг. спасибо кэп! 1) поддержку софтайса стопицот лет назад прекратили, под новые версии винды он не идет 2) отладчики ядерного уровня и прикладного - две, абсолютно разные, вещи 3) собственно сам Armadillo недавно сдох. По большей части, этот протектор - уже история |
|
Создано: 29 июня 2014 13:00 · Поправил: VodoleY · Личное сообщение · #4 kola1357 инжектиш в прогу свою длл которая пытается вычитать всю память.. арма за тебя все сама расшифрует, от тебя будет нужно ток нужные странички в файл сохранить. WriteProcessMemory это конечно круто.. но когда надо ВСЕ тело проги? а не отдельные странички? З.Ы. борьбы с копимемом вариантов масса.. в свое время.. делали .. кто во что гаразд З.Ы.Ы для особых ценителей.. можно и софтайс завести.. я дебажил его сисером.. или 2мя ольками с детачем дебагера.. то все на любителя и не принципиально ----- Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме.... |
|
Создано: 29 июня 2014 13:05 · Личное сообщение · #5 VodoleY пишет: инжектиш в прогу свою длл Да про такой способ слышал, но я применял способ зацикливания этого алгоритма, так как copymem подгружает только секцию кода, то нужно перебрать все странички, в моей проге размер секции кода был 1с000, то есть 1с страниц. Далее просто пробежал по циклу расшифровки, передавая ему одну за другой страницы и получил расшифрованную секцию кода. |
|
Создано: 29 июня 2014 13:11 · Личное сообщение · #6 |
|
Создано: 29 июня 2014 17:15 · Личное сообщение · #7 ELF_7719116 пишет: 2) отладчики ядерного уровня и прикладного - две, абсолютно разные, вещи Согласен, а вот распаковывать протекторы уровня ринг-0 реально в ольке ? Или нужен именно отладчик уровня ядра ? Просто если протектор уровня ядра, у него много прав в системе, он может себе сделать полномочия системного процесса. И делать какие-нибудь гадости из ядра, которые олька не сможет поймать. |
|
Создано: 29 июня 2014 17:25 · Личное сообщение · #8 |
|
Создано: 29 июня 2014 17:38 · Личное сообщение · #9 |
|
Создано: 29 июня 2014 17:47 · Личное сообщение · #10 |
|
Создано: 29 июня 2014 19:33 · Личное сообщение · #11 ELF_7719116 пишет: 3) собственно сам Armadillo недавно сдох. По большей части, этот протектор - уже история Автор забросил этот протектор ? Удивительно, но приемы типа copymem 2, debug-blocker, наномиты довольно интересны и в этом этот протектор уникален. Я со всем этим столкнулся именно в этом протекторе, они не сильно страшные (первые 2), но когда работаешь с другими протами, где обычно нужно дойти до оеп, найти спертые байты, если своровал, восстановить таблицу импорта апи, ее обычно все протекторы затрагивают. Ну и антидампы - новая фишка протекторов, правда не сильно усложняет нам жизнь. Вот из всего этого, мне кажется самое сложное это найти спертые байты. |
|
Создано: 01 июля 2014 08:37 · Личное сообщение · #12 kola1357 пишет: Софтайс уже не актуален, сейчас набирает популярность олледебаг. Я бы сказал теряет. К тому моменту, когда выйдет x64 версия все инструменты уже будут под IDA и другие отладчики. kola1357 Автор фишек copymem, db, nanomites забросил это протектор значительно давно, намного раньше чем прекращение развития и поддержки проекта. Кому какое дело до этих фишек, если по ним уже миллион статей? И как могут эти защитные механизмы помочь разработчикам ПО от взлома готовым набором инструментов для создания кейгена под арму? Под CopyMEM способ Hex'а рулит. Без всяких DLL и прочих заморочек. Забавно, что единственный комментарий к статье под моим авторством и датирован 2009-ым годом. Это ж как время пролетело, больше 5 лет жизни... kola1357 пишет: есть ли еще способы выйти на данный код А зачем именно туда? Выйти на этот код можно поставив бряк внутри WaitForDebugEvent, а по выходу найти код обработки ошибки доступа к памяти. Это может показаться не малой работой, но на деле же это всего пару часов отладки по не опытности. Потом вы будете видеть этот код как рентген. Мне для моего скрипта (сверх не универсального) достаточно выйти сразу же за WaitForDebugEvent. Смотрите сами: Code:
Я ищу счетчик открытых страниц, значение разрешенного максимума открытых страниц и массив статусов страниц. Прибив значение максимума, идем по массиву статусов и везде где страница нуждается в расшифровке проходим весь цикл обработки ошибки, отпуская отладчик армы каждый раз и позволяя ему отдать винде исключение. Оно остается не обработанным (и не важно что это было за исключение. Мы переставляем в скрипте указатель команд на нужное место и пусть арма думает, что обрабатывает именно ошибку памяти. Когда все страницы расшифрованы, можно делать дамп. Желательно это делать на первой же обработке CopyMEM, пока приложение не успело запуститься и нагадить в своей собственной памяти. kola1357 пишет: Далее отсоединил дочерний процесс при помощи DebugActiveStop и сдампил его. Это еще зачем? Можно просто дампить. kola1357 пишет: Ну и антидампы - новая фишка протекторов, правда не сильно усложняет нам жизнь. Вот из всего этого, мне кажется самое сложное это найти спертые байты. Во-первых, очень не новая. CopyMEM это тоже анти-дамп метод и ему 100 лет уже. Во-вторых, самое сложное виртуальные машины на сегодня. Сегодня их ломают двумя основными способами - или инлайн (код то остается кодом, даже после обфускации, а виртуализация по сути просто вариант обфускации), в том числе инлайн пикода с восстановлением контрольных сумм, или же полная девиртуализация, что скриптом уж точно не сделаешь для хороших ВМ. А это месяцы и даже годы трудов на создание системы девиртуализации. | Сообщение посчитали полезным: VodoleY, ajax |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 01 июля 2014 13:34 · Личное сообщение · #13 int пишет: самое сложное виртуальные машины на сегодня. хм! за SecuROM я бы так не сказал, тащемта анализируя область обмена данными между хендлами и основные регистры VM, можно очень быстро воспроизвести, что творится внутри виртуальной машинки. традиционно, туда засунуты примитивные операции, типа xxx DWORD [куда-то], что-то, где вместо xxx-MOV или XOR. а в остальном, из секуромовской вм извлекается профит в виде удобной навигации и всяких вкусностей, типа перехода в OEP. впрочем, это частный случай, а в остальных протекторах наверняка чуть посложнее |
|
Создано: 01 июля 2014 14:40 · Личное сообщение · #14 ELF_7719116 Ты сравниваешь немного разные вещи, у армы сплайсинг практически не менялся со времен его изобретения, секира же от версии к версии его модифицирует. | Сообщение посчитали полезным: ClockMan |
|
Создано: 01 июля 2014 17:01 · Личное сообщение · #15 |
eXeL@B —› Обсуждение статей —› [ Hex ] Armadillo и CopyMem II |