ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > Реверсинг
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Реверс оконного приложения
  #1  
Старый 01.03.2010, 04:24
VERte][
Moderator - Level 7
Регистрация: 17.05.2007
Сообщений: 220
Провел на форуме:
3013539

Репутация: 441
По умолчанию Реверс оконного приложения

У меня появилось задание - реверснуть вредоносное приложение. Но я столкнулся с проблемой так как не прошарен таких вещах. Вообщем есть процедура обработки сообщений, в ней 3 ветки: WM_DESTROY, WM_CREATE, WM_TIMER
c WM_DESTROY все понятно, в WM_CREATE проверяется версия винды, вызывается функция запускающая какое-то левое приложение, и устанавливается таймер, в WM_TIMER приложение соединяется с каким-то хостом, добавляет в реестр новый ключ для какого-то приложения. Вся загвоздка в том, что у меня отладчик вылавливает только ветку WM_TIMER, минуя ветку, где таймер устанавливается. И вообще после CreateWindow отладчик вылетает на процедуре обработки сообщений, минуя цикл обработки. Соответсвенно 2 вопроса - как-так может быть, что минуется цикл обработки, и каким образом мы попадаем на ветку WM_TIMER минуя ветку установки таймера WM_CREATE?

если кому совсем интересно то приложение я взял здесь http://vx.netlux.org/vl.php?dir=Trojan-Spy.Win32.Small там взял Trojan-Spy.Win32.Small.i
 
Ответить с цитированием

  #2  
Старый 01.03.2010, 13:43
fluffylion
Познающий
Регистрация: 22.02.2010
Сообщений: 30
Провел на форуме:
188597

Репутация: 15
По умолчанию

Посмотрел файлик, скорее всего это происходит из-за того, что трой хукает обработку сообщений (с помощью функции SetWindowsHookExA):

Код:
seg025:00401584 push    0
seg025:00401586 push    hCurModule
seg025:0040158C push    offset GetMsgProc
seg025:00401591 push    0
seg025:00401593 call    sub_401ACE
 
Ответить с цитированием

  #3  
Старый 01.03.2010, 20:23
VERte][
Moderator - Level 7
Регистрация: 17.05.2007
Сообщений: 220
Провел на форуме:
3013539

Репутация: 441
По умолчанию

Цитата:
Сообщение от fluffylion  
Посмотрел файлик, скорее всего это происходит из-за того, что трой хукает обработку сообщений (с помощью функции SetWindowsHookExA):

Код:
seg025:00401584 push    0
seg025:00401586 push    hCurModule
seg025:0040158C push    offset GetMsgProc
seg025:00401591 push    0
seg025:00401593 call    sub_401ACE
ты видимо не тот файлик посмотрел, у меня такого нету
 
Ответить с цитированием

  #4  
Старый 01.03.2010, 20:49
0x0c0de
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме:
4226446

Репутация: 1564
Отправить сообщение для 0x0c0de с помощью ICQ
По умолчанию

У меня нормально попадает на

Код:
 
004011CF  |.  68 8C324000   PUSH 40328C                              ; /String2 = "WinNT"
004011D4  |.  68 8E374000   PUSH 40378E                              ; |String1 = Trojan-S.0040378E
004011D9  |.  E8 F8020000   CALL 004014D6                            ; \lstrcpyA
004011DE  |>  E8 5D010000   CALL 00401340                            ;  Trojan-S.00401340
004011E3  |.  6A 00         PUSH 0                                   ; /Timerproc = NULL
004011E5  |.  FF35 D7304000 PUSH DWORD PTR DS:[4030D7]               ; |Timeout = 30000. ms
004011EB  |.  68 32270000   PUSH 2732                                ; |TimerID = 2732 (10034.)
004011F0  |.  FF75 08       PUSH DWORD PTR SS:[EBP+8]                ; |hWnd
004011F3  |.  E8 A8020000   CALL 004014A0                            ; \SetTimer
004011F8  |.  A3 A8324000   MOV DWORD PTR DS:[4032A8],EAX
004011FD  |.  E9 AB000000   JMP 004012AD                             ;  Trojan-S.004012AD
Дебажу олькой...
 
Ответить с цитированием

  #5  
Старый 01.03.2010, 20:58
fluffylion
Познающий
Регистрация: 22.02.2010
Сообщений: 30
Провел на форуме:
188597

Репутация: 15
По умолчанию

Цитата:
Сообщение от VERte][  
ты видимо не тот файлик посмотрел, у меня такого нету
Хех. точно)))
я смотрел Trojan-Spy.Win32.Small.a, щас i посмотрю
 
Ответить с цитированием

  #6  
Старый 01.03.2010, 21:12
VERte][
Moderator - Level 7
Регистрация: 17.05.2007
Сообщений: 220
Провел на форуме:
3013539

Репутация: 441
По умолчанию

Цитата:
Сообщение от 0x0c0de  
У меня нормально попадает на

Код:
 
004011CF  |.  68 8C324000   PUSH 40328C                              ; /String2 = "WinNT"
004011D4  |.  68 8E374000   PUSH 40378E                              ; |String1 = Trojan-S.0040378E
004011D9  |.  E8 F8020000   CALL 004014D6                            ; \lstrcpyA
004011DE  |>  E8 5D010000   CALL 00401340                            ;  Trojan-S.00401340
004011E3  |.  6A 00         PUSH 0                                   ; /Timerproc = NULL
004011E5  |.  FF35 D7304000 PUSH DWORD PTR DS:[4030D7]               ; |Timeout = 30000. ms
004011EB  |.  68 32270000   PUSH 2732                                ; |TimerID = 2732 (10034.)
004011F0  |.  FF75 08       PUSH DWORD PTR SS:[EBP+8]                ; |hWnd
004011F3  |.  E8 A8020000   CALL 004014A0                            ; \SetTimer
004011F8  |.  A3 A8324000   MOV DWORD PTR DS:[4032A8],EAX
004011FD  |.  E9 AB000000   JMP 004012AD                             ;  Trojan-S.004012AD
Дебажу олькой...
дебажу так же олькой, не брякает ни на обычном бряке на сеттаймер например, ни когда после входа в CreateWindow ставлю бряк на всю секцию кода на доступ, вылезает сразу на функции обработки и заходит только в ветку WM_TIMER =(

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

зы. Олька совсем не патченная

Последний раз редактировалось VERte][; 01.03.2010 в 21:25..
 
Ответить с цитированием

  #7  
Старый 01.03.2010, 21:28
0x0c0de
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме:
4226446

Репутация: 1564
Отправить сообщение для 0x0c0de с помощью ICQ
По умолчанию

>> при вызове CreateWindow приложению должно посылаться сообщение WM_CREATE

да

Здесь брякнись и трейси до SetTimer ...

Код:
0040117C  |.  C785 6CFFFFFF >MOV DWORD PTR SS:[EBP-94],94
00401186  |.  8D85 6CFFFFFF  LEA EAX,DWORD PTR SS:[EBP-94]
0040118C  |.  50             PUSH EAX                                 ; /pVersionInformation
0040118D  |.  E8 32030000    CALL 004014C4                            ; \GetVersionExA
00401192  |.  83BD 7CFFFFFF >CMP DWORD PTR SS:[EBP-84],0
00401199  |.  75 11          JNZ SHORT 004011AC                       ;  Trojan-S.004011AC
0040119B  |.  68 85324000    PUSH 403285                              ; /String2 = "Win32s"
004011A0  |.  68 8E374000    PUSH 40378E                              ; |String1 = Trojan-S.0040378E
PS Тут не надо патчить ольку...
 
Ответить с цитированием

  #8  
Старый 01.03.2010, 21:30
VERte][
Moderator - Level 7
Регистрация: 17.05.2007
Сообщений: 220
Провел на форуме:
3013539

Репутация: 441
По умолчанию

Цитата:
Сообщение от 0x0c0de  
>> при вызове CreateWindow приложению должно посылаться сообщение WM_CREATE

да

Здесь брякнись и трейси до SetTimer ...

Код:
0040117C  |.  C785 6CFFFFFF >MOV DWORD PTR SS:[EBP-94],94
00401186  |.  8D85 6CFFFFFF  LEA EAX,DWORD PTR SS:[EBP-94]
0040118C  |.  50             PUSH EAX                                 ; /pVersionInformation
0040118D  |.  E8 32030000    CALL 004014C4                            ; \GetVersionExA
00401192  |.  83BD 7CFFFFFF >CMP DWORD PTR SS:[EBP-84],0
00401199  |.  75 11          JNZ SHORT 004011AC                       ;  Trojan-S.004011AC
0040119B  |.  68 85324000    PUSH 403285                              ; /String2 = "Win32s"
004011A0  |.  68 8E374000    PUSH 40378E                              ; |String1 = Trojan-S.0040378E
PS Тут не надо патчить ольку...
брякуюсь там где ты сказала, и на cmp msg, WM_TIMER, вылетает только на cmp. Я в замешательстве

Запускаю на вынь хр, под виртуальной машиной vmware, права администраторские, если это может иметь отношение
 
Ответить с цитированием

  #9  
Старый 01.03.2010, 21:33
fluffylion
Познающий
Регистрация: 22.02.2010
Сообщений: 30
Провел на форуме:
188597

Репутация: 15
По умолчанию

Перед WM_CREATE окну посылается еще несколько сообщений

Вот код WNdProc
Код:
text:00401149 ; =============== S U B R O U T I N E =======================================
.text:00401149
.text:00401149 ; Attributes: bp-based frame
.text:00401149
.text:00401149 ; int __stdcall sub_401149(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
.text:00401149 sub_401149 proc near                    ; DATA XREF: sub_401080+14o
.text:00401149
.text:00401149 VersionInformation= _OSVERSIONINFOA ptr -94h
.text:00401149 hWnd= dword ptr  8
.text:00401149 Msg= dword ptr  0Ch
.text:00401149 wParam= dword ptr  10h
.text:00401149 lParam= dword ptr  14h
.text:00401149
.text:00401149 push    ebp
.text:0040114A mov     ebp, esp
.text:0040114C add     esp, 0FFFFFF6Ch
.text:00401152 cmp     [ebp+Msg], 2
.text:00401156 jnz     short loc_401172
Сообщение лежит в стеке
Вот здесь
Код:
text:00401152 cmp     [ebp+Msg], 2
проверяется какое сообщение поступило окну


дебажу в IDA, бряк ставлю на начало окнонной процедуры (.text:00401149), все работает
 
Ответить с цитированием

  #10  
Старый 01.03.2010, 21:38
0x0c0de
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме:
4226446

Репутация: 1564
Отправить сообщение для 0x0c0de с помощью ICQ
По умолчанию

>> Запускаю на вынь хр, под виртуальной машиной vmware, права администраторские, если это может иметь отношение

У меня тоже варя, вин xp sp2 и непропатченная олли...

Не понимаю, почему может WM_CREATE не работать, оно должно=\ Ось-то чистая (в смысле софт какой нелигитимный не обитает)?

http://msdn.microsoft.com/en-us/library/ms632619(VS.85).aspx
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование графических приложения для Linux. Kerny Авторские статьи 1 11.03.2010 11:38
Продаю приложения для ВК ZnikiR Покупка, продажа, услуги в Соц. Сетях 11 01.10.2009 22:42
Введение в Symfony Framework gibson Авторские статьи 1 30.04.2009 11:15



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ