Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Разбор дизассемблированного кода

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Mytilus Galloprovincialis



Зарегистрирован: 30.08.2005
Сообщения: 358
Откуда: откуда все люди родятся

СообщениеДобавлено: Вт Окт 02 2012 20:56    Заголовок сообщения: Разбор дизассемблированного кода Ответить с цитатой

Всем привет!
Разбираю дизассемблированный проект, писавшийся на VC++. А конкретно - функцию WndProc. Вот ее начало:
Код:
hWnd = dword ptr 8
Msg = dword ptr 0Ch
wParam = dword ptr 10h
lParam = dword ptr 14h

01   push ebp
02   mov ebp, esp
03   sub esp, 14h
04   mov eax, [ebp+Msg]
05   mov [ebp-0Ch], eax
06   cmp [ebp-0Ch], 84h
07   ja short loc_77E876
08   cmp [ebp-0Ch], 84h
09   jz loc_77E9B4
10   mov ecx, [ebp-0Ch]
11   sub ecx, 2
12   mov [ebp-0Ch], ecx
13   cmp [ebp-0Ch], 45h
14   ja loc_77EAE4
...


Не получается вникнуть в логику. Как я понимаю, в пятой строке значение Msg попадает в ebp-0Ch. Дальше, логично было бы предположить, должен пойти "switch case", но на деле вижу такое сравнение (строки 6, 7): Msg > WM_NCHITTEST. Строки 8-9, очевидно, разбираются с Msg == WM_NCHITTEST. Но зачем дальше из [ebp-0Ch] вычитается 2 и проверяется "результат > 45h"? Как подобное могло выглядеть в сишном исходнике?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...