Skip to content

Find string data in read-only sections in addition to read-only segments #2

Closed
@cxiao

Description

@cxiao

There are some cases in which this plugin is not able to find any strings, due to not being able to find any read-only segments in the binary. There may also be cases where we need to look at sections in the binary, rather than segments.

For example, the plugin currently fails to find any strings inside the x86_64 slice of the Mach-O sample 9ca914b1cfa8c0ba021b9e00bda71f36cad132f27cf16bda6d937badee66c747.

This sample has all of its constant string data in the __const section of the binary. The __const section only contains read-only data; however, the segment that it is inside, located from 0x100000000 to 0x10039c000 is read-executable.

This is because this segment contains a number of sections, some of which are code and some of which are data:

Name Start End Semantics
__text 0x100000fd0 0x1002b69d0 Read-only code
__stubs 0x1002b69d0 0x1002b6ed4 Read-only code
__gcc_except_tab 0x1002b6ed4 0x1002dcab8 Default
__const 0x1002dcac0 0x10038e4b0 Read-only data
__unwind_info 0x10038e4b0 0x10039beec Default
__eh_frame 0x10039bef0 0x10039bfe8 Default

This binary actually also contains a read-only segment from 0x1003e8000 to 0x100598000 (the Mach-O __LINKEDIT segment, which contains metadata used by the dynamic linker dyld), but that segment contains no sections, and its contents are also not referenced from anywhere within any of the code inside the binary.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions