Open danielhenrymantilla opened 7 years ago
peda sets disassembly-flavor to intel
by default for instruction parsing and will not support GAS syntax.
@longld Actually you happen to support both syntaxes. For intance,
That shouldn't come as a surprise, since when looking at your code, you look for "cmp","test", "call", "j" and "ret" to be substrings of the opcodes mnemonics:
# lib/utils.py, in function format_disasm_code
# line 526
addr, opcode = to_int(m.group(1)), m.group(2)
for c in colorcodes:
if c in opcode:
color = colorcodes[c]
if c == "call":
for f in VULN_FUNCTIONS:
if f in line.split(":\t", 1)[-1]:
style = "bold, underline"
color = "red"
break
break
It so happens that both AT&T's (GAS) syntax and Intel's use the same opcodes mnemonics, at least at their core. Your "is a substring of" test means you maintain compatiblity regarding both syntaxes, which won't evolve in the future by the way.
Ergo, you do support both syntaxes with your parsing, and should therefore not favour one syntax over another.
The suggested fix, as said in my initial post, is to delete the line 777 from peda.py
:
self.execute("set disassembly-flavor intel") # get rid of this line
I have commented out this line in my code and haven't encountered any problem whatsoever.
File 'peda.py', lines 759 and 777:
I, as many other users, prefer the GAS syntax. Other users may prefer the Intel syntax, and that's why there is a
set disassembly-flavor XXX
setting. I can't see a reason as to whypdisas
, a supposedly improveddisas
, should blatantly ignore such a setting and impose either flavor.