2016-10-05 5 views
0

Я анализировал полный дамп памяти и я применил команду 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' 
+0

Там может быть действительно вопрос, где-то здесь, но это нечитаемым. * Интересно, почему адрес в круглых скобках * Какие круглые скобки вы имеете в виду? –

+0

Я имел в виду скобки ниже в инструкции je profsvc! CUserProfileService :: _ RegisterGPNotification + 0x44 (** 000007fe'fb155019 **). Обычно je перескакивает в profsvc! CUserProfileService :: _ RegisterGPNotification + 0x44, который не является адресом 000007fe'fb155019, почему адрес отличается от адреса перехода? Спасибо за помощь. –

+2

оптимизированная разборка не соответствует смещению, показанному в символах, линейно после того, как функции оптимизации могут быть разбиты на куски, а pdb не отражает оптимизированный адрес (windbg обычно разрешает его, даже если он не является линейным) адрес в скобках, которые называются $ ea и $ ea2 псевдо-регистры всегда будут жесткими – blabb

ответ