@@ -88,7 +88,7 @@ def unpack(bs, sz):
8888 mem_read = []
8989 for offset in range (ct ):
9090 # append data if read successfully, otherwise return error message
91- if (data := _try_read (ql , addr + (offset * sz ), sz ))[0 ]:
91+ if (data := _try_read (ql , addr + (offset * sz ), sz ))[0 ] is not None :
9292 mem_read .append (data [0 ])
9393
9494 else :
@@ -231,27 +231,22 @@ def context_reg(ql: Qiling, saved_states: Optional[Mapping[str, int]] = None, /,
231231 val = ql .mem .read (addr , ql .pointersize )
232232 print (f"$sp+0x{ idx * ql .pointersize :02x} │ [0x{ addr :08x} ] —▸ 0x{ ql .unpack (val ):08x} " , end = "" )
233233
234- try : # try to deference wether its a pointer
235- buf = ql .mem .read (addr , ql .pointersize )
236- except :
237- buf = None
238-
239- if (addr := ql .unpack (buf )):
240- try : # try to deference again
241- buf = ql .mem .read (addr , ql .pointersize )
242- except :
243- buf = None
244-
245- if buf :
246- try :
247- s = ql .mem .string (addr )
248- except :
249- s = None
250-
251- if s and s .isprintable ():
252- print (f" ◂— { ql .mem .string (addr )} " , end = "" )
253- else :
254- print (f" ◂— 0x{ ql .unpack (buf ):08x} " , end = "" )
234+ # try to dereference wether it's a pointer
235+ if (buf := _try_read (ql , addr , ql .pointersize ))[0 ] is not None :
236+
237+ if (addr := ql .unpack (buf [0 ])):
238+
239+ # try to dereference again
240+ if (buf := _try_read (ql , addr , ql .pointersize ))[0 ] is not None :
241+ try :
242+ s = ql .mem .string (addr )
243+ except :
244+ s = None
245+
246+ if s and s .isprintable ():
247+ print (f" ◂— { ql .mem .string (addr )} " , end = "" )
248+ else :
249+ print (f" ◂— 0x{ ql .unpack (buf [0 ]):08x} " , end = "" )
255250 print ()
256251
257252
0 commit comments