In IDA, I see a value called dword_1C0203AB4 which doesn't have a symbol name. I want to view the value in system. My windbg is connected to the system and the driver files in system and IDA is the same. My approach is to calculate the offset and add it to the base memory.
start
.text:00000001C0001000 _text segment para public 'CODE' use64
.text:00000001C0001000 assume cs:_text
.text:00000001C0001000 ;org 1C0001000h
.text:00000001C0001000 assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
.text:00000001C0001000 db 8 dup(0CCh)
.text:00000001C0001008
.text:00000001C0001008 ; =============== S U B R O U T I N E =======================================
.text:00000001C0001008
.text:00000001C0001008
.text:00000001C0001008 ; __int64 __fastcall TcpNotifyBacklogChangeSend(PKSPIN_LOCK SpinLock)
.text:00000001C0001008 TcpNotifyBacklogChangeSend proc near ; CODE XREF: TcpNotifyTcbDelay+337↓p
.text:00000001C0001008 ; DATA XREF: .pdata:ExceptionDir↓o
...
...
.data:00000001C0203AB4 dword_1C0203AB4 dd 0FFFFh ; DATA XREF: CTcpQueryTimeStamp+6↑r
.data:00000001C0203AB4 ; CTcpQueryTimeStamp+51↑w ...
.data:00000001C0203AB8 icmpPingLowWaterMark dd 1F4h ; DATA XREF: IppInspectLocalDatagramsIn+5FED5↑r
.data:00000001C0203ABC EQoSpPolicyAppMarkingSetting dd 0FFFFFFFEh
.data:00000001C0203ABC ; DATA XREF: EQoSUpdateAppMarkingSetting+A↑r
.data:00000001C0203ABC ; EQoSProcessGlobalSettings+35↓r ...
.data:00000001C0203AC0 EQoSpPolicyTcpAutoTuningSetting dd 0FFFFFFFFh
So the offset should be 202AB4
kd> lm m tcpip
start end module name
fffff803'6b750000 fffff803'6ba6a000 tcpip (pdb symbols)
However, the value is not what I want(0xFFFF) and the initial address function in IDA and windbg is not the same
kd> u fffff8036b750000
tcpip! WFPDatagramDataShimV4 <PERF> (tcpip+0x0):
fffff803`6b750000 4d5a pop r10
What's the correct approach to calculate the address value dword_1C0203AB4?
? tcpip.sys+$offset
idaapi.inf_get_min_ea() - idc.get_screen_ea()
IDAPython (6.x):idaapi.get_inf_structure().minEA - idc.ScreenEA()