Find function's start offset in ELF

Generally yes, if you can parse the ELF file directly or combine output from tools like objdump and readelf.

More specific: You can get the offset and virtual address of your .text section with 'readelf -S file' - write those down. Further you can list symbols with 'readelf -s file', as long your executable is not stripped, and your function is visible (not static or in an anonymous namespace) then you should find your function and the virtual address of it.

Thus you can calculate the offset via

fn symbol offset = fn symbol VA - .text VA + .text offset

Thats assuming you want to do it "offline" with common tools. Its more difficult if you dont have access to the unstripped ELF file, and since only a part of the ELF File remains in memory, probably not possible without adding some information with "offline" tricks.