powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / AV в команде call qword ptr [rel NNN]
18 сообщений из 18, страница 1 из 1
AV в команде call qword ptr [rel NNN]
    #39683291
Aniskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Столкнулся с тем, что в x64 приложении (не моем) стало возникать загадочное AV. Предположительно моя dll (плагин к не моему приложению) является причиной. Радует то, что AV всегда возникает в одном и том же месте. Дебагер показывает, что AV происходит на строке call qword ptr [rel 0006ed57]. Предполагаю, что 0006ed57 - это какое нибудь смещение в какой нибудь таблица экспорта, а моя dll портит эту таблицу. В момент AV в стеке вызовов моей dll нет. Собственно вопрос к знатокам ассемблера - что такое rel 0006ed57, как мне рассчитать адрес в памяти, где лежит реальный адрес, который будет использоваться для вызова подпрограммы. И можно ли поставить в Delphi breakpoint на изменение памяти?
...
Рейтинг: 0 / 0
AV в команде call qword ptr [rel NNN]
    #39683292
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://www.gunsmoker.ru/2018/05/random-crashes.html

Почитай, возможно, это как раз твой случай.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
AV в команде call qword ptr [rel NNN]
    #39683294
Aniskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovПочитай, возможно, это как раз твой случай.Спасибо, я это читал, случай мой, но мне нужно понять, что именно я порчу, что бы искать место, где я это порчу. Собственно вопрос именно об определении того, что я порчу.
...
Рейтинг: 0 / 0
AV в команде call qword ptr [rel NNN]
    #39683297
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aniskin,

рекомендую включить range check, buffer overflow для начала. также можно воспользоваться EurekaLog с включенным расширенным менеджером памяти.
...
Рейтинг: 0 / 0
AV в команде call qword ptr [rel NNN]
    #39683299
Aniskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
makhaonрекомендуюСделал это еще до написания поста.
...
Рейтинг: 0 / 0
AV в команде call qword ptr [rel NNN]
    #39683301
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aniskinмне нужно понять, что именно я порчу, что бы искать место, где я это порчу

Это в статье тоже написано.

Можешь также воспользоваться DrMemory.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
AV в команде call qword ptr [rel NNN]
    #39683302
Aniskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovЭто в статье тоже написано.

(Меня несколько удивляют подобные ответы.) Статья, безусловно, очень хорошая, но метод исследования не применим к моей ситуации.

Я задал лишь один вопрос - что такое rel 0006ed57, как мне рассчитать адрес в памяти, где лежит реальный адрес, который будет использоваться для вызова подпрограммы. Это все, что мне нужно знать на данном этапе.
...
Рейтинг: 0 / 0
AV в команде call qword ptr [rel NNN]
    #39683303
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AniskinЯ задал лишь один вопрос - что такое rel 0006ed57, как мне рассчитать адрес в памяти, где
лежит реальный адрес, который будет использоваться для вызова подпрограммы. Это все, что
мне нужно знать на данном этапе.

Боже ж ты мой... Какой широтой знания надо обладать, чтобы предположить, что "rel" это
сокращение от "relative" и нагуглить, что указанное смещение прибавляется к адресу
инструкции, следующей за call?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
AV в команде call qword ptr [rel NNN]
    #39683305
Aniskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov"rel" это сокращение от "relative"До этого я догадался, спасибо за подтверждение.
Dimitry Sibiryakovнагуглить,Гуглил по запросу "call qword ptr rel", не нашел. Если ткнешь в конкретную ссылку, скажу спасибо.
Dimitry Sibiryakovчто указанное смещение прибавляется к адресу инструкции, следующей за callСпасибо за пояснение, вот этого я и ждал, а не пространных комментариев.
...
Рейтинг: 0 / 0
AV в команде call qword ptr [rel NNN]
    #39683307
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AniskinГуглил по запросу "call qword ptr rel", не нашел.

Чтобы естественный интеллект победил искусственный надо гуглить asm call "rel"
именно так, с кавычками. Первая ссылка.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
AV в команде call qword ptr [rel NNN]
    #39683331
Aniskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мое предположение оказалось не верным, содержимое памяти rel 0006ed57 не портится. Исключение возникает в user32.dll где то внутри функции UserCallWinProcCheckWow. Стек выглядит так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 	0000000009170fd8()	Unknown
>	user32.dll!UserCallWinProcCheckWow()	Unknown
 	user32.dll!DispatchMessageWorker()	Unknown
 	windows.storage.dll!CShellTaskScheduler::_TT_MsgWaitForMultipleObjects()	Unknown
 	windows.storage.dll!CShellTaskScheduler::TT_TransitionThreadToRunningOrTerminating()	Unknown
 	windows.storage.dll!CShellTaskThread::ThreadProc()	Unknown
 	windows.storage.dll!CShellTaskThread::s_ThreadProc()	Unknown
 	SHCore.dll!ExecuteWorkItemThreadProc()	Unknown
 	ntdll.dll!RtlpTpWorkCallback()	Unknown
 	ntdll.dll!TppWorkerThread()	Unknown
 	kernel32.dll!BaseThreadInitThunk()	Unknown
 	ntdll.dll!RtlUserThreadStart()	Unknown

Сразу после загрузки моей dll в DebugOutput есть следующее:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
'explorer.exe' (Win32): Loaded 'C:\Windows\System32\comdlg32.dll'. Symbols loaded.
'explorer.exe' (Win32): Loaded 'C:\Windows\System32\winspool.drv'. Symbols loaded.
'explorer.exe' (Win32): Loaded 'C:\Windows\System32\winspool.drv'. Symbols loaded.
'explorer.exe' (Win32): Unloaded 'C:\Windows\System32\winspool.drv'
Exception thrown at 0x00007FFE6FAFA388 (KernelBase.dll) in explorer.exe: 0x0EEDFADE (parameters: 0x000000001870D02E, 0x00000000169C4930, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000).
'explorer.exe' (Win32): Loaded 'C:\Windows\System32\UIRibbon.dll'. Symbols loaded.
onecoreuap\shell\windows.storage\basedatadrivencommand.cpp(62)\windows.storage.dll!00007FFE6FE13AA2: (caller: 00007FFE6FEF3EB6) ReturnHr(228) tid(578) 80004001 Not implemented
onecoreuap\shell\windows.storage\basedatadrivencommand.cpp(89)\windows.storage.dll!00007FFE6FE13AEE: (caller: 00007FFE6FEF386A) ReturnHr(229) tid(578) 80004005 Unspecified error
DLL THREAD ATTACHException thrown at 0x00007FFE6FAFA388 (KernelBase.dll) in explorer.exe: 0x0EEDFADE (parameters: 0x000000001870D02E, 0x0000000013B488F0, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000).
DLL THREAD DETACHException thrown at 0x00007FFE6FAFA388 (KernelBase.dll) in explorer.exe: 0x0EEDFADE (parameters: 0x000000001870D02E, 0x0000000013C081E0, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000).
The thread 0x2920 has exited with code 0 (0x0).
onecoreuap\shell\windows.storage\homefolder.cpp(506)\windows.storage.dll!00007FFE6FF91FE2: (caller: 00007FFE6FEBB123) ReturnHr(230) tid(29f4) 80070490 Element not found.
    CallContext:[\DefView_Sort] 
onecoreuap\shell\windows.storage\regfldr.cpp(1242)\windows.storage.dll!00007FFE6FF8EA95: (caller: 00007FFE6FEB7FA8) ReturnHr(231) tid(29f4) 80070490 Element not found.
    CallContext:[\DefView_Sort] 
DLL THREAD ATTACHException thrown at 0x00007FFE6FAFA388 (KernelBase.dll) in explorer.exe: 0x0EEDFADE (parameters: 0x000000001870D02E, 0x0000000013C0AE20, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000).
shell\shell32\banners\bannersettings.h(9)\SHELL32.dll!00007FFE71EF5A04: (caller: 00007FFE71EF4F9B) LogHr(22) tid(578) 80070002 The system cannot find the file specified.
shell\shell32\banners\datamodel.cpp(979)\SHELL32.dll!00007FFE72008D9C: (caller: 00007FFE71EF54CF) LogHr(23) tid(578) 80070057 The parameter is incorrect.
shell\shell32\banners\datamodel.cpp(809)\SHELL32.dll!00007FFE71EF5C1F: (caller: 00007FFE71EF5D8C) ReturnHr(96) tid(578) 80070490 Element not found.
shell\shell32\banners\datamodel.cpp(994)\SHELL32.dll!00007FFE71EF5DA6: (caller: 00007FFE71EF54CF) ReturnHr(97) tid(578) 80070490 Element not found.
shell\shell32\syncproviderrecyclebin.cpp(92)\SHELL32.dll!00007FFE71EF4958: (caller: 00007FFE71EF4B1D) ReturnHr(98) tid(578) 80070490 Element not found.
DLL THREAD ATTACHException thrown at 0x00007FFE6FAFA388 (KernelBase.dll) in explorer.exe: 0x0EEDFADE (parameters: 0x000000001870D02E, 0x0000000013BE0840, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000).
onecoreuap\shell\windows.storage\basedatadrivencommand.cpp(89)\windows.storage.dll!00007FFE6FE13AEE: (caller: 00007FFE6FEF386A) ReturnHr(232) tid(578) 80004005 Unspecified error
Exception thrown at 0x0000000009170FD8 in explorer.exe: 0xC0000005: Access violation executing location 0x0000000009170FD8.


Поделитесь любыми, даже самыми странными идеями, из за чего такое может быть и как такое в принципе можно победить.
...
Рейтинг: 0 / 0
AV в команде call qword ptr [rel NNN]
    #39683342
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используй уже DrMemory.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
AV в команде call qword ptr [rel NNN]
    #39683452
а компот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AniskinМое предположение оказалось не верным, содержимое памяти rel 0006ed57 не портится. Исключение возникает в user32.dll где то внутри функции UserCallWinProcCheckWow. Стек выглядит так:

Код: plaintext
1.
2.
3.
 	0000000009170fd8()	Unknown
>	user32.dll!UserCallWinProcCheckWow()	Unknown
 	user32.dll!DispatchMessageWorker()	Unknown

Поделитесь любыми, даже самыми странными идеями, из за чего такое может быть

https://stackoverflow.com/questions/5138156/access-violation-exception-in-64bit-mfc-version
...
Рейтинг: 0 / 0
AV в команде call qword ptr [rel NNN]
    #39683477
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aniskin,

у меня вылетало AV, когда я в DLL работал с ActiveX и при освобождении DLL в ней не дожидался полного завершения работы этих ActiveX объектов.
...
Рейтинг: 0 / 0
AV в команде call qword ptr [rel NNN]
    #39683510
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторException thrown at 0x0000000009170FD8 in explorer.exe: 0xC0000005: Access violation executing location 0x0000000009170FD8

0000000009170fd8() Unknown
> user32.dll!UserCallWinProcCheckWow() Unknown

Судя по данным, у вас передача управления на мусор при вызове оконной процедуры. Вероятнее всего, испорчен адрес оконной процедуры.

Посмотрите, что лежит в RSP. Предположительно там будет указатель на указатель адреса возврата. Найдите этот вызов (в user32). Вероятнее всего, он будет опосредованный. Посмотрите откуда читается смещение или указатель для вызова. Посмотрите, что по этой памяти лежит. Перезапускайтесь и ставьте туды бряк на данные. Ждите, пока бряк сработает. Повторить по необходимости.
...
Рейтинг: 0 / 0
AV в команде call qword ptr [rel NNN]
    #39683512
Aniskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GunSmokerСудя по данным, у вас передача управления на мусор при вызове оконной процедуры. Вероятнее всего, испорчен адрес оконной процедуры.

Посмотрите, что лежит в RSP. Предположительно там будет указатель на указатель адреса возврата. Найдите этот вызов (в user32). Вероятнее всего, он будет опосредованный. Посмотрите откуда читается смещение или указатель для вызова. Посмотрите, что по этой памяти лежит. Перезапускайтесь и ставьте туды бряк на данные. Ждите, пока бряк сработает. Повторить по необходимости.

Спасибо за подробный алгоритм. Буду пробовать. Тут я чуть подробнее описал контекст проблемы - может быть еще какие нибудь идеи будут?
...
Рейтинг: 0 / 0
AV в команде call qword ptr [rel NNN]
    #39683992
Aniskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GunSmokerСудя по данным, у вас передача управления на мусор при вызове оконной процедуры. Вероятнее всего, испорчен адрес оконной процедуры.У вас, как я понимаю, очень большой опыт расследования подобных инцидентов. Скажите, будет ли вам интересно расследовать мой случай на коммерческой основе? Можно оттолкнутся от цен Microsoft - они берут $250 за инцидент. Или сами назовите стоимость вашего времени.
...
Рейтинг: 0 / 0
AV в команде call qword ptr [rel NNN]
    #39684201
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Могу попробовать посмотреть, к примеру, через TeamViewer. Напишите на alex eurekalog.com.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / AV в команде call qword ptr [rel NNN]
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]