Reputation: 2294
I have very simple C code - compiled on MSVC using clang++ compiler. When I am running it under angr environment - it simply does not finds main() function, while it can do so for other things like strcmp etc. Also, the same program when run under linux (g++) works with no issues.
Additionally, I could see main() symbol in dumpbin.exe, gdb, x64dbg etc.
path_to_binary = "D:\\angr_project\\angr training\\angr_ctf\\00_angr_find\\00_angr_find.exe" # :string
print("Started execution\n")
project = angr.Project(path_to_binary, load_options={'auto_load_libs': False})
main_fn = project.loader.find_symbol('main')
if main_fn:
print("main found")
else:
print("main not found")
Upvotes: 0
Views: 296
Reputation: 313
See the cle.pe's get_symbol source code. It gets from the export table.
It seems that angr doesn't support PDB.
Upvotes: 1