Skip to content
This repository was archived by the owner on Dec 24, 2025. It is now read-only.

Add a little function to make bigger changes #70

@hexwreaker

Description

@hexwreaker

With ida_segment, it's possible to accesss the LOADER flag of a segment (BUT NOT A COMMON WAY USING A idc.py FUNCTION 😢), example :

b = 0x07ffe00000000
ida_segment.getseg(b).is_loader_segm()

The function is_loader_segm is defined in ida_segment.py, and inherently use segment_t_is_loader_segm function from _ida_segment.

def is_loader_segm(self, *args) -> "bool":
        r"""
        is_loader_segm(self) -> bool
        """
        return _ida_segment.segment_t_is_loader_segm(self, *args)

Well, it does not exist a function in _ida_segment to know if a segment is a debugger one (i.e the D flag).

import _ida_segment
dir(_ida_segment)

['...', 'segm_adjust_diff', 'segm_adjust_ea', 'segment_defsr_array___getitem__', 'segment_defsr_array___len__', 'segment_defsr_array___setitem__', 'segment_defsr_array__get_bytes', 'segment_defsr_array__set_bytes', 'segment_defsr_array_data_get', 'segment_defsr_array_swiginit', 'segment_defsr_array_swigregister', 'segment_t___getDefsr', 'segment_t_abits', 'segment_t_abytes', 'segment_t_align_get', 'segment_t_align_set', 'segment_t_bitness_get', 'segment_t_bitness_set', 'segment_t_clr_comorg', 'segment_t_clr_ob_ok', 'segment_t_color_get', 'segment_t_color_set', 'segment_t_comb_get', 'segment_t_comb_set', 'segment_t_comorg', 'segment_t_defsr_get', 'segment_t_defsr_set', 'segment_t_end_ea_get', 'segment_t_end_ea_set', 'segment_t_flags_get', 'segment_t_flags_set', 'segment_t_is_16bit', 'segment_t_is_32bit', 'segment_t_is_64bit', 'segment_t_is_header_segm', 'segment_t_is_hidden_segtype', 

'segment_t_is_loader_segm',

 'segment_t_is_visible_segm', 'segment_t_name_get', 'segment_t_name_set', 'segment_t_ob_ok', 'segment_t_orgbase_get', 'segment_t_orgbase_set', 'segment_t_perm_get', 'segment_t_perm_set', 'segment_t_sclass_get', 'segment_t_sclass_set', 'segment_t_sel_get', 'segment_t_sel_set', 'segment_t_set_comorg', 'segment_t_set_debugger_segm', 'segment_t_set_header_segm', 'segment_t_set_hidden_segtype', 'segment_t_set_loader_segm', 'segment_t_set_ob_ok', 'segment_t_set_visible_segm', '...']

So my asks for improvements are :

  • Adding the segment_t_is_debugger_segm function in _ida_segment
  • Adding the *def is_debugger_segm(self, args) function in ida_segment.py
  • Adding the idc high level functions : is_loader_segm and is_debugger_segm

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions