Я анализировал полный дамп памяти и я применил команду Windbg uf
, чтобы увидеть, что функция делаетWindbg разрешения дизассемблера адрес
0: kd> uf profsvc!CUserProfileService::_RegisterGPNotification
Это часть продукции. Интересно, почему адрес в скобках, отличается от адреса profsvc!CUserProfileService::_RegisterGPNotification+0x44
, который должен быть
000007fe fb149276
но
000007fe fb155019
.
Когда я пытаюсь несобранном адрес 000007fe fb155019
с u
он указывает на
profsvc!CUserProfileService::_RegisterGPNotification+0x44:
Я очень озадачен, любая помощь глубоко признателен.
ВЫХОД из WinDBG
….
profsvc!CUserProfileService::_RegisterGPNotification+0x2e:
000007fe`fb14925e ba01000000 mov edx,1
000007fe`fb149263 488bc8 mov rcx,rax
000007fe`fb149266 ff157c410200 call qword ptr [profsvc!_imp_RegisterGPNotification (000007fe`fb16d3e8)]
000007fe`fb14926c 85c0 test eax,eax
000007fe`fb14926e 0f84a5bd0000 je profsvc!CUserProfileService::_RegisterGPNotification+0x44 (**000007fe`fb155019**)
profsvc!CUserProfileService::_RegisterGPNotification+0x40:
000007fe`fb149274 33db xor ebx,ebx
000007fe`fb149276 eb00 jmp profsvc!CUserProfileService::_RegisterGPNotification+0x66 (000007fe`fb149278) Branch
profsvc!CUserProfileService::_RegisterGPNotification+0x66:
000007fe`fb149278 488b0d31b00200 mov rcx,qword ptr [profsvc!WPP_GLOBAL_Control (000007fe`fb1742b0)]
000007fe`fb14927f 488d052ab00200 lea rax,[profsvc!WPP_GLOBAL_Control (000007fe`fb1742b0)]
000007fe`fb149286 483bc8 cmp rcx,rax
000007fe`fb149289 740a je profsvc!CUserProfileService::_RegisterGPNotification+0x94 (000007fe`fb149295) Branch
0: kd> u 000007fe`fb155019
profsvc!CUserProfileService::_RegisterGPNotification+0x44:
000007fe`fb155019 ?? ???
^Memory access error in 'u 000007fe`fb155019'
Там может быть действительно вопрос, где-то здесь, но это нечитаемым. * Интересно, почему адрес в круглых скобках * Какие круглые скобки вы имеете в виду? –
Я имел в виду скобки ниже в инструкции je profsvc! CUserProfileService :: _ RegisterGPNotification + 0x44 (** 000007fe'fb155019 **). Обычно je перескакивает в profsvc! CUserProfileService :: _ RegisterGPNotification + 0x44, который не является адресом 000007fe'fb155019, почему адрес отличается от адреса перехода? Спасибо за помощь. –
оптимизированная разборка не соответствует смещению, показанному в символах, линейно после того, как функции оптимизации могут быть разбиты на куски, а pdb не отражает оптимизированный адрес (windbg обычно разрешает его, даже если он не является линейным) адрес в скобках, которые называются $ ea и $ ea2 псевдо-регистры всегда будут жесткими – blabb