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

 eXeL@B —› Основной форум —› Нужен совет по регистрации HTMLanalysator из Seamonitor
Посл.ответ Сообщение

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

Создано: 21 февраля 2006 00:42
· Личное сообщение · #1

Программа запакована ASProtect 1.23 RC4, его я распоковал. Программа проверяет зарегистрирована она или нет по форме About, проверяет не красная ли надпись user (0FFh), и содержит ли она символы перевода строки и перевода каретки (0Ah, 0Dh). При загрузке формы пропатчил и загружаю имя юзера с этими символами. Ограничения программы только в том, что она не дает сохранить проект. Пишет что это демо версия. Строку я нашел, но проблема джамп идет только на эту ветку, без всяких вариантов. Вот кусок кода:

.text:00425C4F Proj_not_saved: ; CODE XREF: sub_425B00+148j
.text:00425C4F push ecx ; lpCaption
.text:00425C50 push offset aNotPagesInProj ; "Not pages in project. Project is not sa"...
.text:00425C55 mov eax, [ebp+var_70]
.text:00425C58 call @Controls@TWinControl@GetHandle$qqrv ; Controls::TWinControl::GetHandle(void)
.text:00425C5D push eax ; hWnd
.text:00425C5E call MessageBoxA
.text:00425C63 dec [ebp+var_50]
.text:00425C66 lea eax, [ebp+var_10]
.text:00425C69 mov edx, 2
.text:00425C6E call StrClr
.text:00425C73 dec [ebp+var_50]
.text:00425C76 lea eax, [ebp+var_NameSaveFile]
.text:00425C79 mov edx, 2
.text:00425C7E call StrClr
.text:00425C83 mov ecx, [ebp+var_6C]
.text:00425C86 mov large fs:0, ecx
.text:00425C8D jmp end
.text:00425C92 ; ---------------------------------------------------------------------- -----
.text:00425C92
.text:00425C92 loc_425C92: ; CODE XREF: sub_425B00+11Cj
.text:00425C92 mov eax, [ebp+var_70]
.text:00425C95 mov edx, [eax+508h] ; in eax - ASCII "#none#"
.text:00425C9B xor ecx, ecx
.text:00425C9D mov eax, [ebp+var_70]
.text:00425CA0 call sub_425990
.text:00425CA5 mov cl, 1
.text:00425CA7 mov edx, [ebp+var_NameSaveFile]
.text:00425CAA mov eax, [ebp+var_70]
.text:00425CAD call sub_425990
.text:00425CB2 jmp demo
.text:00425CB2 ; ---------------------------------------------------------------------- -----
.text:00425CB7 db 60h ; `
.text:00425CB8 db 4Ah ; J
.text:00425CB9 db 0
.text:00425CBA db 0D5h ; -
.text:00425CBB db 2Fh ; /
.text:00425CBC db 64h ; d
.text:00425CBD db 0Ch
.text:00425CBE db 0CBh ; T
.text:00425CBF db 5Ch ; \
.text:00425CC0 db 0F4h ; ¯
.text:00425CC1 db 0D2h ; T
.text:00425CC2 db 8Bh ; Ë
.text:00425CC3 db 4
.text:00425CC4 db 0D7h ; +
.text:00425CC5 db 6Bh ; k
.text:00425CC6 db 34h ; 4
.text:00425CC7 db 3Dh ; =
...
...
...
.text:00426080 db 0FFh
.text:00426081 db 0EBh ; û
.text:00426082 db 64h ; d
.text:00426083 db 0DCh ; -
.text:00426084 db 0EDh ; ý
.text:00426085 db 4Ch ; L
.text:00426086 db 0A8h
.text:00426087 db 0C8h, 67h, 10h
.text:0042608A ; ---------------------------------------------------------------------- -----
.text:0042608A
.text:0042608A demo: ; CODE XREF: sub_425B00+1B2j
.text:0042608A mov word ptr [ebp-5Ch], 0D4h
.text:00426090 mov edx, offset aSorryThisFunct ; "Sorry, this function isn't available in"...
.text:00426095 lea eax, [ebp-48h]
.text:00426098 call Str_str_point_
.text:0042609D inc dword ptr [ebp-50h]
.text:004260A0 mov eax, [eax]
.text:004260A2 call @Dialogs@ShowMessage$qqrx17System@AnsiString ; Dialogs::ShowMessage(System::AnsiString)
.text:004260A7 dec dword ptr [ebp-50h]
.text:004260AA lea eax, [ebp-48h]
.text:004260AD mov edx, 2
.text:004260B2 call StrClr
.text:004260B7 dec dword ptr [ebp-50h]
.text:004260BA lea eax, [ebp-4]
.text:004260BD mov edx, 2
.text:004260C2 call StrClr
.text:004260C7 mov ecx, [ebp-6Ch]
.text:004260CA mov large fs:0, ecx
.text:004260D1
.text:004260D1 end: ; CODE XREF: sub_425B00+109j
.text:004260D1 ; sub_425B00+18Dj
.text:004260D1 pop edi
.text:004260D2 pop esi
.text:004260D3 pop ebx
.text:004260D4 mov esp, ebp
.text:004260D6 pop ebp
.text:004260D7 retn
.text:004260D7 sub_425B00 endp

В середине идет мусор. Ставил бряки на доступ к этому мусору - не помогло. WriteProcessMemory - не используется. Новый поток не создается. У меня такое ощущение, что это зашифрованный кусок кода. Т.к. функция открытия проекта примерно похожи по размеру.
Вопрос: Как найти дешифратор функции? Или как найти ветку в коде отвечающую за сохранение проекта?




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

Создано: 21 февраля 2006 01:42
· Личное сообщение · #2

Посмотри тут:
http://www.exelab.ru/f/action=vthread&forum=1&topic=3723
Я задавал аналогичный вопрос.



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

Создано: 21 февраля 2006 02:31
· Личное сообщение · #3

Да я думаю наврядли. Из того же пакета - keywordtool - Аналогичная проверка на цвет надписи юзера, дальше перевод строки, каретки, и слово Expert, и все. Правда semtempl.dll проверяет размер файла 5 раз по-моему, если больше одного и меньше 2 мегов, то все хорошо. Это правится легко Я не стал лишние секции убирать, чтобы размер подогнать. И думал что dll общая для всего пакета программ, нет жемткой привязки к размеру файла и все программы из пакета укладываются в него. Так что, казалось очевидным, что защита построена аналогично у всех программ. Даже аспр у них старенький. Думаю может дамп немного неправильно stripper снял. Не может быть защита у программ по разному пострена быть. Хотя кто знает



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

Создано: 21 февраля 2006 03:03
· Личное сообщение · #4

Ну и перед сном вопрос.
Если ф-ия закриптована, то каким образом найти этот кусок кода, который ссылается на зашифрованные участки?




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

Создано: 21 февраля 2006 12:29
· Личное сообщение · #5

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




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

Создано: 21 февраля 2006 12:39
· Личное сообщение · #6

Mario555 пишет:
PS хотя безполезно, всё равно без ключа нерасшифровать эти куски

Про арму тож такое говорили ;)



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

Создано: 21 февраля 2006 13:12
· Личное сообщение · #7

Ладно, попробую найти ASProtect 1.23 RC4.
А никто случаем не открыл алгоритм генерации ключа в этой версии Аспра?




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

Создано: 21 февраля 2006 13:40
· Личное сообщение · #8

Ara пишет:
Про арму тож такое говорили ;)

гг, точна =) надо будет аспр в этом плане посмотреть...



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

Создано: 21 февраля 2006 13:55
· Личное сообщение · #9

Ссылочку или на мыло никто не даст на эту версию ASProtect 1.23 RC4?



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

Создано: 21 февраля 2006 15:17
· Личное сообщение · #10

Chanson пишет:
Ссылочку или на мыло никто не даст на эту версию ASProtect 1.23 RC4?


Посмотри на
pediy.com/tools/packers.htm

и тут exetools.com/protectors.htm

-----
~ the Power Of Reversing team ~




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

Создано: 21 февраля 2006 17:22
· Личное сообщение · #11

Спасибо, но на первой ссылке только версия 1.23 RC4, по второй только 1.1
RC1 запустил посмотрел, нет там функции шифровки обычных процедур. Может я чего не догоняю?
А если это не проделки аспра? Какими путями можно зашифровать часть кода? Другим потоком, исполнением в стеке кода, но ссылаться он должен на зашифрованный кусок. Если не правильный ключ, то неправильно расшифровывать. Но этот мусор не меняется. и функция расшифровки должна же быть в программе?




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

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

Chanson пишет:
нет там функции шифровки обычных процедур.

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


 eXeL@B —› Основной форум —› Нужен совет по регистрации HTMLanalysator из Seamonitor
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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