假设我有自编译的 exe 文件(又名便携式可执行文件)、它的源代码 (c/c++) 和生成的 pdb 文件。如果我想在调试器(x64dbg,无论如何)中获得其函数(非 winapi 函数)的偏移量以在其上设置断点怎么办?我想知道/了解现有的反向技术来做到这一点。
如何在exe中获取特定函数的偏移量?
逆向工程
调试
x64dbg
可执行
x86-64
2021-06-14 18:27:57
1个回答
如果可执行文件有 pdb,x64dbg 可以加载 pdb 并列出所有函数名称
查看->模块->下载这个模块的符号
也x64dbg可以使用源文件(ctrl+shift+s)
只是为了完成windbg的使用
:\>cdb -c ".lines;bp `winchk.cpp:17`" winchk.exe
Microsoft (R) Windows Debugger Version 10.0.17763.132 AMD64
CommandLine: winchk.exe
ntdll!LdrpDoDebuggerBreak+0x30:
00007ffa`055f108c cc int 3
0:000> cdb: Reading initial command '.lines;bp `winchk.cpp:17`'
Line number information will be loaded
0:000> bl
0 e 00007ff7`ad0f1090 0001 (0001) 0:**** winchk!main
0:000> g
Breakpoint 0 hit
winchk!main:
00007ff7`ad0f1090 4883ec38 sub rsp,38h
0:000>
您可以使用windbg安装文件夹中的dbh.exe进行rebase并获取确切地址
winchk [1000000]: x *
index address name
1 1001090 : main
3 1001060 : atest
5 1001000 : ctest
6 1001030 : btest
winchk [1000000]: base 0x400000
winchk [400000]: x *
index address name
1 401090 : main
3 401060 : atest
5 401000 : ctest
6 401030 : btest
winchk [400000]:
其它你可能感兴趣的问题