Сейчас на форуме: (+7 невидимых)

 eXeL@B —› Протекторы —› EXECryptor (Туторы, скрипты, плагины, ...)
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 25 . 26 . >>
Посл.ответ Сообщение

Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 20 сентября 2006 18:14 · Поправил: Модератор
· Личное сообщение · #1

[url=http://rapidshare.de/files/33519198/Unpacking___Cracking_RAR_Repa ir_Tool_3.0.rar
]http://rapidshare.de/files/33519198/Unpacking___Cracking_RAR_Repair_T o ol_3.0.rar
[/url]
http://rapidshare.de/files/30412021/OllyDbg_Execryptor.7z http://rapidshare.de/files/30412021/OllyDbg_Execryptor.7z




Ранг: 328.7 (мудрец), 73thx
Активность: 0.170.01
Статус: Участник

Создано: 30 сентября 2007 09:25
· Личное сообщение · #2

vnekrilov пишет:
Естественно, что когда имеется восстановленная таблица IAT, программа не будет использовать код пакера, связанного с определением реальных адресов APIs,

отнюдь



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 30 сентября 2007 09:36
· Личное сообщение · #3

vnekrilov пишет:
Возникает вопрос, почему возникают проблемы с запуском распакованных программ на машинах с другими версиями OS?

гы, у меня пока таких проблем не возникало. хотя были, но привится занулением указателя на GetModuleHandleA. причины описал kioresk.
r99 пишет:
vnekrilov пишет:
Естественно, что когда имеется восстановленная таблица IAT, программа не будет использовать код пакера, связанного с определением реальных адресов APIs,
отнюдь

ога...




Ранг: 154.2 (ветеран), 66thx
Активность: 0.080
Статус: Участник
REVENGE Crew

Создано: 30 сентября 2007 16:03 · Поправил: kioresk
· Личное сообщение · #4

vnekrilov,

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

Часть импорта защищается статически:
1. хеши сохраняются в определенном месте в полиморфе
2. при запуске криптор проходит по импорту
3. вычисляет адреса функций для ячеек c индексами (0, 1, 2 и т.д.)
4. заменяет вычисленными адресами эти ячейки

А часть — динамически:
1. вместо адресов вставляются переходники в полиморф, где вычисляется адрес функции
2. хеши сохраняются в коде, т.е. присваиваются определенному регистру
2а. переходник заменяется адресом и в будущем адрес функции заново не вычисляется
2б. переходник не заменяется

В общих чертах адрес функции вычисляется следующим образом:
1. Расксориваем имя библиотеки
2. Проверяем загружена ли она (GetModuleHandle)
3. Если нет, то загружаем ее (LoadLibrary)
4. Переходим по адресу библиотеки в памяти
5. Идем в директорию экспорта
6. Получаем адрес где хранятся названия функций
7. Берем имя 1-й функцию, вычисляем хеш
8. Сравниваем с сохраненным по определенному адресу хешем
9. Если не совпали, то переходим к следующей функции и т.д. пока не совпадут


По поводу работы дампа, ты рассматриваешь импорт программы и забываешь, что у криптора еще и свой импорт есть, который после инициализации естественно не будет работать на других машинах/системах. Как пример — GetModuleHandle как раз относится к внутреннему импорту.


Домашнее задание

Посмотреть как криптор работает с ординалами.



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 30 сентября 2007 16:27
· Личное сообщение · #5

kioresk пишет:
2. Проверяем загружена ли она (GetModuleHandle)
3. Если нет, то загружаем ее (LoadLibrary)

kioresk, а LoadLibrary не надо занулять вместе с GetModuleHandle?



Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

Создано: 30 сентября 2007 16:31
· Личное сообщение · #6

kioresk пишет:
Посмотреть как криптор работает с ординалами.

GetProcAddress, т.к. криптор не умеет работать с ординалами
Хотя в принципе можно реализовать и самостоятельную их обработку перечислением.

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels




Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 30 сентября 2007 16:48 · Поправил: pavka
· Личное сообщение · #7

kioresk
Удивительно у тебя ловко получаеться персказываешь тутор Пекила, а вроде как твои мысли и все как в первый раз это слышат ;)
Из тутора
И так как же устроен враппер? На самом деле врапперов здесь 3.

При вызове API враппер проверяет есть ли у него указатель на нужную DLL, если нет, то он пытается получить его посредством функции GetModuleHandleA. Если функция вернула 0, то вызывается LoadLibraryA. Затем из этой DLL враппер получает название первой функции и из нее получает хэш. Далее он сравнивает хэш с тем, который необходимо получить и если не равны, то берет название следующей функции, и т.д. После того как хэш получен враппер вычисляет адрес этой функции и затем переходит на нее.
Является дополнением к первому. Автор криптора не дурак и понимает что такой вызов функций приведет к диким тормозам и продажи криптора резко упадут. Поэтому часть врапперов после вычисления адреса АПИ шифруют этот адрес и помещают во внутреннюю IAT. Затем при повторном вызове функции враппер проверяет есть ли уже адрес и если есть, то расшифровывает его и вызывает функцию.
Этот враппер самый простой. Он один в один как первый враппер, но после вычисления адреса АПИ он не шифрует ее, а пропатчивает адрес враппера в ИАТ адресом АПИ функции, при повторном вызове функции враппер уже не вызывается...........



Ранг: 14.4 (новичок)
Активность: 0.010
Статус: Участник

Создано: 30 сентября 2007 17:36
· Личное сообщение · #8

Господа, ничего не могу поделать вот с этой прогой: www.satcore.info/files/FSF2.2.9_Setup.exe
Пытался использовать и туторы разные, но успехов не добился. Может кто помочь в ломке ее, родной?



Ранг: 329.6 (мудрец), 192thx
Активность: 0.140.01
Статус: Участник

Создано: 30 сентября 2007 18:10
· Личное сообщение · #9

kioresk пишет:
По поводу работы дампа, ты рассматриваешь импорт программы и забываешь, что у криптора еще и свой импорт есть,


Действительно, у криптора имеется свой импорт в виде API ExitProcess, GetModuleHandleA, GetProcAddress, LoadLibraryA и MessageBoxA. Эти API находятся во второй секции, созданной криптором после секции .rsrc. Эти API нужны для работы пакера при прохождении на OEP. Как правило, после распаковки программ, я записываю импорт на его родное место, в секцию .idata, и удаляю последние две секции криптора, в том числе и ту, которая содержит внутренний импорт. После их удаления, программа запускается как обычная неупакованная программа. Здесь пока я не могу удалить первую секцию криптора, которая расположена сраэу после секции .rsrc. На нее идет масса переадресаций из кода программы. Сейчас я разбираюсь с эмуляцией инструкций, которые украл пакер, и перенес их в эту секцию. Вроде бы я нашел некоторые закономерности, но они еще нуждается в серьезной проверке.

После такой доработки дампа распакованной программы, внутренний импорт криптора больше не используется, а используется родная таблица IAT, которая выполняется без каких-либо переадресовок.

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



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 30 сентября 2007 18:45
· Личное сообщение · #10

vnekrilov пишет:
Сейчас я разбираюсь с эмуляцией инструкций, которые украл пакер, и перенес их в эту секцию. Вроде бы я нашел некоторые закономерности, но они еще нуждается в серьезной проверке.

ога, морф разбирать жесть...




Ранг: 154.2 (ветеран), 66thx
Активность: 0.080
Статус: Участник
REVENGE Crew

Создано: 30 сентября 2007 19:03
· Личное сообщение · #11

sniperz,

нет, LoadLibrary относится к внутреннему импорту криптора и вычисляется по аналогичному принципу. Только занулять надо не ячейку, которая хранит адрес GetModuleHandle, а место где хранится указатель на эту ячейку.


Smon,

За выполненное ДЗ — пять.
Хотя зря так быстро раскрыл стратегическую тайну, и так исследованием сабжа почти никто не занимается.


vnekrilov,

Кроме этих функций криптор еще кучу функций использует, которые как раз и относятся к его внутреннему импорту (например, GlobalAlloc, GlobalHandle, _lopen, и т.д.).

Просто они не открыто хранятся, а разбросаны по секции криптора и сдвинуты (shr по-моему) на различные значения, плюс адреса начала библиотек, по которым криптор вычисляет эти функции.

Если, к примеру, в дампе проинициализирован адрес библиотеки и он запускается на другой ОС, то при вычислении адреса функции произойдет ошибка. Тоже самое когда адрес какой-то внутренней функции проинициализирован.

Если разбором полиморфа заинтересовался, то посмотри для начала (если еще не успел) статью softworm'а «EXECryptor 2.2.66 VM incomplete analysis» (http://bbs.pediy.com/showthread.php?t=17763).



Ранг: 329.6 (мудрец), 192thx
Активность: 0.140.01
Статус: Участник

Создано: 30 сентября 2007 19:32 · Поправил: vnekrilov
· Личное сообщение · #12

kioresk пишет:
Кроме этих функций криптор еще кучу функций использует, которые как раз и относятся к его внутреннему импорту (например, GlobalAlloc, GlobalHandle, _lopen, и т.д.).


Я распаковал программу PrevedSMS, в которой удалил две последние секции, а таблицу IAT записал по ее родному месту (эту программу я взял для туториала по распаковке ExeCryptor v2.3.9). Она интересна тем, что здесь использована разнообразная защита. Уже написано две части (поиск OEP, восстановление IAT и удаление лишних секций). Осталось написать две части - работа программы на разных OS, и анализ полиморфного кода. В основу анализа полиморфного кода заложена запись криптором в свою секцию основных данных, которые необходимы для обеспечения дальнейшей работы программы. Этот код оказался весьма стандартным, и повторяется при выполнении каждой украденной инструкции. Это, по моему мнению, дает возможность восстановить украденный код в нормальном виде. Но это - пока мое предварительное мнение.

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



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 30 сентября 2007 22:05 · Поправил: sniperZ
· Личное сообщение · #13

vnekrilov
1. нах удалять оставшуюся секцию криптора? места она не много занимает. две последние удалил и хватит...
2. я пытался разбирать морф криптора. очень геморно и тяжело. имхо овчинка не стоит свеч...




Ранг: 154.2 (ветеран), 66thx
Активность: 0.080
Статус: Участник
REVENGE Crew

Создано: 30 сентября 2007 22:16
· Личное сообщение · #14

vnekrilov,

Сделай, к примеру, на Дельфи болванку и накрой полиморфом определенную процедуру. Потом защити ее несколько раз, меняя уровень виртуализации (0, 10, 20 и т.д.). Пройдись по коду в этих вариантах и сравни как трансформируется оригинальный код. Иначе у тебя будет неполное представление о структуре полиморфа и используемых паттернах.




Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 30 сентября 2007 23:54
· Личное сообщение · #15

Других инструкций,кроме опкод прыжка,обращений в иат,в дельфовых вроде нет.
В этом дампе можно смело всё крошить,у мну рабочий дамп вышел где-то 6 метров.
Оставшиеся вызовы в секции криптора,кажись касаются условий регистрации,мну на их полиморф поклал,мну их тупо нопил.
Единственно,чего не разобрал(из-за наличия плуга Дероко:s1,где и по чему,при востановлении ИАТ по скрипту(к примеру by KaGra),идёт детект и завершается процесс.
//Вообще с утилей RCI,намного легче стало реверсить криптор.
//А сабжик действительно интересный материал для статьи.

-----
Чтобы юзер в нэте не делал,его всё равно жалко..




Ранг: 4.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 01 октября 2007 00:03
· Личное сообщение · #16

А можно как-нибудь обновить олю на рапидшаре из первого поста, а то рапидшара говорит что файл уже кончился?



Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 01 октября 2007 00:24
· Личное сообщение · #17

mjau
Та сборка Оли малость устарела )))
Присоединяйся к дружному "Cпасибо!" для Bronco, и забирай,им заботливо сделанную, сборку под екзекриптор в теме о Фантоме(сейчас пост Bronco со ссылкой на сборку на последней странице темы).




Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 01 октября 2007 01:11
· Личное сообщение · #18

//Пока помидорами не закидали,каюсь
Сборка не моя,базовой была от Hacnho.
Мну покилял,на свой взгляд чо не нужно,да более менее настроил,опять же исходя на том чо есть,и под себя.
//На последних версиях криптора,хайдить обязательно,пока только HideToolz-ом.

-----
Чтобы юзер в нэте не делал,его всё равно жалко..




Ранг: 329.6 (мудрец), 192thx
Активность: 0.140.01
Статус: Участник

Создано: 01 октября 2007 07:50
· Личное сообщение · #19

sniperZ пишет:
я пытался разбирать морф криптора. очень геморно и тяжело. имхо овчинка не стоит свеч...


Согласен, что овчинка не стоит свеч, поскольку эта секция практически не мешает. Но все-таки интересно...

Bronco пишет:
//Вообще с утилей RCI,намного легче стало реверсить криптор.


Утилита RSI - очень неплохая для работы. За эту утилиту - ему большой респект.

Bronco пишет:
На последних версиях криптора,хайдить обязательно,пока только HideToolz-ом.


Кстати, при распаковке PrevedSMS, с использованием доработки Olly от Hacnho, можно HideToolz не использовать. В доработанном коде отладчика уже предусотрено скрытие Olly. Но HideToolz не помешает.
А настройку плагинов bronco проделал замечательную. Ему за это - большой респект.



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 01 октября 2007 10:16
· Личное сообщение · #20

MilitaryMan пишет:
Господа, ничего не могу поделать вот с этой прогой: --> Link <--
пытался использовать и туторы разные, но успехов не добился. Может кто помочь в ломке ее, родной?

ога, у меня тоже не получается заставить работать дамп. данные такие:
OEP=00436483
IAT_STAR=0044C000
IAT_END=0044C378

треды сыпятся кучей. пытался в треды писать retn, а в WFSO 0 пихать. один хер вылетает.




Ранг: 110.8 (ветеран), 104thx
Активность: 0.090.01
Статус: Участник

Создано: 01 октября 2007 18:55 · Поправил: Rainbow
· Личное сообщение · #21

kioresk пишет:
RSI,

http://www.dandan.us/Tools/dir=PACK/Protectors/EXECryptor/ http://www.dandan.us/Tools/dir=PACK/Protectors/EXECryptor/

— EXECryptor 1.5.3
— EXECryptor 2.0.34
— EXECryptor 2.1.1
— EXECryptor 2.1.4
— EXECryptor 2.1.6
— EXECryptor 2.1.9
— EXECryptor 2.1.15
— EXECryptor 2.1.17
— EXECryptor 2.1.20
— EXECryptor 2.1.21
— EXECryptor 2.2.5.1
— EXECryptor 2.2.6.Cr
— EXECryptor 2.2.6
— EXECryptor 2.3.0
— EXECryptor 2.3.4
— EXECryptor 2.3.7
— EXECryptor 2.3.9
— EXECryptor 2.4.rc1.b2


А ключика от версии 2.3.9 у тебя нигде не завалялось?



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 01 октября 2007 20:39
· Личное сообщение · #22

Rainbow пишет:
А ключика от версии 2.3.9 у тебя нигде не завалялось?

ключики тока у реганых юзерах, а на паблике тока 2.2.6...




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 02 октября 2007 01:26
· Личное сообщение · #23

Rainbow пишет:
— EXECryptor 2.3.9


Демку ломали, а полной небыло




Ранг: 110.8 (ветеран), 104thx
Активность: 0.090.01
Статус: Участник

Создано: 02 октября 2007 03:04
· Личное сообщение · #24

sniperZ пишет:
ключики тока у реганых юзерах, а на паблике тока 2.2.6...


Хм... Я так понял ты про ту что в разделе файлов тут лежит?. Я его когда-то качал и он у меня с ошибкой вылетал когда протектить нажимал... Ща попробую ещё разок слить, только мне кажется всё это безрезультатно... Поэтому посвежей версию попростл.



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 02 октября 2007 09:50
· Личное сообщение · #25

Rainbow пишет:
Я его когда-то качал и он у меня с ошибкой вылетал когда протектить нажимал...

лол, заходишь help->enter registration code, вводишь имя и код из txt файла, нажимаешь ок, перезапускаешь и все работаед...




Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 02 октября 2007 14:01
· Личное сообщение · #26

Мля...где этот гадёнышь триал пишет?//PrevedSMS
Хз знает когда заливал прогу,но у мну оригинал перестал в Винде запускаться,а пропатченный утилей, пишет
-[272]Обнаружен отладчик....и т.д.
//TrashReg видать не все ключи реестра находит.

-----
Чтобы юзер в нэте не делал,его всё равно жалко..





Ранг: 66.5 (постоянный)
Активность: 0.030
Статус: Участник
Повелитель ЗЛА

Создано: 02 октября 2007 14:03
· Личное сообщение · #27

Bronco пишет:
//TrashReg видать не все ключи реестра находит.

попробуйте Trial-Reset.




Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 02 октября 2007 14:07
· Личное сообщение · #28

ev1l_4
пробовал,облобмс тот же....
//хорошо что успел заломать...

-----
Чтобы юзер в нэте не делал,его всё равно жалко..




Ранг: 196.0 (ветеран), 72thx
Активность: 0.140.02
Статус: Участник

Создано: 02 октября 2007 16:05
· Личное сообщение · #29

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




Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

Создано: 02 октября 2007 20:25
· Личное сообщение · #30

Bronco
Djeck

А вы не думали что, не криптор ключик создал, а может и файлик.



Ранг: -52.7 (нарушитель)
Активность: 0.010
Статус: Участник

Создано: 02 октября 2007 21:36
· Личное сообщение · #31

Вы что не знали что он создает неудаляемые скрытые ключи в реестре?Что то не помню что бы их удалял
Trial-Reset.


<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 25 . 26 . >>
 eXeL@B —› Протекторы —› EXECryptor (Туторы, скрипты, плагины, ...)
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати