Исследование защиты программы AbsoluteTelnet
Скриншот программы AbsoluteTelnet
AbsoluteTelnet от Celestial Software - мощный Telnet, SSH и SFTP-клиент. Позволяет устанавливать соединения по SSH1 и SSH2, эмулирует терминалы VT52, VT100, VT220, VT320, XTERM, QNX, ANSI и SCO-ANSI, поддерживает большое количество алгоритмов шифрования и передачу файлов. Настройки отдельных соединений можно сохранять в файлы, и потом подключаться через них. Интерфейс программы выполнен в виде закладок, поэтому можно работать с несколькими серверами одновременно. Есть, конечно, и бесплатные альтернативы, типа PuTTY, но в некоторых случаях мне удавалось соединиться с удаленными серверами только через AbsoluteTelnet. Так что иметь такую программу в арсенале будет очень полезно, и желательно бесплатно.
Качаем дистрибутив, устанавливаем. Сразу после запуска появляется окно с предложением зарегистрировать программу или получить пробную лицензию на 30 дней.
Окно регистрации программы
Ни тот, ни другой вариант нас не устраивает. Лицензий, оказывается, тоже несколько видов: профессиональная и облегченная с урезанным функционалом. В любом случае, без какой-нибудь лицензии программа работать не будет. Поищем это диалоговое окно в ресурсах исполняемого файла AbsoluteTelnet.exe, попутно загрузив его на анализ в дизассемблер.
Диалоговое окно найдено в ресурсах
Диалоговое окно найдено, идентификатор ресурса 158, или 9Eh в шестнадцатеричной системе. К этому времени как раз закончит работу дизассемблер, и можно поискать в листинге все, что так или иначе связано с этим числом. Сигнатур найдется всего две: первая где-то в инструкции, а вторая в интересной процедуре:
Code (Assembler) : Убрать нумерацию
- .text:00496DF0 sub_496DF0 proc near
- ; CODE XREF: WinMain(x,x,x,x)+C93
- ; sub_46E280+65
- .text:00496DF0
- .text:00496DF0 var_10 = dword ptr -10h
- .text:00496DF0 var_C = dword ptr -0Ch
- .text:00496DF0 var_4 = dword ptr -4
- .text:00496DF0 arg_0 = byte ptr 4
- .text:00496DF0
- .text:00496DF0 push 0FFFFFFFFh
- .text:00496DF2 push offset loc_541E02
- .text:00496DF7 mov eax, large fs:0
- .text:00496DFD push eax
- .text:00496DFE push ecx
- .text:00496DFF push ebx
- .text:00496E00 push ebp
- .text:00496E01 push edi
- .text:00496E02 mov eax, dword_64A5F8
- .text:00496E07 xor eax, esp
- .text:00496E09 push eax
- .text:00496E0A lea eax, [esp+20h+var_C]
- .text:00496E0E mov large fs:0, eax
- .text:00496E14 mov eax, dword_65B97C
- .text:00496E19 push eax
- .text:00496E1A push esi
- ; Вот здесь используется число 158 (9Eh)
- .text:00496E1B mov ecx, 9Eh
- .text:00496E20 mov [esp+28h+var_10], esi
- .text:00496E24 call sub_41FA70
- .text:00496E29 xor edi, edi
- .text:00496E2B mov [esp+20h+var_4], edi
- .text:00496E2F mov dword ptr [esi], offset off_600B6C
- .text:00496E35 mov ebx, 1
- .text:00496E3A mov ebp, offset off_5F278C
- .text:00496E3F lea ecx, [esi+50h]
- .text:00496E42 mov [esi+3Ch], edi
- .text:00496E45 mov [esi+38h], edi
- ...
Code (Assembler) : Убрать нумерацию
- .text:0045F04C mov ecx, offset dword_66FD68
- .text:0045F051 call edx
- .text:0045F053 mov esi, eax
- ; Вызвать какую-то процедуру какой-то проверки
- .text:0045F055 call sub_46D1C0
- .text:0045F05A add esp, 4
- ; Если она вернула AL!=0, то окно регистрации открывать не надо
- .text:0045F05D test al, al
- .text:0045F05F jnz short loc_45F0B8
- .text:0045F061 mov eax, dword_66FD68
- .text:0045F066 mov edx, [eax+0Ch]
- .text:0045F069 mov ecx, offset dword_66FD68
- .text:0045F06E call edx
- .text:0045F070 mov ecx, eax ; Source
- .text:0045F072 lea edi, [esp+1698h+var_15C8]
- .text:0045F079 call sub_4745C0
- .text:0045F07E sub esp, 28h
- .text:0045F081 mov esi, edi
- .text:0045F083 mov edi, esp
- .text:0045F085 mov ecx, 0Ah
- .text:0045F08A rep movsd
- .text:0045F08C lea esi, [esp+16C0h+var_1598]
- ; Открыть окно с предложением зарегистрироваться
- .text:0045F093 call sub_496DF0
- .text:0045F098 mov ecx, esi
- .text:0045F09A call sub_4958C0
- .text:0045F09F test eax, eax
- .text:0045F0A1 jnz short loc_45F0AB
- .text:0045F0A3 push 1 ; Code
- .text:0045F0A5 call ds:exit
- .text:0045F0AB ; ------------------------------------------------
- .text:0045F0AB loc_45F0AB:
- .text:0045F0AB lea eax, [esp+1698h+var_1598]
- .text:0045F0B2 push eax
- .text:0045F0B3 call sub_45F3D0
Code (Assembler) : Убрать нумерацию
- .text:0046D1C0 sub_46D1C0 proc near
- .text:0046D1C0 var_390 = byte ptr -390h
- .text:0046D1C0 var_368 = byte ptr -368h
- .text:0046D1C0 var_4 = dword ptr -4
- .text:0046D1C0 arg_0 = byte ptr 4
- .text:0046D1C0
- ; Заменить первые команды процедуры на MOV AL,1; RET
- .text:0046D1C0 sub esp, 390h
- .text:0046D1C6 mov eax, dword_64A5F8
- .text:0046D1CB xor eax, esp
- .text:0046D1CD mov [esp+390h+var_4], eax
- .text:0046D1D4 cmp [esp+390h+arg_0], 0
- .text:0046D1DC push ebx
- .text:0046D1DD push edi
- .text:0046D1DE jnz short loc_46D1E9
- .text:0046D1E0 cmp byte_6702E4, 0
- .text:0046D1E7 jnz short loc_46D231
- .text:0046D1E9 loc_46D1E9:
- .text:0046D1E9 lea eax, [esp+398h+var_368]
- .text:0046D1ED push eax
- .text:0046D1EE call sub_46C220
- .text:0046D1F3 mov ecx, esi ; Source
- .text:0046D1F5 lea edi, [esp+398h+var_390]
- .text:0046D1F9 mov byte_6702E4, 1
- .text:0046D200 call sub_4745C0
- .text:0046D205 mov ecx, edi
- .text:0046D207 lea ebx, [esp+398h+var_368]
- .text:0046D20B call sub_46B520
- .text:0046D210 test al, al
- .text:0046D212 setnz al
- ; Установить флаг зарегистрированности
- .text:0046D215 mov byte_670B34, al
- .text:0046D21A pop edi
- .text:0046D21B pop ebx
- .text:0046D21C mov ecx, [esp+390h+var_4]
- .text:0046D223 xor ecx, esp
- .text:0046D225 call sub_51D219
- .text:0046D22A add esp, 390h
- .text:0046D230 retn
- .text:0046D231 ; --------------------------------------------------
- .text:0046D231 loc_46D231:
- .text:0046D231 mov ecx, [esp+398h+var_4]
- .text:0046D238 mov al, byte_670B34
- .text:0046D23D pop edi
- .text:0046D23E pop ebx
- .text:0046D23F xor ecx, esp
- .text:0046D241 call sub_51D219
- .text:0046D246 add esp, 390h
- .text:0046D24C retn
- .text:0046D24C sub_46D1C0 endp
Просмотров: 7598 | Комментариев: 16
Метки: исследование защиты
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(11.08.2012 в 16:59):
IDA, HiEW, OllyDbg, голова, руки. В большинстве случаев этого вполне достаточно.
Женя
(11.08.2012 в 10:34):
Мастер! Обзор Ваших инструментов осветите.
Eugeny
(03.01.2011 в 17:09):
Я повторить не смог за целую ночь, видать руки кривые, инструменты тупые
или смертным это не дано...
или смертным это не дано...
ManHunter
(21.12.2010 в 07:37):
Это ситуации не меняет, здесь готового вареза никогда не будет.
Alexey
(21.12.2010 в 00:38):
Знал, что не спишь, еще знаком с тобой с региона59...
Ладно, на руборде народ отзывчевее....
Ладно, на руборде народ отзывчевее....
ManHunter
(21.12.2010 в 00:31):
Ну точно не здесь. Гуглояндексы в помощь.
Alexey
(21.12.2010 в 00:17):
Столько хорошего... а где простым смертным скачать уже вскрытую програмку то? И не только эту хочется (
-=bigcatwar=-
(06.09.2010 в 18:11):
ai da molodca ManHunter :)
user
(25.03.2010 в 12:43):
))) NoKG. А всё же спасибо.
ManHunter
(24.03.2010 в 17:47):
eXeScope - это дело привычки, не более.
Rustamer
(24.03.2010 в 15:30):
ManHunter объясни, почему ты предпочитаешь eXeScope? Это религиозные убеждения или у него есть какие-то преимущества по сравнению с аналогами? Напиши как-нибудь обзорчик хороших редакторов ресурсов. Вообще интересно было бы почитать какие ты инструменты для реверсинга предпочитаешь. Наверняка что-нибудь новое встречу :).
По статьям абсолютно согласен - нужны именно такие простые статьи на простеньких программах. С одной стороны можно на крякмисах учится, но тут все таки реальные программы, хоть удовольствие новички будут получать от небольшого успеха. Только про ИДУ имхо лучше не стоит - сложновато все-таки.
А за прожку спасибо. Не видел чего-то такую. Приглянулась, хотя PuTTY святое.
По статьям абсолютно согласен - нужны именно такие простые статьи на простеньких программах. С одной стороны можно на крякмисах учится, но тут все таки реальные программы, хоть удовольствие новички будут получать от небольшого успеха. Только про ИДУ имхо лучше не стоит - сложновато все-таки.
А за прожку спасибо. Не видел чего-то такую. Приглянулась, хотя PuTTY святое.
НашОтветЧемберлену
(24.03.2010 в 01:08):
Если кого обидел извините, не хотел. Борюсь за право новичков получать материал в доступной и понятной форме. ManHunter твои "статейки" мне кажутся очень полезным материалом для новичков, а если будут такие сложные труды, как на других сайтах и блогах, то это уже будет не гуд. Понятное дело, что есть те кто уже готов справиться со сложными задачами, но лично я ценю этот блог, за доступность и простоту излагаемого материала.
ManHunter
(23.03.2010 в 23:22):
Ну еще только ругани мне тут не хватало.
AyTkACT, у меня ж больше тысячи релизов, я на старом сайте по несколько штук каждый день выкладывал. Так что есть из чего выбрать :))
AyTkACT, у меня ж больше тысячи релизов, я на старом сайте по несколько штук каждый день выкладывал. Так что есть из чего выбрать :))
НашОтветЧемберлену
(23.03.2010 в 22:07):
ManHunter, делает правильное дело, его статьи лишний раз поучиться, как работать на Тёмной стороне силы. И я благодарен ему за его творчество, сколько разных статей перечитано, но такого грамотного и хорошо оформленного подхода ещё не было. Зачитываюсь. Так что не стоит в чужой монастырь со своим Руководством идти. Не нравиться идите дальше, блогов море, а полезное не трожь!
ManHunter продолжай, ждем новых творений. Кстати, а вы могли бы немного про ИДА расписать, как и чего ею работать?
ManHunter продолжай, ждем новых творений. Кстати, а вы могли бы немного про ИДА расписать, как и чего ею работать?
AyTkACT
(23.03.2010 в 19:32):
Меня всё терзает вопрос: где ты откапываешь такой софт?
Куда не плюнь везде с защитой навесной, или вот Vit Registry Fix 10, который как раз сейчас попался под руку, вроде б UPX и всё, но не всё так просто, плюс к тому P-Code VB.
Противно и даже копать не хочется.
Куда не плюнь везде с защитой навесной, или вот Vit Registry Fix 10, который как раз сейчас попался под руку, вроде б UPX и всё, но не всё так просто, плюс к тому P-Code VB.
Противно и даже копать не хочется.
Добавить комментарий
Заполните форму для добавления комментария
А с последней версией программы такое тоже работает?