I met "Can't convert emu_optname 4 to host platform based optname" when I try to emulate the router Tenda-AC15(with qiling-framework from github)
Then I find out it seems the ql_syscall_setsockopt, which gonna hijack setsockopt in the emulated program, do not support IPPROTO_TCP level:
try:
emu_level_name = socket_level_mapping(emu_level, ql.arch.type, ql.os.type)
# emu_opt_name is based on level
if emu_level_name == "IPPROTO_IP":
emu_opt_name = socket_ip_option_mapping(emu_opt, ql.arch.type, ql.os.type)
else:
emu_opt_name = socket_option_mapping(emu_opt, ql.arch.type, ql.os.type)
# Fix for mips
if ql.arch.type == QL_ARCH.MIPS:
if emu_opt_name.endswith("_NEW") or emu_opt_name.endswith("_OLD"):
emu_opt_name = emu_opt_name[:-4]
except KeyError:
ql.log.error(f"Can't convert emu_optname {emu_opt} to host platform based optname")
raise
Is there a plan to implement this up?
I met "Can't convert emu_optname 4 to host platform based optname" when I try to emulate the router Tenda-AC15(with qiling-framework from github)
Then I find out it seems the
ql_syscall_setsockopt, which gonna hijack setsockopt in the emulated program, do not supportIPPROTO_TCPlevel:Is there a plan to implement this up?