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

 [email protected] —› Протекторы —› ASProtect 1.22-1.23 Beta 21
. 1 . 2 . 3 . 4 . >>
Посл.ответ Сообщение


Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 13 апреля 2005 00:01
· Личное сообщение · #1

Доброго всем времени суток!
Недавно решил попробовать распаковать ASProtect,обчитался уже всяких статей,но так и не выходит...
Значит цель - Advanced Registry Tracer 2.01 http://www.elcomsoft.com/download/art.zip
Размер - 778240 байт
Пытаясь найти OEP,пробую делать так:
в SoftIce останавливаюсь на EP(00401000),далее bpx MapViewOfFile,точка останова срабатывает,удаляю её,bpx GetProcAddress,и программа вместо того,чтобы прерваться на GetProcAddress,просто стартует.Вопрос как такое может быть?
Пытался также делать следующее:
останавливаюсь в SoftIce на EP,набираю bpm esp-4,далее F5,оказываюсь тут:
PUSHAD
CALL 0062A00A
JMP 45BFA4F7
PUSH EBP
RET
...
...если нажать F5 ещё раз - запустится программа,а что делать в этом куске кода - ума не приложу,т.к. в распаковке я ещё совсем зелёный .

Очень надеюсь на какие-нибудь советы,разъяснения с вашей стороны,господа.

-----
the Power of Reversing team





Ранг: 420.3 (мудрец)
Активность: 0.240
Статус: Участник

Создано: 13 апреля 2005 00:35
· Личное сообщение · #2

DillerInc пишет:
в распаковке я ещё совсем зелёный

А в определении размера дистриба
DillerInc пишет:
Размер - 778240 байт
а там - 1,7 Мб (по твоей ссылке).
Стыдно, товарищ, стыдно...
Еще не скачал, но DillerInc пишет:
PUSH EBP
RET
возможно EBP - адрес ОЕР.

Но, пока не скачаю, точно не скажу...

-----
Сколько ни наталкивали на мысль – все равно сумел увернуться




Ранг: 56.9 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 13 апреля 2005 00:54
· Личное сообщение · #3

Если не получится распаковать возьми распакованный и упакованный UPX (для распаковки upx1.25.exe -d art.exe) по ссылке : hxxp://webfile.ru/256685



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

Создано: 13 апреля 2005 12:13
· Личное сообщение · #4

После остановки на EP нажми пару раз F8, и ты как раз выйдешь на ентот PUSHAD
esp-4 - надо ставить када ты его уже прошел....т.к. тебе надо POPAD




Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 13 апреля 2005 16:55
· Личное сообщение · #5

ValdiS
Насчёт размера чего-то я действительно лоханулся - вместо размера архива указал размер исполняемого файла .
Ruller
crEL
...попробуем.

-----
the Power of Reversing team





Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 13 апреля 2005 21:41
· Личное сообщение · #6

В общем,если,как предлагает crEL,трассировать(F8) после EP,пройти таким образом PUSHAD и зайти в процедуру CALL 0062A00A,а затем ввести bpm esp-4,то программа прервётся чуть ниже:
PUSH DWORD PTR [EBP+0000091D]
JMP 0062A057
...
Если посмотреть,что содержится в [EBP+0000091D],то оказывается - ... GetProcAddress,GetModuleHandleA,LoadLibraryA ...
...может именно поэтому я не могу отловить вызов функции GetProcAddress?
Одним словом,что дальше-то делать?

Ruller
Качается по твоей ссылке уж больно медленно...

-----
the Power of Reversing team




Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 14 апреля 2005 20:09
· Личное сообщение · #7

DillerInc
Делай так:
Тормози на EP, далее по F10 до
PUSHAD
CALL 0062A00A ;тут тормозни и bpm esp-04
JMP 45BFA4F7
PUSH EBP
RET

19 раз жми F5, попадешь сюда
:00EC4CC1 5D POP EBP
........... ;немного кода и перед REt'ом увидишь спертые байты
55 PUSH EBP
8BEC MOV EBP, ESP
83C4F4 ADD ESP, -0C
B854F85200 MOV EAX, 0052E854
Дальше выходишь по RET и попадешь сюда:
:00EC4661 60 PUSHAD
:00EC4662 9C PUSHFD
:00EC4663 FC CLD
:00EC4664 BF7746EC00 MOV EDI, 00EC4677
:00EC4669 B953010000 MOV ECX, 00000153
:00EC466E F3AA REPZ STOSB
:00EC4670 9D POPFD
:00EC4671 61 POPAD
:00EC4672 E940B566FF JMP 0052FBB7 <= типа OEP
Импорт легко импреком
ЗЫ. а после bpx MapViewOfFile у меня нормально тормозит на GetProcAddress




Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 14 апреля 2005 22:41
· Личное сообщение · #8

crc1
Благодарю за участие!
Действительно удалось пройти к OEP,как ты подсказал,вот только "импорт легко" у меня не получается "легко" .
В общем,программу зациклил на команде JMP 0052FBB7,снял дамп.Затем загружаю в ImpRec,ну и появляется масса всего,нажимаю Auto Trace - что-то появляется,но львиная доля этих указателей остаётся недоступной.
Не мог бы ты подробно описать твои действия в данном случае?

-----
the Power of Reversing team




Ранг: 384.1 (мудрец)
Активность: 0.250
Статус: Участник
www.int3.net

Создано: 15 апреля 2005 08:21
· Личное сообщение · #9

DillerInc
hice.antosha.ru/asprotect.rar

-----
Подписи - ЗЛО! Нужно убирать!




Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 15 апреля 2005 10:25
· Личное сообщение · #10

DillerInc

Тормозни на MapViewOfFile, потом на GetProcAddress (если у тебя все же не получается
тормознуться на GetProcAddress, тогда ставь bpx 00EB2319, но это выход только для
данной проги ) Попадешь сюда
:00EB2319 MOV[EBP-08], EAX
два раза F12, будешь тут
:00EB2688 CALL 00EB22E0
:00EB268D CALL 00EB251C => будешь тут (Этот CALL занопить)
:00EB2692 MOV EDX, [EDI] => в EDX начало таблицы импорта (005A11B8)
ну а дальше отличная статья от -= ALEX =- http://www.exelab.ru/art/arc4.php
или у HEX'а http://www.exelab.ru/art/hex_asprtime.php
При восстановлении импорта ипользуй плугин для импрека ASProtect 1.22.dll
Еще попробуй примочку AsprDbgr_build_106.exe



7db7_IAT.rar




Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 15 апреля 2005 18:04
· Личное сообщение · #11

crc1
...кстати,у тебя случайно не стоит какого-нибудь IceExt или ещё чего?А то у меня просто ни в какую не хочет останавливаться на функции GetProcAddress(ни на имени функции,ни на её адресе) .
А так,принцип данной распаковки я уже более или менее понял,за что всем огромное спасибо!

-----
the Power of Reversing team




Ранг: 56.9 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 15 апреля 2005 22:09
· Личное сообщение · #12

А может не останавливается из за того,что нужный *.nms файл не подгружен.




Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 15 апреля 2005 22:59
· Личное сообщение · #13

Ruller
Например какой?
Вроде kernel32.nms у меня должен подгружаться...

-----
the Power of Reversing team





Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 16 апреля 2005 18:48 · Поправил: DillerInc
· Личное сообщение · #14

Атас!
После длительных боёв со всеми reverse-недоразумениями мне всё-таки удалось прижжучить эту функцию GetProcAddress(помог IceExt,с которым и велись основные бои ).Вооружившись статьёй от -=ALEX=-,я прошёл тот путь до того самого POPAD,где зациклил программу и снял дамп.
Теперь вопрос:
в той статье предлагается запускать в ImpRec всё ещё зацикленную программу -> так необходимо делать всегда при работе с ASProtect либо только тогда,когда неизвестен OEP(как в данном случае в этой статье)?Ну,или можно просто запустить саму программу и её подгрузить в ImpRec?

Далее вопрос к уважаемому crc1:
кстати,небольшая поправочка:
crc1 пишет:
00EB2319

...по-моему,по адресу 00EC2319 .
Ближе к делу,я просмотрел твой IAT.txt,где обнаружил следующие данные:
OEP - 0012FBAC
IATRVA - 001A11B4
IATSize - 000008C0
...а как же OEP(0012FBB7),указанный выше?Или IATRVA(001A11B8)[начало таблицы импорта],опять-таки указанный выше?


-----
the Power of Reversing team





Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 16 апреля 2005 19:46
· Личное сообщение · #15

crc1
Беру последний вопрос обратно - дочитал наконец-то статью от -=ALEX=- .

-----
the Power of Reversing team





Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 17 апреля 2005 19:25
· Личное сообщение · #16

crc1
В общем,наконец-то я её распаковал .
Но всё-таки почему у тебя IATRVA = 001A11B4,а не 001A11B8 - значение,которое узнаётся в отладчике как начало таблицы импорта?И как ты получил IATSize = 000008C0?
Дело в том,что сначала я решил сам поковырять импорт - восстановил все функции,в окошке OEP было 0012FBAC,в RVA 001A11B8,a в Size 00004000,далее восстановил спёртые байты,проверил EP,но распакованная программа отказывалась запускаться,вываливаясь с ошибкой.Когда же я подгрузил в ImpRec твоё "дерево" и сделал всё оставшееся,то программа без проблем запустилась .

-----
the Power of Reversing team




Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 18 апреля 2005 11:36
· Личное сообщение · #17

DillerInc
IATRVA = 001A11B4 это из-за разделителя(я так думаю:s5, т.е. адрес первой ф-ии (GetCurrentThreadId) - 001A11B8 минус разделитель (4 байта) = 001A11B4, адрес последней ф-ии (CloseServiceHandle) - 001A1A6C плюс 4 байта (длина адреса) плюс разделитель (4 байта) = 001A1A74. 001A1A74 минус 001A11B4 = 000008C0. Это импрек так пишет, но реально начало первой ф-ии - :001A11B8
Я при восстановлении в импреке OEP оставил какой есть - 1000h, Size поставил 1500h, RVA - 001A11B8 Восстановил все ф-ии, потом лишнее отрезал и привинтил к дампу.
Ты наверное какую-то ф-ию неверно определил, потому и не запускается (сравни свое "дерево" и мое)
DillerInc пишет:
-> так необходимо делать всегда при работе с ASProtect либо только тогда,когда неизвестен OEP(как в данном случае в этой статье)?Ну,или можно просто запустить саму программу и её подгрузить в ImpRec?

Зная адрес начала IAT мона и так и эдак, НО, зациклившись на POPAD, и предварительно занопив :00EB268D CALL 00EB251C (в случае ART 2.01) по адресу :00EB268D где происходит перенаправление вызовов АПИ, во-первых ты получишь относительно чистый импорт(цитирую -= ALEX =-'а), во-вторых когда в импреке не восстановятся несколько ф-ий(штук 6), ты записав их адреса, не отходя от кассы жмешь ctrl-D, попадаешь в отладчик и смотришь, какие ф-ии эмулируються по этим адресам.
Потом восстанавливаешь правленые байты и шлепаешь до OEP, попутно глянув на спертый код.
Короче, сплошная экономия времени
Если адреса IAT не знаешь, тогда цикли на OEP и в импреке пиши реальный OEP проги, а начало IAT импрек сам определит
Во блин понаписал...
ЗЫ. Для тренировки попробуй прогу Kassy 0.3 h++p://www.stampz.ru/kassy/index.html, там тоже простой
АСПР




Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 18 апреля 2005 22:43
· Личное сообщение · #18

crc1
Ну,что...продолжим тему ...
Последовав твоему совету начал исследование программы Kassy 0.3d :
значит с импортом проблем вроде бы не возникло(файл "дерева" приложил в аттаче),но вот с OEP я тут совсем запутался.Сделать аналогично предыдущему варианту не удаётся,программа походу написана не на Delphi,следовательно стартовый код вероятно немного отличается,и такое чувство,что он(спёртые байты)находится не в одном месте,а раскидан по этому аспровскому мусорному коду.
В общем,бедлам какой-то у меня с этим OEP .
Не мог бы ты что-нибудь присоветовать,прояснить ситуацию?

P.S. Кстати,тот OEP в "дереве" неправильный - это мне PEiD такой предложил.

3779_kassy03d_IAT.txt

-----
the Power of Reversing team




Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 19 апреля 2005 12:27
· Личное сообщение · #19

DillerInc
DillerInc пишет:
программа походу написана не на Delphi

Именно походу на делфях, поэтому стыренные инструкции будут такими же
push ebp
mov ebp, esp
add esp, -XX
mov eax, XXXXXXXX
А разница в том, что это разные версии АСПРА и выход к OEP другой.
Ты прав, эти инструкции спрятаны в мусорном коде, их надо найти (подскажу, значение,
которое передается в EAX, на OEP будет лежать в регистре EBX)
До OEP двигайся так: вствай на EP, BPM ESP-04, два раза F5, попадешь акурат
в мусорный код, дальше по F8 до перврго PUSH EBP(первая краденая команда), двумя инструкциями ниже увидишь две остальные, дальше пили до RET (здесь запиши
значение EBX), потом еще один RET
и выйдешь в код проги на JMP [xxxxxxxx], прыгай и попадешь опять в код АСПРА,
из него по F10 до RET, попадешь в код проги, выходи из этой процедуры и
окажешься почти на OEP

ADD [EAX], AL
ADD [EAX], AL
ADD [EAX], AL
CALL XXXXXXXX
MOV EBX, [XXXXXXXX] => тут окажешься
Выше, вместо нулей нужно крад. байтики
привинтить, ну и OEP поправить соответственно
Короче все как у Alex'а, только mov eax, XXXXXXXX немного по другому




Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 19 апреля 2005 20:00
· Личное сообщение · #20

crc1
Получилось походу так:

OEP = 00097F4D

PUSH EBP
MOV EBP, ESP
ADD ESP, -10
MOV EAX, 00497D34
...
Иными словами,выражаю огромную благодарность за помощь и советы!

P.S. Да вот ещё,имеется ли какая-то разница в написании третьей команды(ADD ESP, -10 или SUB ESP, 10)относительно работоспособности получаемой распакованной программы?Обе ведь вроде бы в таком виде занимают по 3 байта...

-----
the Power of Reversing team





Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 22 апреля 2005 18:58
· Личное сообщение · #21

Господа,снова всех приветствую!
Значит,дело вот в чём - хотелось бы почитать какие-нибудь статьи по распаковке ASProtect 1.2x - 1.3x [Registered].Кто-то рекомендует в данном случае читать статьи nice'a или Bit-hack'а,но там рассматривается использование отладчика OllyDebugger,а хотелось бы использовать SoftIce.Говорят,на reversing.net есть статья Mario555,но то ли сайта уже такого нет то ли не знаю...
В общем,было бы здорово,если бы кто-нибудь дал какую-нибудь ссылку по этой теме или просто посоветовал что-нибудь.

-----
the Power of Reversing team




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

Создано: 22 апреля 2005 22:20
· Личное сообщение · #22

DillerInc

Не надо ничего искать читать. Нужно сесть и самому пройти пару раз. Очень много интересного для себя откроешь...




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

Создано: 23 апреля 2005 14:38
· Личное сообщение · #23

DillerInc пишет:
Говорят,на reversing.net есть статья Mario555

гон




Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 25 апреля 2005 13:55
· Личное сообщение · #24

Ладно,отложим пока в сторону всякие там [Registered],а вместо этого дело такое:
решил я поковыряться во всем известном ASPack 2.12,т.к. он согласно PEiD'у тоже запакован ASProtect 1.22-1.23 Beta 21.Импорт восстановился без проблем,далее OEP кажись нашёл по адресу 0044289С...

...
POPAD
JMP EAX // EAX = 0044289C
...

Причём OEP походу настоящий,т.к. там сразу идут такие команды:

PUSH EBP
MOV EBP,ESP
ADD ESP, -0C
CALL
CALL
...

В чём собственно загвоздка - где же команда MOV EAX, XXXXXXXX,присутствует ли она тут вообще и где найти то значение,передаваемое в регистр EAX?Правильно ли я вообще всё сделал?

-----
the Power of Reversing team




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

Создано: 28 апреля 2005 11:21
· Личное сообщение · #25

Народ, а не поможете ли распаковать вот это http://www.color-wheel-pro.com/downloads/color-wheel-pro.exe упакован ASProtect 1.23 RC4 Registered
буду благодарен
[email protected]




Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 29 апреля 2005 15:28 · Поправил: DillerInc
· Личное сообщение · #26

aL MIR
Для начала это будет выглядеть примерно так:
импорт восстанавливается без особых проблем ImpRec'ом.
Далее,чтобы найти OEP,я делал так,используя SoftIce:
останавливаюсь на точке входа,чуть-чуть трассирую F10 до следующего места...
PUSHAD
CALL 005E700A <- стоим тут,ставим точку останова bpm esp-4
JMP XXXXXXXX
...жмём F5 19 раз...и оказываемся тут...
POP EBP
SUB EBP,004B0123
....
Это мусорный код,весьма "оживлённый".Трассируем его с помощью F8.Насколько я понимаю,в этом коде разбросаны спёртые команды.По крайней мере три из них можно точно определить,трассируя этот мусор и наткнувшись через небольшое время на команду...
PUSH EBP // двумя командами ниже видим две другие команды
...
...
MOV EBP,ESP
SUB ESP,00000014
Теперь я затрудняюсь ответить - есть ли там ещё какие-то спёртые команды и надеюсь,что кто-нибудь из знатоков прояснит ситуацию.
Однако далее.
Рубим этот мусор до команды ret и смотрим,что находится в регистре EBX - (004C4E94) - это значение возможно используется в спёртой команде...
MOV EAX,XXXXXXXX
Значит выходим по ret и попадаем сюда:
PUSHAD
PUSHFD
...
трассируем это с помощью F10,выходим по ret и тут же прыгаем дальше по команде
JMP [XXXXXXXX]
Попадаем в код ASProtect -> ret -> небольшой код программы -> ret -> ...и оказываемся тут...
CALL 00406A78
XOR EAX,EAX <- тут
Я так понимаю,здесь рядом должен быть OEP.Выше команды CALL имеются нули,но...их чего-то больно уж много ,поэтому тут я взываю к остальным участникам форума,чтобы разрешить эту ситуацию с непонятным количеством спёртых байт.

1893_cwpro_IAT.txt

-----
the Power of Reversing team





Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 02 мая 2005 14:06
· Личное сообщение · #27

Ну,народ,влом что ли посмотреть текущий предмет разговора и помочь разобраться?

-----
the Power of Reversing team





Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 02 мая 2005 23:31
· Личное сообщение · #28

DillerInc
Ты скажи конкретно, что ты хочешь. А то сперва одну прогу распаковывал, потом аспак, хз что еще - топик большой, весь читать лень.




Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 02 мая 2005 23:47
· Личное сообщение · #29

Ara
Ara пишет:
Ты скажи конкретно, что ты хочешь

...ради бога...
Давайте начнём с ASPack'а,в моём посте выше причина загвоздки вроде ясно определена.

-----
the Power of Reversing team





Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 03 мая 2005 00:02
· Личное сообщение · #30

DillerInc пишет:
Давайте начнём с ASPack'а,в моём посте выше причина загвоздки вроде ясно определена.

В твоем посте выше описывается распаковка непонятной проги в ответ на еще вышестоящий пост.
А по твоему посту:DillerInc пишет:
В чём собственно загвоздка - где же команда MOV EAX, XXXXXXXX,присутствует ли она тут вообще и где найти то значение,передаваемое в регистр EAX?Правильно ли я вообще всё сделал?

Ты вообще про какую команду? У тебя чистое ОЕР, никаких спертых байт, с импотром все ОК (судя по посту), так что еще нужно?


. 1 . 2 . 3 . 4 . >>
 [email protected] —› Протекторы —› ASProtect 1.22-1.23 Beta 21
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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