hilda 2.0.16__py3-none-any.whl → 3.0.0__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.
@@ -22,11 +22,8 @@ def _disable_internal_error_handling() -> None:
22
22
  hilda.CFRunLoopServiceMachPort_while_ea = int(hilda.file_symbol(eval(while_ea)))
23
23
  elif instruction.GetMnemonic(hilda.target) in ('brk', 'ud2'):
24
24
  symbol = hilda.symbol(instruction.addr.GetLoadAddress(hilda.target))
25
- symbol.bp(
26
- _CFRunLoopServiceMachPort_hook,
27
- forced=True,
28
- name=f'__CFRunLoopServiceMachPort-brk-{int(symbol - hilda.symbols.__CFRunLoopServiceMachPort)}'
29
- )
25
+ description = f'__CFRunLoopServiceMachPort-brk-{int(symbol - hilda.symbols.__CFRunLoopServiceMachPort)}'
26
+ symbol.bp(_CFRunLoopServiceMachPort_hook, guarded=True, description=description)
30
27
 
31
28
  if hilda.arch == 'x86_64h':
32
29
  return
@@ -1,7 +1,8 @@
1
1
  import logging
2
2
 
3
+ import inquirer3
3
4
  from construct import Array, CString, Hex, If, Int32ub, Int32ul, Int64ul, Pointer, Struct, Tell, this
4
- from humanfriendly import prompts
5
+ from inquirer3 import List
5
6
 
6
7
  from hilda.lldb_importer import lldb
7
8
  from hilda.snippets.macho.image_info import ImageInfo, dyld_image_info_t
@@ -104,9 +105,11 @@ class AllImageInfos:
104
105
 
105
106
  @staticmethod
106
107
  def __select_specific_image(images):
107
- logging.info('Multiple images were found with that prefix.\nPlease select one')
108
- print([f"{image.file_path}" for image in images])
109
- selected_image_path = prompts.prompt_for_choice([f"{image.file_path}" for image in images])
108
+ image_list = [image.file_path for image in images]
109
+ logging.info('Multiple images were found with that prefix.\n'
110
+ 'Please select one:\n'
111
+ f'{image_list}')
112
+ selected_image_path = inquirer3.prompt(List('selected_image_path', image_list))['selected_image_path']
110
113
  for image in images:
111
114
  if image.file_path == selected_image_path:
112
115
  return image
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: hilda
3
- Version: 2.0.16
3
+ Version: 3.0.0
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>
@@ -52,6 +52,7 @@ Requires-Dist: pymobiledevice3
52
52
  Requires-Dist: keystone-engine
53
53
  Requires-Dist: tabulate
54
54
  Requires-Dist: inquirer3
55
+ Requires-Dist: traitlets
55
56
  Provides-Extra: test
56
57
  Requires-Dist: pytest; extra == "test"
57
58
 
@@ -162,7 +163,7 @@ Have a nice flight ✈️! Starting an IPython shell...
162
163
  Here is a gist of methods you can access from `p`:
163
164
 
164
165
  - `hd`
165
- - Print an hexdump of given buffer
166
+ - Print a hexdump of given buffer
166
167
  - `lsof`
167
168
  - Get dictionary of all open FDs
168
169
  - `bt`
@@ -209,7 +210,7 @@ Here is a gist of methods you can access from `p`:
209
210
  - Simulate a call to an objc selector
210
211
  - `call`
211
212
  - Call function at given address with given parameters
212
- - `monitor`
213
+ - `monitor` or `breakpoints.add_monitor`
213
214
  - Monitor every time a given address is called
214
215
 
215
216
  The following options are available:
@@ -254,10 +255,10 @@ Here is a gist of methods you can access from `p`:
254
255
  - Step into current instruction.
255
256
  - `step_over`
256
257
  - Step over current instruction.
257
- - `remove_all_hilda_breakpoints`
258
- - Remove all breakpoints created by Hilda
259
- - `remove_hilda_breakpoint`
260
- - Remove a single breakpoint placed by Hilda
258
+ - `breakpoints.clear`
259
+ - Remove all breakpoints
260
+ - `breakpoints.remove`
261
+ - Remove a single breakpoint
261
262
  - `force_return`
262
263
  - Prematurely return from a stack frame, short-circuiting exection of newer frames and optionally
263
264
  yielding a specified value.
@@ -265,14 +266,10 @@ Here is a gist of methods you can access from `p`:
265
266
  - Print information about currently running mapped process.
266
267
  - `print_proc_entitlements`
267
268
  - Get the plist embedded inside the process' __LINKEDIT section.
268
- - `bp`
269
+ - `bp` or `breakpoints.add`
269
270
  - Add a breakpoint
270
- - `show_hilda_breakpoints`
271
- - Show existing breakpoints created by Hilda.
272
- - `save`
273
- - Save loaded symbols map (for loading later using the load() command)
274
- - `load`
275
- - Load an existing symbols map (previously saved by the save() command)
271
+ - `breakpoints.show`
272
+ - Show existing breakpoints
276
273
  - `po`
277
274
  - Print given object using LLDB's po command
278
275
  Can also run big chunks of native code:
@@ -326,6 +323,9 @@ Sometimes accessing the [Python API](#python-api) can be tiring, so we added som
326
323
 
327
324
  #### Key-bindings
328
325
 
326
+ - **F1**: Show banner help message
327
+ - **F2**: Show process state UI
328
+ - **F3**: Toggle stdout/stderr enablement
329
329
  - **F7**: Step Into
330
330
  - **F8**: Step Over
331
331
  - **F9**: Continue
@@ -531,7 +531,7 @@ s.bp(scripted_breakpoint)
531
531
  p.bp('symbol_name')
532
532
 
533
533
  # In case you need to specify a specific library it's loaded from
534
- p.bp('symbol_name', module_name='ModuleName')
534
+ p.bp(('symbol_name', 'ModuleName'))
535
535
  ```
536
536
 
537
537
  #### Globalized symbols
@@ -3,22 +3,23 @@ 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=Rj6OwV2GJpyCTs0m5bHo9CElWBJTCnmOdBSPUYg9oj4,413
6
+ hilda/_version.py,sha256=feOY2rjYM8_-oXmp5ErPlMe-6zWTpyiw538tUrvFyEA,511
7
+ hilda/breakpoints.py,sha256=ZVszQf4WtRgjM2JAn8E-b-Ve6kzVg5VwvTHv5_wGjwQ,19198
7
8
  hilda/cli.py,sha256=PCjrI7GrERIrZCODJYmPt6eyl-nPYZviTS8fBG3oIjM,3618
8
9
  hilda/common.py,sha256=El-ih7cvCv9PJ5OWb1jkCbh4GuaRD6gqlrFC5gyY-TE,498
9
10
  hilda/exceptions.py,sha256=8L1OvOqns4O4ieiH4YlrMbZkk_PvuyCq4UyqFAodkF8,2042
10
11
  hilda/hilda_ascii_art.html,sha256=-9YCjAKdGbjtdd6uoKrxkkcJq7j16r4dGka2bZ27b4o,120119
11
- hilda/hilda_client.py,sha256=jJ1vKtvSM1Hfx9Hbtr2coRqQnpctuBtBXy1HTXEa-RI,48293
12
+ hilda/hilda_client.py,sha256=Uqp0N91gHJFkN9vZ9NN4YLkHGDXym4JGKjn-08HUZVE,38804
12
13
  hilda/launch_lldb.py,sha256=gU1iJmxuH7w5HV_cy1igv-JageyQn2dmqSxx8vkpY0k,8033
13
14
  hilda/lldb_entrypoint.py,sha256=vTiClzfiTtjorlxEfIsI-W657KEGobx74qDhaZ8nPhM,1007
14
15
  hilda/lldb_importer.py,sha256=TCGpAWwiBuyNRsbgcYawiqm35t8XQLCJwoOfEqyBeik,526
15
- hilda/objective_c_class.py,sha256=arIgABZxqsLyo9Q6kyw-Sujm5j-89QUOjS0njjBcGo8,11716
16
+ hilda/objective_c_class.py,sha256=AFGXFDkYUoHf_LVS6GJSyvMsIIYIviLx0PCa-f4pCT8,11561
16
17
  hilda/objective_c_symbol.py,sha256=lIZHef5iZe3AeUsK0uIsDtFnzSM-Ad6i2wfdj9DwLUM,8269
17
18
  hilda/registers.py,sha256=-9kk1MuKnWlJ0Z8zZ2RPV9nGRDtX1GXhCSkEvfnCktA,848
18
19
  hilda/symbol.py,sha256=yv8s0vQ6Z0ZoROeVE4RVaW0LFCyACZnFgp0QC6j05nI,7535
19
20
  hilda/symbols_jar.py,sha256=Vqdv6iH92P6aSfcz5XiR0FbNRqKuUu48mi-GxvPr32w,6504
20
21
  hilda/ipython_extensions/events.py,sha256=w_4V8FoJJMarWArEE8uzb2UXk1mqfslmI7XCyVb_XuE,1976
21
- hilda/ipython_extensions/keybindings.py,sha256=Ai9wHCla6HhgZGGxc0UEOCYODcavyef_zzUC9A9GcTE,1081
22
+ hilda/ipython_extensions/keybindings.py,sha256=W_Cnh8lG5yVdK5x0A-4UeyBsoJBufbYl54Mqrbo8OwM,1922
22
23
  hilda/ipython_extensions/magics.py,sha256=ULb63-OyIaWwvSfwRvEG_65ibaI2RTxeX8yPJK8pbc0,1300
23
24
  hilda/objective_c/from_ns_to_json.m,sha256=5Ddl0UJLQXlDYwR_yjE4yZk1aOsJGxoy1oRnhZHPrTw,2847
24
25
  hilda/objective_c/get_objectivec_class_by_module.m,sha256=DC8S8XaWsQSOJZWVWhATr98SZQobA3MmclLsBJGZTcU,704
@@ -36,10 +37,10 @@ hilda/snippets/remotepairingd.py,sha256=w7SYctpKw3B56ZP26n4Ap5_hz6VmZiUbe8CrTmZ1
36
37
  hilda/snippets/syslog.py,sha256=8qhYHKTElzWifqYAwt72iQ57wf1n0F_au2Vl2L8NPOc,294
37
38
  hilda/snippets/uuid.py,sha256=ttw-rq2Wshm7UMZXd5uYP37bi8G_ZE4XcXJbsYIgp1c,273
38
39
  hilda/snippets/xpc.py,sha256=Z0e4b1lIScZg7fsSwGK43v363qp25fdzYcc7ajJsyhU,3960
39
- hilda/snippets/mach/CFRunLoopServiceMachPort_hooks.py,sha256=gAJD0Qi2w0IxkPnHMbF5webODwot9PPChMRHVNQ6zSg,4230
40
+ hilda/snippets/mach/CFRunLoopServiceMachPort_hooks.py,sha256=8e6184bcRhqSDqXyDu-jnIXDbdw-mnP15J4MgNBKyg4,4202
40
41
  hilda/snippets/mach/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
42
  hilda/snippets/macho/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
- hilda/snippets/macho/all_image_infos.py,sha256=HdaFHhOM_AoXX_YTo9L7eEoX5MvMLTw4DZ_JZiTjdAs,4780
43
+ hilda/snippets/macho/all_image_infos.py,sha256=dwuf4vhewP1EvtcCa65IIVqWyDeFYxoBcqygpWK2INw,4866
43
44
  hilda/snippets/macho/apple_version.py,sha256=TTaqZKMviXJoU1o3OYeUskmxSkhVhh3UG1VbdJ6N-LE,148
44
45
  hilda/snippets/macho/image_info.py,sha256=Onu6u61TwFOwAfENpZIQA9N-Ba3b_M0gr8r6THNdIR4,1605
45
46
  hilda/snippets/macho/macho.py,sha256=X4NQZkO7VCcIMNuPs25ukiBrHM5Kj3UPMJzzeILfuyg,839
@@ -47,9 +48,9 @@ hilda/snippets/macho/macho_load_commands.py,sha256=vUWfFM2H6o8dMglXV7rHgh-EMTzS0
47
48
  hilda/ui/colors.json,sha256=f-ITquY3IInQreviTy23JfmxfJrGM1_MivACf1GKGqM,262
48
49
  hilda/ui/ui_manager.py,sha256=BmzI1sBx0PYCQDlB9Al7wsTEAMJxaJ7NW0DS4C7g5-0,2265
49
50
  hilda/ui/views.py,sha256=bzClOgKirKYs6nhsNRXpkGNIg3oIOmFb659GLWrlTdo,7792
50
- hilda-2.0.16.dist-info/LICENSE,sha256=M-LVJ0AFAYB82eueyl8brh-QLPe-iLNVgbCi79-3TDo,1078
51
- hilda-2.0.16.dist-info/METADATA,sha256=yVyahVngw47NUOFArDj4dv7Libn2F9uO1VvtCPIcNYA,23420
52
- hilda-2.0.16.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
53
- hilda-2.0.16.dist-info/entry_points.txt,sha256=9n3O3j6V3XnVR_GcFqCWNgRAbalfukTSW2WvghsLVmA,46
54
- hilda-2.0.16.dist-info/top_level.txt,sha256=TVD7l1WkE1noT866YqPFhiQnjYCYZM5Xz54v_3EYpnI,11
55
- hilda-2.0.16.dist-info/RECORD,,
51
+ hilda-3.0.0.dist-info/LICENSE,sha256=M-LVJ0AFAYB82eueyl8brh-QLPe-iLNVgbCi79-3TDo,1078
52
+ hilda-3.0.0.dist-info/METADATA,sha256=y0HMi2hFA-E3hr-kQL_5SBYqTxQdQBwvMLXUiSxklpo,23354
53
+ hilda-3.0.0.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
54
+ hilda-3.0.0.dist-info/entry_points.txt,sha256=9n3O3j6V3XnVR_GcFqCWNgRAbalfukTSW2WvghsLVmA,46
55
+ hilda-3.0.0.dist-info/top_level.txt,sha256=TVD7l1WkE1noT866YqPFhiQnjYCYZM5Xz54v_3EYpnI,11
56
+ hilda-3.0.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.0)
2
+ Generator: setuptools (75.8.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5