@@ -60,7 +60,13 @@ def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]
6060 description = "File to load and execute at start" ,
6161 default = None ,
6262 optional = True ,
63- )
63+ ),
64+ requirements .BooleanRequirement (
65+ name = "script-only" ,
66+ description = "Exit volshell after the script specified in --script completes" ,
67+ default = False ,
68+ optional = True ,
69+ ),
6470 ]
6571 return reqs + [
6672 requirements .TranslationLayerRequirement (
@@ -135,6 +141,9 @@ def in_prompt_tokens(self, cli=None):
135141 if self .config .get ("script" , None ) is not None :
136142 self .run_script (location = self .config ["script" ])
137143
144+ if self .config .get ("script-only" ):
145+ exit ()
146+
138147 if has_ipython :
139148 self .__console ()
140149 else :
@@ -310,23 +319,25 @@ def display_bytes(self, offset, count=DEFAULT_NUM_DISPLAY_BYTES, layer_name=None
310319 self ._display_data (offset , remaining_data )
311320
312321 def display_quadwords (
313- self , offset , count = DEFAULT_NUM_DISPLAY_BYTES , layer_name = None
322+ self , offset , count = DEFAULT_NUM_DISPLAY_BYTES , layer_name = None , byteorder = "@"
314323 ):
315324 """Displays quad-word values (8 bytes) and corresponding ASCII characters"""
316325 remaining_data = self ._read_data (offset , count = count , layer_name = layer_name )
317- self ._display_data (offset , remaining_data , format_string = " Q" )
326+ self ._display_data (offset , remaining_data , format_string = f" { byteorder } Q" )
318327
319328 def display_doublewords (
320- self , offset , count = DEFAULT_NUM_DISPLAY_BYTES , layer_name = None
329+ self , offset , count = DEFAULT_NUM_DISPLAY_BYTES , layer_name = None , byteorder = "@"
321330 ):
322331 """Displays double-word values (4 bytes) and corresponding ASCII characters"""
323332 remaining_data = self ._read_data (offset , count = count , layer_name = layer_name )
324- self ._display_data (offset , remaining_data , format_string = " I" )
333+ self ._display_data (offset , remaining_data , format_string = f" { byteorder } I" )
325334
326- def display_words (self , offset , count = DEFAULT_NUM_DISPLAY_BYTES , layer_name = None ):
335+ def display_words (
336+ self , offset , count = DEFAULT_NUM_DISPLAY_BYTES , layer_name = None , byteorder = "@"
337+ ):
327338 """Displays word values (2 bytes) and corresponding ASCII characters"""
328339 remaining_data = self ._read_data (offset , count = count , layer_name = layer_name )
329- self ._display_data (offset , remaining_data , format_string = " H" )
340+ self ._display_data (offset , remaining_data , format_string = f" { byteorder } H" )
330341
331342 def regex_scan (self , pattern , count = DEFAULT_NUM_DISPLAY_BYTES , layer_name = None ):
332343 """Scans for regex pattern in layer using RegExScanner."""
0 commit comments