Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature request: module name and rva offsets #525

Open
shevernitskiy opened this issue May 12, 2023 · 2 comments
Open

feature request: module name and rva offsets #525

shevernitskiy opened this issue May 12, 2023 · 2 comments

Comments

@shevernitskiy
Copy link

shevernitskiy commented May 12, 2023

I am developing dll, which injects into main process. As a side effect it provides crash report functionality.

While app crashing, it is necessary to know in which module it crashed. RVA will be handy in case of reversing main app with IDA or so.

For example, C++ std::stacktrace::current() output:

0> dfint_hook!NullExport+0x21BA7
1> KERNELBASE!UnhandledExceptionFilter+0x1E7
2> ntdll!memset+0x13B0
3> ntdll!_C_specific_handler+0x96
4> ntdll!_chkstk+0x11F
5> ntdll!RtlRaiseException+0x434
6> ntdll!KiUserExceptionDispatcher+0x2E
7> dfint_hook!NullExport+0x1EF64
8> Dwarf_Fortress+0x2F3BEA
9> Dwarf_Fortress+0x29D076
10> Dwarf_Fortress+0x59D82B
11> Dwarf_Fortress+0x7863A8
12> Dwarf_Fortress+0x5C3E07
13> Dwarf_Fortress+0x5C4AE9
14> SDL!SDL_KillThread+0x71
15> SDL!SDL_SemWaitTimeout+0x85
16> ucrtbase!configthreadlocale+0x92
17> KERNEL32!BaseThreadInitThunk+0x14
18> ntdll!RtlUserThreadStart+0x21
@bjorn3
Copy link
Member

bjorn3 commented May 12, 2023

Would frame.symbol_address() - frame.ip() and frame.module_base_address().unwrap() - frame.ip() work?

@shevernitskiy
Copy link
Author

shevernitskiy commented May 12, 2023

the second one works, but it is not RVA... this is example with ip - module_base_address (another cause, but with some same system calls)

1: backtrace::backtrace::trace::ha542dd0000ec3f1e + 0x104D7
2: dfint_hook::crash::handler::h008202f291f32902 + 0xBE00
3: UnhandledExceptionFilter + 0x15B7DC
4: RtlMoveMemory + 0xA837D
5: _C_specific_handler + 0x8EFA7
6: _chkstk + 0xA3CFF
7: RtlFindCharInUnicodeString + 0x1E456
8: KiUserExceptionDispatcher + 0xA2CEE
9:> strlen + 0x2CA21
10: dfint_hook::crash::handler::h008202f291f32902 + 0xD3B3
11: unknown + 0x49E5A2
12: unknown + 0x4A1063
13: unknown + 0xF92634
14: unknown + 0x561A2E
15: unknown + 0x87E1C6
16: unknown + 0x5C3FE8
17: unknown + 0x5C4AE9
18: SDL_KillThread + 0xE471
19: SDL_SemWaitTimeout + 0xE855
20: recalloc + 0x29363
21: BaseThreadInitThunk + 0x126AD
22: RtlUserThreadStart + 0x5A9F8

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants