|
3 | 3 | # Cross Platform and Multi Architecture Advanced Binary Emulation Framework |
4 | 4 | # |
5 | 5 |
|
| 6 | +from qiling import Qiling |
6 | 7 |
|
7 | | -from qiling.const import * |
8 | | -from qiling.os.linux.thread import * |
9 | | -from qiling.const import * |
10 | | -from qiling.os.posix.filestruct import * |
11 | | -from qiling.os.filestruct import * |
12 | | -from qiling.os.posix.const_mapping import * |
13 | | -from qiling.exception import * |
14 | | - |
15 | | -def ql_syscall_writev(ql, writev_fd, writev_vec, writev_vien, *args, **kw): |
| 8 | +def ql_syscall_writev(ql: Qiling, fd: int, vec: int, vlen: int): |
16 | 9 | regreturn = 0 |
17 | 10 | size_t_len = ql.pointersize |
18 | | - iov = ql.mem.read(writev_vec, writev_vien * size_t_len * 2) |
19 | | - ql.log.debug("writev() CONTENT:") |
| 11 | + iov = ql.mem.read(vec, vlen * size_t_len * 2) |
| 12 | + ql.log.debug('writev() CONTENT:') |
20 | 13 |
|
21 | | - for i in range(writev_vien): |
| 14 | + for i in range(vlen): |
22 | 15 | addr = ql.unpack(iov[i * size_t_len * 2 : i * size_t_len * 2 + size_t_len]) |
23 | 16 | l = ql.unpack(iov[i * size_t_len * 2 + size_t_len : i * size_t_len * 2 + size_t_len * 2]) |
24 | 17 | regreturn += l |
| 18 | + |
25 | 19 | buf = ql.mem.read(addr, l) |
26 | 20 | ql.log.debug(buf) |
27 | 21 |
|
28 | | - if hasattr(ql.os.fd[writev_fd], "write"): |
29 | | - ql.os.fd[writev_fd].write(buf) |
| 22 | + if hasattr(ql.os.fd[fd], 'write'): |
| 23 | + ql.os.fd[fd].write(buf) |
30 | 24 |
|
31 | 25 | return regreturn |
32 | 26 |
|
33 | 27 |
|
34 | | -def ql_syscall_readv(ql, fd, vec, vlen, *args, **kw): |
| 28 | +def ql_syscall_readv(ql: Qiling, fd: int, vec: int, vlen: int): |
35 | 29 | regreturn = 0 |
36 | 30 | size_t_len = ql.pointersize |
37 | 31 | iov = ql.mem.read(vec, vlen * size_t_len * 2) |
38 | | - ql.log.debug("readv() CONTENT:") |
| 32 | + ql.log.debug('readv() CONTENT:') |
39 | 33 |
|
40 | 34 | for i in range(vlen): |
41 | | - addr = ql.unpack( |
42 | | - iov[i * size_t_len * 2 : i * size_t_len * 2 + size_t_len] |
43 | | - ) |
44 | | - l = ql.unpack( |
45 | | - iov[ |
46 | | - i * size_t_len * 2 |
47 | | - + size_t_len : i * size_t_len * 2 |
48 | | - + size_t_len * 2 |
49 | | - ] |
50 | | - ) |
| 35 | + addr = ql.unpack(iov[i * size_t_len * 2 : i * size_t_len * 2 + size_t_len]) |
| 36 | + l = ql.unpack(iov[i * size_t_len * 2 + size_t_len : i * size_t_len * 2 + size_t_len * 2]) |
51 | 37 | regreturn += l |
52 | | - if hasattr(ql.os.fd[fd], "read"): |
| 38 | + |
| 39 | + if hasattr(ql.os.fd[fd], 'read'): |
53 | 40 | data = ql.os.fd[fd].read(l) |
54 | 41 | ql.log.debug(data) |
55 | 42 | ql.mem.write(addr, data) |
|
0 commit comments