![]() |
|
![]() ![]() ![]() |
|
try_to_get |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 426 Регистрация: 19.3.2007 Где: Россия Репутация: нет Всего: 2 |
После директивы .code вызывается процедура ExitProcess, по идеи программа должна завершиться, и прекратить работу, но после, подключаются части кода программы и программа продолжает работать. Почему автор решил в начале завершить программу, какой смысл в этом? Или я не так понял?! |
|||
|
||||
Severyanin |
|
|||
![]() Исследователь ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 31.7.2007 Где: Россия, Омск Репутация: 1 Всего: 9 |
Скорее всего, разгадка кроется в тех модулях, которые подключаются потом. Не могли бы вы их код тоже выложить. А то интересно
![]() -------------------- "Звонким вереском скроются наши следы, и не вспомнят о них. Кто поверит нам, рыцарям павшей звезды из отвергнутых книг? Пусть в узоре времен ни стихов. ни имен, но напомнит забывшим их полуночный крик." Тэм Гринхилл "Ужели суслик твоего коварства нагадит в плов доверья моего?". Л.Филатов |
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 1 Всего: 17 |
А то, что ExitProcess расположен до метки start, ничего? На него точно управление приходит? (я вообще-то в этом не рублю)
-------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
try_to_get |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 426 Регистрация: 19.3.2007 Где: Россия Репутация: нет Всего: 2 |
Severyanin А тему не закроют?
Добавлено через 11 минут и 39 секунд Вот, вот нашел
Но все равно не понятно?! ![]() Добавлено через 13 минут и 50 секунд Кто поможет, получит плюсики. ![]() |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 1 Всего: 207 |
ну судя по цитате где-то в коде должен быть вызов ExitProcess() а т. к он (вызов) по сути нужен только фиктивно, поэтому мы помещаем его в такое место, откуда он не может быть сделан, т. е до start -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Severyanin |
|
|||
![]() Исследователь ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 31.7.2007 Где: Россия, Омск Репутация: 1 Всего: 9 |
А я думаю, что этот вызов был нужен для корректного завершения потока, вызвавшего даную программу. Сначала закрываем его, а потом - переходим на основной цикл. Я так думаю
![]() ![]() -------------------- "Звонким вереском скроются наши следы, и не вспомнят о них. Кто поверит нам, рыцарям павшей звезды из отвергнутых книг? Пусть в узоре времен ни стихов. ни имен, но напомнит забывшим их полуночный крик." Тэм Гринхилл "Ужели суслик твоего коварства нагадит в плов доверья моего?". Л.Филатов |
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 1 Всего: 17 |
По-моему, MAKCim, прав. ExitProcess'у же вроде должен быть передан хэндл процесса. А там ноль. Так что она я думаю не вызывается, а находится там фиктивно.
-------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
Severyanin |
|
|||
![]() Исследователь ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 31.7.2007 Где: Россия, Омск Репутация: 1 Всего: 9 |
Нет, это не хэндл, а признак успешного завершения. Первым аргументом ему передается код ошибки
-------------------- "Звонким вереском скроются наши следы, и не вспомнят о них. Кто поверит нам, рыцарям павшей звезды из отвергнутых книг? Пусть в узоре времен ни стихов. ни имен, но напомнит забывшим их полуночный крик." Тэм Гринхилл "Ужели суслик твоего коварства нагадит в плов доверья моего?". Л.Филатов |
|||
|
||||
try_to_get |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 426 Регистрация: 19.3.2007 Где: Россия Репутация: нет Всего: 2 |
Да, есть. Все я понял, загрузчик не мог найти правильного выхода в программе ret или тот же ExitProcess, и ExitProcess был помещен в .code, но только не понятно почему процессор не завершает программу или код работает только в метке start: .... end start А сам выход осуществляется очень интересным способом: значит в данных есть dd 0D66358ECh ; ExitProcess Таблица хешей пока точно не разбирался в этом. дальше есть переменная _ExitProcess equ dword ptr [ebp-4*12] автор не хотел давать знать что он использует kernel32? тому кто будет дизасемб. его прогу Поправите меня если я ошибся... ![]() |
|||
|
||||
Severyanin |
|
||||
![]() Исследователь ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 31.7.2007 Где: Россия, Омск Репутация: 1 Всего: 9 |
Да. Это то же самое. что main{}.
Это дамп вызова этой самой ExitProcess без ошибки. -------------------- "Звонким вереском скроются наши следы, и не вспомнят о них. Кто поверит нам, рыцарям павшей звезды из отвергнутых книг? Пусть в узоре времен ни стихов. ни имен, но напомнит забывшим их полуночный крик." Тэм Гринхилл "Ужели суслик твоего коварства нагадит в плов доверья моего?". Л.Филатов |
||||
|
|||||
try_to_get |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 426 Регистрация: 19.3.2007 Где: Россия Репутация: нет Всего: 2 |
Как и обещал
MAKCim +1 Severyanin +1 ksili +1 |
|||
|
||||
Severyanin |
|
|||
![]() Исследователь ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 31.7.2007 Где: Россия, Омск Репутация: 1 Всего: 9 |
Спасибо
![]() -------------------- "Звонким вереском скроются наши следы, и не вспомнят о них. Кто поверит нам, рыцарям павшей звезды из отвергнутых книг? Пусть в узоре времен ни стихов. ни имен, но напомнит забывшим их полуночный крик." Тэм Гринхилл "Ужели суслик твоего коварства нагадит в плов доверья моего?". Л.Филатов |
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 1 Всего: 17 |
Ух-ты! и мне чо ли?
Вот Severyanin реально заслужил -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
try_to_get |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 426 Регистрация: 19.3.2007 Где: Россия Репутация: нет Всего: 2 |
Отнять? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm: Общие вопросы" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |