我使用windbg的#
命令来搜索WININET的dissasembly中出现的文字2f7e。这是它找到的一个:
0:000> # 2f7e 000007fefde50000+1000
[...snip...]
0:000> # 2f7e
WININET!HTTP_REQUEST_HANDLE_OBJECT::HttpSendRequest_Finish+0x151:
000007fe`fdf0e54d 41be7e2f0000 mov r14d,2F7Eh
因此指令的地址是000007fe`fdf0e54d。但是当我使用符号+ offset设置断点时,我得到一个不同的断点地址(参见断点1):
0:002> bp WININET!HTTP_REQUEST_HANDLE_OBJECT::HttpSendRequest_Finish+0x151
0:002> bl
0 e 00000001`3f920124 0001 (0001) 0:**** foo!bar
1 e 000007fe`fde70ef1 0001 (0001) 0:**** WININET!HTTP_REQUEST_HANDLE_OBJECT::HttpSendRequest_Start+0x744
因此,断点1不适用于我在#
找到的指令:
0:002> u 000007fe`fde70ef1 l1
WININET!HTTP_REQUEST_HANDLE_OBJECT::HttpSendRequest_Start+0x744:
000007fe`fde70ef1 0f846d6a0000 je WININET!HTTP_REQUEST_HANDLE_OBJECT::HttpSendRequest_Start+0x80e (000007fe`fde77964)
关于为什么#
和bp
解析同一个符号名+偏移到不同地址的任何想法?
感谢