MCPcopy Create free account
hub / github.com/qilingframework/qiling / main

Function main

qiling/os/posix/kernel_proxy/proxy.py:120–150  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

118
119
120def main():
121 if len(sys.argv) != 2:
122 log.error(f"usage: {sys.argv[0]} <socket_fd>")
123 sys.exit(1)
124
125 sock_fd = int(sys.argv[1])
126 sock = socket.socket(fileno=sock_fd)
127 server = ProxyServer(sock)
128
129 while True:
130 try:
131 msg_type, fields = server.recv_request()
132 except ConnectionError:
133 break
134
135 if msg_type == MsgType.SYSCALL:
136 nr, a0, a1, a2, a3, a4, a5 = fields
137 retval, err = raw_syscall(nr, a0, a1, a2, a3, a4, a5)
138 server.send_syscall_response(retval, err)
139
140 elif msg_type == MsgType.SYSCALL_EX:
141 nr, args, in_bufs, out_specs = fields
142 retval, err, out_bufs = raw_syscall_ex(nr, args, in_bufs, out_specs)
143 server.send_syscall_ex_response(retval, err, out_bufs)
144
145 elif msg_type == MsgType.FD_OP:
146 op, proxy_fd, arg1, arg2, data = fields
147 retval, err, resp_data = handle_fd_op(op, proxy_fd, arg1, arg2, data)
148 server.send_fd_op_response(retval, err, resp_data)
149
150 sock.close()
151
152
153if __name__ == '__main__':

Callers 1

proxy.pyFile · 0.70

Calls 11

recv_requestMethod · 0.95
send_syscall_responseMethod · 0.95
send_fd_op_responseMethod · 0.95
ProxyServerClass · 0.90
raw_syscallFunction · 0.85
raw_syscall_exFunction · 0.85
handle_fd_opFunction · 0.85
exitMethod · 0.80
socketMethod · 0.80
closeMethod · 0.45

Tested by

no test coverage detected