hilda 2.0.6__py3-none-any.whl → 2.0.7__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- hilda/_version.py +2 -2
- hilda/hilda_client.py +20 -1
- {hilda-2.0.6.dist-info → hilda-2.0.7.dist-info}/METADATA +3 -1
- {hilda-2.0.6.dist-info → hilda-2.0.7.dist-info}/RECORD +8 -8
- {hilda-2.0.6.dist-info → hilda-2.0.7.dist-info}/LICENSE +0 -0
- {hilda-2.0.6.dist-info → hilda-2.0.7.dist-info}/WHEEL +0 -0
- {hilda-2.0.6.dist-info → hilda-2.0.7.dist-info}/entry_points.txt +0 -0
- {hilda-2.0.6.dist-info → hilda-2.0.7.dist-info}/top_level.txt +0 -0
hilda/_version.py
CHANGED
hilda/hilda_client.py
CHANGED
|
@@ -511,7 +511,8 @@ class HildaClient:
|
|
|
511
511
|
:param dict options: User defined options.
|
|
512
512
|
"""
|
|
513
513
|
bp = bp_loc.GetBreakpoint()
|
|
514
|
-
|
|
514
|
+
|
|
515
|
+
symbol = hilda.symbol(hilda.frame.addr.GetLoadAddress(hilda.target)) # type: Symbol
|
|
515
516
|
|
|
516
517
|
# by default, attempt to resolve the symbol name through lldb
|
|
517
518
|
name = str(symbol.lldb_symbol)
|
|
@@ -1043,6 +1044,24 @@ class HildaClient:
|
|
|
1043
1044
|
|
|
1044
1045
|
return value
|
|
1045
1046
|
|
|
1047
|
+
def wait_for_module(self, expression: str) -> None:
|
|
1048
|
+
""" Wait for a module to be loaded using `dlopen` by matching given expression """
|
|
1049
|
+
self.log_info(f'Waiting for module name containing "{expression}" to be loaded')
|
|
1050
|
+
|
|
1051
|
+
def bp(client: HildaClient, frame, bp_loc, options) -> None:
|
|
1052
|
+
loading_module_name = client.evaluate_expression('$arg1').peek_str()
|
|
1053
|
+
client.log_info(f'Loading module: {loading_module_name}')
|
|
1054
|
+
if expression not in loading_module_name:
|
|
1055
|
+
client.cont()
|
|
1056
|
+
return
|
|
1057
|
+
client.finish()
|
|
1058
|
+
client.log_info(f'Desired module has been loaded: {expression}. Process remains stopped')
|
|
1059
|
+
bp = bp_loc.GetBreakpoint()
|
|
1060
|
+
client.remove_hilda_breakpoint(bp.id)
|
|
1061
|
+
|
|
1062
|
+
self.bp('dlopen', bp)
|
|
1063
|
+
self.cont()
|
|
1064
|
+
|
|
1046
1065
|
def interact(self, additional_namespace: Optional[typing.Mapping] = None,
|
|
1047
1066
|
startup_files: Optional[List[str]] = None) -> None:
|
|
1048
1067
|
""" Start an interactive Hilda shell """
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: hilda
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.7
|
|
4
4
|
Summary: LLDB wrapped and empowered by iPython's features
|
|
5
5
|
Author-email: doronz88 <doron88@gmail.com>, matan <matan1008@gmail.com>, netanel cohen <netanelc305@protonmail.com>
|
|
6
6
|
Maintainer-email: doronz88 <doron88@gmail.com>, matan <matan1008@gmail.com>, netanel cohen <netanelc305@protonmail.com>
|
|
@@ -305,6 +305,8 @@ Here is a gist of methods you can access from `p`:
|
|
|
305
305
|
- sets the currently selected thread, which is used in other parts of the program, such as displaying disassembly or
|
|
306
306
|
checking registers.
|
|
307
307
|
This ensures the application focuses on the specified thread for these operations.
|
|
308
|
+
- `wait_for_module`
|
|
309
|
+
- Wait for a module to be loaded (`dlopen`) by checking if given expression is contained within its filename
|
|
308
310
|
|
|
309
311
|
All these methods are available from the global `p` within the newly created IPython shell. In addition, you may invoke any of the exported APIs described in the [Python API](#python-api)
|
|
310
312
|
|
|
@@ -3,12 +3,12 @@ gifs/ui.png,sha256=iaRwNZ9qVWUkUe2TJb_6VPsTu--7HrElA2duWiyZ-Oc,131
|
|
|
3
3
|
gifs/xpc_print_message.gif,sha256=i5S8Y9bJm9n-NtOipFTAC8_jUR4uZCM4sOap_ccJX0k,939935
|
|
4
4
|
hilda/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
hilda/__main__.py,sha256=KWRqvukK4wraxCMtvH5nO25mFXLO5aWXa7z_VfAtbO8,90
|
|
6
|
-
hilda/_version.py,sha256=
|
|
6
|
+
hilda/_version.py,sha256=XF5cViFsh9DDqYgZRLDN3oAuRKMj1sXUbBqJ4rzLL7E,411
|
|
7
7
|
hilda/cli.py,sha256=FQtOg1iFRtNdVVes_SchIoidOWAENhsLItwXBWCgWgc,3625
|
|
8
8
|
hilda/common.py,sha256=VFtpOH9IRqbu6lONM6Hz-PxcdJfktgS3akJv5UCHO0s,523
|
|
9
9
|
hilda/exceptions.py,sha256=8L1OvOqns4O4ieiH4YlrMbZkk_PvuyCq4UyqFAodkF8,2042
|
|
10
10
|
hilda/hilda_ascii_art.html,sha256=-9YCjAKdGbjtdd6uoKrxkkcJq7j16r4dGka2bZ27b4o,120119
|
|
11
|
-
hilda/hilda_client.py,sha256=
|
|
11
|
+
hilda/hilda_client.py,sha256=iDFOzjqdenTvD1qI98kn93_xT6nn9Tp3yC0TnNDh6Bg,46221
|
|
12
12
|
hilda/launch_lldb.py,sha256=sD-02HERIFQEYoPM9JrRfFOTjHE2QUt3L0pNgFsyAEQ,7186
|
|
13
13
|
hilda/lldb_entrypoint.py,sha256=vTiClzfiTtjorlxEfIsI-W657KEGobx74qDhaZ8nPhM,1007
|
|
14
14
|
hilda/lldb_importer.py,sha256=LrIQnigDG3wgmIPXya67oBlWubkDgV-rEpzfWNEYCoc,553
|
|
@@ -46,9 +46,9 @@ hilda/snippets/macho/macho_load_commands.py,sha256=OsajG2xWuRwhYhj9f-lnUiNe43Yum
|
|
|
46
46
|
hilda/ui/colors.json,sha256=f-ITquY3IInQreviTy23JfmxfJrGM1_MivACf1GKGqM,262
|
|
47
47
|
hilda/ui/ui_manager.py,sha256=BmzI1sBx0PYCQDlB9Al7wsTEAMJxaJ7NW0DS4C7g5-0,2265
|
|
48
48
|
hilda/ui/views.py,sha256=1u_eZzw7wAEP1bm_-9nkqgGhMSX__woiUuoBgnsAKVM,7843
|
|
49
|
-
hilda-2.0.
|
|
50
|
-
hilda-2.0.
|
|
51
|
-
hilda-2.0.
|
|
52
|
-
hilda-2.0.
|
|
53
|
-
hilda-2.0.
|
|
54
|
-
hilda-2.0.
|
|
49
|
+
hilda-2.0.7.dist-info/LICENSE,sha256=M-LVJ0AFAYB82eueyl8brh-QLPe-iLNVgbCi79-3TDo,1078
|
|
50
|
+
hilda-2.0.7.dist-info/METADATA,sha256=bWBcBXGtsujCQQ7dhgRsssUKF54NAnfKjt9cyvRFNuk,23437
|
|
51
|
+
hilda-2.0.7.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
|
|
52
|
+
hilda-2.0.7.dist-info/entry_points.txt,sha256=9n3O3j6V3XnVR_GcFqCWNgRAbalfukTSW2WvghsLVmA,46
|
|
53
|
+
hilda-2.0.7.dist-info/top_level.txt,sha256=TVD7l1WkE1noT866YqPFhiQnjYCYZM5Xz54v_3EYpnI,11
|
|
54
|
+
hilda-2.0.7.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|