Сейчас на форуме: zds, -Sanchez- (+9 невидимых)

 eXeL@B —› Протекторы —› ASProtect 2.0x - что еще за Х?
. 1 . 2 . >>
Посл.ответ Сообщение

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

Создано: 06 января 2006 15:27
· Личное сообщение · #1

Доброго времени суток!

Решил я тут, наконец, доломаться до истины. В общем, понадобилось мне распаковать прогу, защищенную сабжем. Написал свой скрипт для восстановления CALL 00FA0000 - с этим у меня проблем не возникло - все восстановилось полностью. Но прога все равно падает. Там помимо CALL 00FA0000 есть еще JMP 00DE0000 и т.д. Вопрос: как восстанавливать эти джампы???

-----
MicroSoft? Is it some kind of a toilet paper?




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

Создано: 06 января 2006 15:57
· Личное сообщение · #2

http://www.exelab.ru/art/asimprec.php
По аспру статей море! Еще в RAR-cтатьи загляни!



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

Создано: 06 января 2006 16:28
· Личное сообщение · #3

pavka
Я же написал, что проблема в восстановлении джампов, а не call'ов - т.е. это нигде не описано в статьях.

-----
MicroSoft? Is it some kind of a toilet paper?




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

Создано: 06 января 2006 17:57
· Личное сообщение · #4

А что по этому адрессу? Посмотри! так трудно сказать ! гадать только!



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

Создано: 06 января 2006 18:26
· Личное сообщение · #5

Вот, смотри:

004076DC - E9 1F898C00 JMP 00CD0000

00CD0000 68 F205CD00 PUSH 0CD05F2
00CD0005 E8 F6FF0B00 CALL 00D90000
00CD000A C1CF 0B ROR EDI, 0B
00CD000D 037C24 38 ADD EDI, DWORD PTR SS:[ESP+38]
00CD0011 FF35 BC414700 PUSH DWORD PTR DS:[4741BC] ; kernel32.ExitProcess
00CD0017 8D7C07 AC LEA EDI, DWORD PTR DS:[EDI+EAX-54]
00CD001B 50 PUSH EAX
00CD001C 51 PUSH ECX
00CD001D B8 DCC73A44 MOV EAX, 443AC7DC
00CD0022 87C8 XCHG EAX, ECX
00CD0024 C1C1 F2 ROL ECX, 0F2 ; Shift constant out of range 1..31
00CD0027 81F1 EB10B1E4 XOR ECX, E4B110EB
00CD002D F7D9 NEG ECX
00CD002F 87C1 XCHG ECX, EAX
00CD0031 C1C0 0A ROL EAX, 0A
00CD0034 2BF8 SUB EDI, EAX
00CD0036 59 POP ECX
00CD0037 58 POP EAX
00CD0038 5F POP EDI
00CD0039 E9 4C000000 JMP 00CD008A
00CD003E C2 0400 RETN 4
00CD0041 84DB TEST BL, BL
00CD0043 0F94C1 SETE CL
00CD0046 E9 C5010000 JMP 00CD0210
00CD004B 8B9424 10020000 MOV EDX, DWORD PTR SS:[ESP+210]
00CD0052 FF7424 18 PUSH DWORD PTR SS:[ESP+18]
00CD0056 66:9C PUSHFW
00CD0058 52 PUSH EDX
00CD0059 BA 86134400 MOV EDX, 441386
00CD005E 035424 38 ADD EDX, DWORD PTR SS:[ESP+38]
00CD0062 8BD4 MOV EDX, ESP
00CD0064 8D540A 06 LEA EDX, DWORD PTR DS:[EDX+ECX+6]


-----
MicroSoft? Is it some kind of a toilet paper?





Ранг: 332.0 (мудрец)
Активность: 0.180
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 06 января 2006 23:15
· Личное сообщение · #6

Tim пишет:
помимо CALL 00FA0000 есть еще JMP 00DE0000 и т.д.

дык VM наверно ;)



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

Создано: 06 января 2006 23:34
· Личное сообщение · #7

дык и как восстанавливать??? =)

-----
MicroSoft? Is it some kind of a toilet paper?





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

Создано: 07 января 2006 01:30
· Личное сообщение · #8

Tim
1 вариант,пошагово ручками.Паралельно обе трасируешь,и дамп и прогу.
2.Буфером копируешь в свободное место или в новую секцию, а там не много поправить.

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




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

Создано: 07 января 2006 04:50
· Личное сообщение · #9

Bronco
Первый вариант - ИМХО лучше, т.к. можно сделать следующее. Когда прыгаем по такому джампу, мы оказываемся в выделенной памяти, затем ставим бряк на секцию кода, и смотрим куда приземлились. Можно даже это автоматизировать, но вот беда - OllyScript, насколько я знаю, не может ставить бряк на секцию кода. Или я не прав? Скажите, что я не прав!!!

-----
MicroSoft? Is it some kind of a toilet paper?





Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 07 января 2006 06:57
· Личное сообщение · #10

Ты не прав. Читай мануалу по OllyScript, (readme.txt).

-----
Yann Tiersen best and do not fuck




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

Создано: 07 января 2006 07:19
· Личное сообщение · #11

Bronco пишет:
1 вариант,пошагово ручками.Паралельно обе трасируешь,и дамп и прогу.

Ничего не получилось. Видимо, это действительно VM... =(

Буду испытывать второй вариант.

Вот те "больные" джампы:

0004076DC JMP 000CD0000 приземляется на 00407B40
00040F794 JMP 000CE0000 приземляется на 0040F8E0
000410346 JMP 000CF0000 приземляется на 0041B4D0
00041074D JMP 000D00000 приземляется на 00422D50
0004108AE JMP 000D10000 приземляется на 00414930
000411792 JMP 000D20000 приземляется на 004671E0
000411F16 JMP 000D30000 приземляется на 00413480
000419372 JMP 000D40000 приземляется на 0041D2C0
00041A090 JMP 000D50000 х.з. =)
00041B10D JMP 000D60000 приземляется на 0041ADEF
00041DA5D JMP 000D70000 приземляется на 0041DE20


Простое исправление джампов - не катит.

-----
MicroSoft? Is it some kind of a toilet paper?




Ранг: 136.5 (ветеран)
Активность: 0.030
Статус: Участник

Создано: 07 января 2006 11:13
· Личное сообщение · #12

Tim пишет:
Вот те "больные" джампы:
0004076DC JMP 000CD0000 приземляется на 00407B40

Чего-то их мало. Может не все нашел? И все расположены в одной секции? И почему исправление ничего не дает? Call-ы я правил (правда скриптом) и все проходило. И у тебя д.б. то же самое.




Ранг: 332.0 (мудрец)
Активность: 0.180
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 07 января 2006 15:36
· Личное сообщение · #13

tar4 пишет:
И почему исправление ничего не дает?

а что оно должно давать ? =) судя по виду переходов - это использование аспрового UserBuffer, тоесть куски кода изменены (метаморф + исполнение некоторых команд на VM) и перекинуты в код протетора... иначе говоря "JMP aspr" вовсе не означает эмуляцию команды jmp, там может немаленький кусок кода быть ;)



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

Создано: 08 января 2006 04:47
· Личное сообщение · #14

Mario555 пишет:
там может немаленький кусок кода быть

Так и есть. Мало того, придется вырезать эти секции (от CD0000 до D70000 + еще некоторые) и добавлять на тот же RVA в дампе. Буду писать прогу, которая мне в этом поможет.

-----
MicroSoft? Is it some kind of a toilet paper?




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

Создано: 08 января 2006 11:39
· Личное сообщение · #15

Tim
Эти джампы и полиморфный код дальше - кусок runtime функций, который аспр выкусил из проги.



Ранг: 120.2 (ветеран), 8thx
Активность: 0.120
Статус: Участник

Создано: 08 января 2006 21:59
· Личное сообщение · #16

TimСоветую почитать статью, правда на английском. ZOoMIK в свое время нашел.http://www.exelab.ru/f/files/ba33_Aspro_SKE_211_IAT.rar. По-моему, там твой случай.



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

Создано: 09 января 2006 21:27 · Поправил: Tim
· Личное сообщение · #17

Уррр-а-а-а!!!!!!!!!!!!!!!
У меня все-таки получилось!!! Сейчас вот сижу, слушаю музычку под виртуальной 98-ой! Абсолютная победа, в левом углу ринга лежит побежденный ASS, в 10 раунде победу одержала сила Реверсинга.

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

Спасибо всем, кто помог, а главное тем, кто не помог!

-----
MicroSoft? Is it some kind of a toilet paper?





Ранг: 116.7 (ветеран)
Активность: 0.10
Статус: Участник

Создано: 09 января 2006 21:35
· Личное сообщение · #18

Tim пишет:
Сейчас вот думаю выложить свой скрипт для Аспра и дампер

Выкладывай творенье, внеси свой вклад в историю реверсинга! Может кому и понадобится при распаковке.



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

Создано: 09 января 2006 22:12
· Личное сообщение · #19

ОК. Прошло совсем немного времени и я обнаружил мерзкую падлянку в подопытной программе. Она не использовала API ASProtect'а, поэтому не отломалась автоматически после распаковки. Жаль. Придется разбираться. Если есть желание поковырять, то вот ссылка на прогу:
awaud92.zip http://timqwerty.narod.ru/awaud92.zip

а вот распакованный exe'шник:
unpacked.7z http://timqwerty.narod.ru/unpacked.7z

P.S. По поводу скрипта и дампера. Я хочу подробно все в них описать, чтобы было понятно. Поэтому мне нужно немного времени. Как доделаю - сразу поделюсь.

-----
MicroSoft? Is it some kind of a toilet paper?




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

Создано: 09 января 2006 22:36
· Личное сообщение · #20

Вот скрипт.

bb5f_ASProtect+2.0x.osc.zip

-----
MicroSoft? Is it some kind of a toilet paper?




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

Создано: 09 января 2006 22:37
· Личное сообщение · #21

Повтор.

fbc8_ASProtect_2.0x.osc.zip

-----
MicroSoft? Is it some kind of a toilet paper?




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

Создано: 10 января 2006 12:19
· Личное сообщение · #22

По поводу скрипта и дампера
А что за дампер такой модный?



Ранг: 136.5 (ветеран)
Активность: 0.030
Статус: Участник

Создано: 11 января 2006 05:20 · Поправил: tar4
· Личное сообщение · #23

Tim пишет:
вот ссылка на прогу: awaud92.zip

Я посмотрел эту прогу и ни нашел там никакой ВМ. Скрипт описывает только восстановление импорта. И еще. Как я заметил по другим прогам, вход в ВМ "идет" из аллокированной аспром области, а не из секции кода.



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

Создано: 11 января 2006 07:46
· Личное сообщение · #24

tar4 пишет:
и ни нашел там никакой ВМ


Если скрипт от sanniassin::REVENGE Crew радостно сообщает что OEP found! OEP stolen. и находится по адресу 023DA8DC, то это и есть пресловутая ВМ аспра? Если да, и это правильная OEP, то как поставить на нее бряк?
Если в оле ставлю бряк Memory on accsess на этот арес, то при прохождении исключений прога валится с ошибкой при загрузке MSCTF.dll



Ранг: 136.5 (ветеран)
Активность: 0.030
Статус: Участник

Создано: 11 января 2006 08:42
· Личное сообщение · #25

Angelex пишет:
радостно сообщает что OEP found!

Я вообщем не пользовался этим скриптом, поэтому прокомментировать это не могу. С моей точки зрения,
ОЕР здесь находится просто, методика его нахождения описывалась в форуме не раз.
Вкратце: Проходишь последнее исключение и бряк на секцию кода - попадаешь на ОЕР (0465A38 push EBP, далее mov ebp,esp,push -1 и т.д.). Стандартное начало. И не было у меня никаких ошибок с загрузкой MSCTF.dll



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

Создано: 11 января 2006 09:32
· Личное сообщение · #26

tar4 пишет:
И не было у меня никаких ошибок с загрузкой MSCTF.dll

Я извиняюсь - говорю о другой программе. Вот и хотелось узнать - ВМ это или нет. Да и методики забора ВМ что то не нашёл нормальной на русском языке да еще и под ольку... Наверное сильно много хочу



Ранг: 31.0 (посетитель), 1thx
Активность: 0.040
Статус: Участник

Создано: 11 января 2006 10:36
· Личное сообщение · #27

Angelex пишет:
Если скрипт от sanniassin::REVENGE Crew

А где ты его взял? я ж вроде не выкладывал его нигде )



Ранг: 136.5 (ветеран)
Активность: 0.030
Статус: Участник

Создано: 11 января 2006 10:57
· Личное сообщение · #28

Angelex пишет:
говорю о другой программе.

Разве мы говорим не о awaud92.zip?
Angelex пишет:
методики забора ВМ

Наверное, методика "обхода" ВМ? Так ее, по-моему, и нет. Фрагменты по распаковке проги, использующей протектор с ВМ, есть в некоторых топиках этого форума.
Но я повторюсь, я не нашел в awaud92 наличие ВМ. Есть аспр2, но ВМ нет. Правда, я только дошел
по ОЕР и немного протрассировал прогу.



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

Создано: 11 января 2006 11:09
· Личное сообщение · #29

tar4
Хорошо, сделай поиск бинарной строки: 19E9. Ну как?

-----
MicroSoft? Is it some kind of a toilet paper?




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

Создано: 11 января 2006 11:23
· Личное сообщение · #30

sanniassin пишет:
я ж вроде не выкладывал его нигде

Где взял не помню но если нашел, значит он либо "уплыл" либо мы не про тот скрипт говорим, который ты не выкладывал. Я про OEP finder by sanniassin::REVENGE Crew Но я бы на него посмотрел с удовольствием, тем более если он поможет мне с ВМ
sanniassin, прокоментируй всеже если не сложно - это ВМ, если твой скрипт говорит о столен ОЕП?
tar4 пишет:
Разве мы говорим не о awaud92.zip

Просто я не хочу плодить топиков - поэтому спросил здесь. Сорри если не в тему.
tar4 пишет:
Наверное, методика "обхода" ВМ?

Может быть и так. Не суть важно название, как способ решения проблемы...


. 1 . 2 . >>
 eXeL@B —› Протекторы —› ASProtect 2.0x - что еще за Х?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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