libpince package

Submodules

libpince.debugcore module

libpince.regexes module

Copyright (C) 2016-2017 Korcan Karaokçu <korcankaraokcu@gmail.com>

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

libpince.regexes.gdb_command_source(command_file)

libpince.typedefs module

Copyright (C) 2016-2017 Korcan Karaokçu <korcankaraokcu@gmail.com>

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

class libpince.typedefs.ATTACH_RESULT[source]

Bases: object

ALREADY_DEBUGGING = 4
ALREADY_TRACED = 5
ATTACH_SELF = 1
PERM_DENIED = 6
PROCESS_NOT_VALID = 3
SUCCESSFUL = 2
class libpince.typedefs.AllocatedMemory(address, size)[source]

Bases: object

class libpince.typedefs.BREAKPOINT_MODIFY[source]

Bases: object

CONDITION = 1
DISABLE = 3
ENABLE = 2
ENABLE_COUNT = 5
ENABLE_DELETE = 6
ENABLE_ONCE = 4
class libpince.typedefs.BREAKPOINT_ON_HIT[source]

Bases: object

BREAK = 1
FIND_ADDR = 3
FIND_CODE = 2
TRACE = 4
class libpince.typedefs.BREAKPOINT_TYPE[source]

Bases: object

HARDWARE = 1
SOFTWARE = 2
class libpince.typedefs.CONST_TIME[source]

Bases: object

GDB_INPUT_SLEEP = 2.2250738585072014e-308
class libpince.typedefs.ENDIANNESS[source]

Bases: object

BIG = 2
HOST = 0
LITTLE = 1
class libpince.typedefs.FREEZE_TYPE[source]

Bases: object

ALLOW_DECREMENT = 2
ALLOW_INCREMENT = 1
DEFAULT = 0
class libpince.typedefs.Frozen(value, freeze_type=0)[source]

Bases: object

exception libpince.typedefs.GDBInitializeException(message='GDB not initialized')[source]

Bases: Exception

class libpince.typedefs.INFERIOR_ARCH[source]

Bases: object

ARCH_32 = 1
ARCH_64 = 2
class libpince.typedefs.INFERIOR_STATUS[source]

Bases: object

RUNNING = 1
STOPPED = 2
class libpince.typedefs.INJECTION_METHOD[source]

Bases: object

ADVANCED = 2
DLOPEN = 1
class libpince.typedefs.KeyboardModifiersTupleDict(OrderedDict_like_list)[source]

Bases: Mapping

class libpince.typedefs.PATHS[source]

Bases: object

FROM_PINCE = '/from_PINCE'
GDB = '/bin/gdb'
IPC = '/dev/shm/PINCE_IPC/'
TMP = '/tmp/PINCE/'
TO_PINCE = '/to_PINCE'
class libpince.typedefs.PointerChainRequest(base_address, offsets_list=None)[source]

Bases: object

base_address: str | int
get_base_address_as_str()[source]

Returns the text representation of this pointer’s base address

Return type:

str

offsets_list: list[int]
serialize()[source]
Return type:

tuple[str | int, list[int]]

class libpince.typedefs.PointerChainResult[source]

Bases: object

get_final_address()[source]
Return type:

int | None

get_final_address_as_hex()[source]

Returns the hex representation of this pointer chain’s final/destination address

Return type:

str | None

get_pointer_by_index(index)[source]
Return type:

int | None

pointer_chain: list[int]
class libpince.typedefs.REGISTERS[source]

Bases: object

FLAG = ['cf', 'pf', 'af', 'zf', 'sf', 'tf', 'if', 'df', 'of']
class FLOAT[source]

Bases: object

ST = ['st0', 'st1', 'st2', 'st3', 'st4', 'st5', 'st6', 'st7']
XMM_32 = ['xmm0', 'xmm1', 'xmm2', 'xmm3', 'xmm4', 'xmm5', 'xmm6', 'xmm7']
XMM_64 = ['xmm0', 'xmm1', 'xmm2', 'xmm3', 'xmm4', 'xmm5', 'xmm6', 'xmm7', 'xmm8', 'xmm9', 'xmm10', 'xmm11', 'xmm12', 'xmm13', 'xmm14', 'xmm15']
GENERAL_32 = ['eax', 'ebx', 'ecx', 'edx', 'esi', 'edi', 'ebp', 'esp', 'eip']
GENERAL_64 = ['rax', 'rbx', 'rcx', 'rdx', 'rsi', 'rdi', 'rbp', 'rsp', 'rip', 'r8', 'r9', 'r10', 'r11', 'r12', 'r13', 'r14', 'r15']
SEGMENT = ['cs', 'ss', 'ds', 'es', 'fs', 'gs']
class libpince.typedefs.RegisterQueue[source]

Bases: object

broadcast_message(message)[source]
delete_queue(queue_instance)[source]
register_queue()[source]
class libpince.typedefs.SCAN_INDEX[source]

Bases: object

ANY = 8
AOB = 10
FLOAT32 = 6
FLOAT64 = 7
FLOAT_ANY = 5
INT16 = 2
INT32 = 3
INT64 = 4
INT8 = 1
INT_ANY = 0
STRING = 9
class libpince.typedefs.SCAN_MODE[source]

Bases: object

NEW = 0
ONGOING = 1
class libpince.typedefs.SCAN_TYPE[source]

Bases: object

BETWEEN = 8
CHANGED = 9
DECREASED = 4
DECREASED_BY = 5
EXACT = 0
INCREASED = 2
INCREASED_BY = 3
LESS = 6
MORE = 7
NOT = 1
UNCHANGED = 10
UNKNOWN = 11
static get_list(scan_mode, value_type)[source]
class libpince.typedefs.STEP_MODE[source]

Bases: object

SINGLE_STEP = 1
STEP_OVER = 2
class libpince.typedefs.STOP_REASON[source]

Bases: object

DEBUG = 2
PAUSE = 1
class libpince.typedefs.TOGGLE_ATTACH[source]

Bases: object

ATTACHED = 1
DETACHED = 2
class libpince.typedefs.TRACE_STATUS[source]

Bases: object

CANCELED = 3
FINISHED = 4
IDLE = 1
TRACING = 2
class libpince.typedefs.USER_PATHS[source]

Bases: object

CONFIG = '.config/'
GDBINIT = '.config/PINCE/gdbinit'
GDBINIT_AA = '.config/PINCE/gdbinit_after_attach'
PINCEINIT = '.config/PINCE/pinceinit.py'
PINCEINIT_AA = '.config/PINCE/pinceinit_after_attach.py'
ROOT = '.config/PINCE/'
static get_init_files()[source]
class libpince.typedefs.VALUE_INDEX[source]

Bases: object

AOB = 10
FLOAT32 = 4
FLOAT64 = 5
INT16 = 1
INT32 = 2
INT64 = 3
INT8 = 0
STRING_ASCII = 6
STRING_UTF16 = 8
STRING_UTF32 = 9
STRING_UTF8 = 7
static has_length(value_index)[source]
static is_float(value_index)[source]
static is_integer(value_index)[source]
static is_number(value_index)[source]
static is_string(value_index)[source]
class libpince.typedefs.VALUE_REPR[source]

Bases: object

HEX = 2
SIGNED = 1
UNSIGNED = 0
class libpince.typedefs.ValueType(value_index=2, length=10, zero_terminate=True, value_repr=0, endian=0)[source]

Bases: object

serialize()[source]
text()[source]

Returns the text representation according to its members

Returns:

A str generated by given parameters

Return type:

str

Examples

value_index=VALUE_INDEX.STRING_UTF16, length=15, zero_terminate=False–▼ returned str=”String_UTF16[15],NZT” value_index=VALUE_INDEX.AOB, length=42–>returned str=”AoB[42]”

class libpince.typedefs.WATCHPOINT_TYPE[source]

Bases: object

BOTH = 3
READ_ONLY = 2
WRITE_ONLY = 1
class libpince.typedefs.gdb_output_mode(async_output, command_output, command_info)

Bases: tuple

async_output

Alias for field number 0

command_info

Alias for field number 2

command_output

Alias for field number 1

class libpince.typedefs.tuple_breakpoint_info(number, breakpoint_type, disp, enabled, address, size, on_hit, hit_count, enable_count, condition)

Bases: tuple

address

Alias for field number 4

breakpoint_type

Alias for field number 1

condition

Alias for field number 9

disp

Alias for field number 2

enable_count

Alias for field number 8

enabled

Alias for field number 3

hit_count

Alias for field number 7

number

Alias for field number 0

on_hit

Alias for field number 6

size

Alias for field number 5

class libpince.typedefs.tuple_examine_expression(all, address, symbol)

Bases: tuple

address

Alias for field number 1

all

Alias for field number 0

symbol

Alias for field number 2

class libpince.typedefs.tuple_region_info(start, end, perms, file_name, region_index)

Bases: tuple

end

Alias for field number 1

file_name

Alias for field number 3

perms

Alias for field number 2

region_index

Alias for field number 4

start

Alias for field number 0

libpince.utils module

Module contents