Compare commits

...
327 Commits
Author SHA1 Message Date
Arusekk 493a3e3d92 Release 4.8.0 2022-04-21 01:05:15 +02:00
Arusekk f491bc6a22 Merge branch 'stable' into beta 2022-04-20 15:46:34 +02:00
Arusekk cde1b89615 Release 4.7.1 2022-04-20 15:37:20 +02:00
zup 17fc0aeaad fix double decoding of bytestring when logging (#2051) 2022-04-20 13:20:40 +00:00
maybe-sybr c93bdfeed8 fix: Fallback to temp dir if cache does not exist (#1784)
This fixes a misbehaviour in environments where `XDG_CACHE_DIR` is not
set and `~/.cache` does not exist, e.g. in the docker image. We simply
attempt to create a temporary directory which will be registered with
`atexit` to be deleted on exit using `shutil.rmtree()`. A Python 3
approach for future would be to use a `TemporaryDirectory` instead which
would get cleaned up when the held object gets dropped out of the TLS
stack.

It is still possible for the `context.cache_dir` to be `None` if the
default directory exists but is not writable, which means some code
which uses this property is liable to blow up in such a circumstance.
2022-04-20 12:09:41 +00:00
TestzeroandT3stzer0 4fd08b0b00 fix packing error (#2040)
Co-authored-by: T3stzer0 <[email protected]>
2022-04-20 12:00:35 +00:00
Spencer Pogorzelski 8dd566b9e9 Fix env command not found in gdb.debug (#2007) 2022-04-20 11:47:57 +00:00
Sebastiano MarianiandArusekk fca2929de0 Fix download_dir method when using an ssh tube (#1961)
Signed-off-by: Sebastiano Mariani <[email protected]>
Co-authored-by: Arusekk <[email protected]>
2022-04-20 10:51:21 +00:00
lucasg d67bdbc550 [asm] pwn.disam can return <text+0x0> instead of <text> (#1912)
Unit test:

```
(pwntools_mips_bug) lucasg@home:/tmp/pwntools$ git show
commit 78c6b8c2a9 (HEAD -> dev, origin/dev, origin/HEAD)
Merge: e3a5ac58 d7139997
Author: heapcrash <[email protected]>
Date:   Mon May 31 16:06:34 2021 -0500

    Merge branch 'beta' into dev

(pwntools_mips_bug) lucasg@home:/tmp/pwntools$ python
Python 3.7.3 (default, Jan 22 2021, 20:04:44)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pwn, binascii
>>> print(pwn.disasm(binascii.unhexlify("000000000d0000000000000000"), vma=0x00000000, arch="mips"))
   0:   00000000        nop
   4:   0000000d        break
   8:   00000000        nop
        ...
>>> print(pwn.disasm(binascii.unhexlify("000000000d0000000000000000"), vma=0x80000000, arch="mips"))
[ERROR] Could not find .text in objdump output:

    /tmp/pwn-disasm-77tu42pr/step2:     file format elf32-tradlittlemips

    Disassembly of section .text:

    80000000 <.text+0x0>:
    80000000:   00000000        nop
    80000004:   0000000d        break
    80000008:   00000000        nop
        ...
[ERROR] An error occurred while disassembling:
    b'\x00\x00\x00\x00\r\x00\x00\x00\x00\x00\x00\x00\x00'
    Traceback (most recent call last):
      File "/tmp/pwntools/pwnlib/asm.py", line 814, in disasm
        log.error('Could not find .text in objdump output:\n%s' % output0)
      File "/tmp/pwntools/pwnlib/log.py", line 424, in error
        raise PwnlibException(message % args)
    pwnlib.exception.PwnlibException: Could not find .text in objdump output:

    /tmp/pwn-disasm-77tu42pr/step2:     file format elf32-tradlittlemips

    Disassembly of section .text:

    80000000 <.text+0x0>:
    80000000:   00000000        nop
    80000004:   0000000d        break
    80000008:   00000000        nop
        ...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/tmp/pwntools/pwnlib/context/__init__.py", line 1524, in setter
    return function(*a, **kw)
  File "/tmp/pwntools/pwnlib/asm.py", line 818, in disasm
    log.exception("An error occurred while disassembling:\n%s" % data)
  File "/tmp/pwntools/pwnlib/asm.py", line 814, in disasm
    log.error('Could not find .text in objdump output:\n%s' % output0)
  File "/tmp/pwntools/pwnlib/log.py", line 424, in error
    raise PwnlibException(message % args)
pwnlib.exception.PwnlibException: Could not find .text in objdump output:

/tmp/pwn-disasm-77tu42pr/step2:     file format elf32-tradlittlemips

Disassembly of section .text:

80000000 <.text+0x0>:
80000000:       00000000        nop
80000004:       0000000d        break
80000008:       00000000        nop
        ...
```
2022-04-20 10:25:58 +00:00
Alan YeeandArusekk c3894c24de Make ELF symbol dict accept bytes (#1973)
DynElf symbol lookup uses bytes as key

Fixes #1951

Co-authored-by: Arusekk <[email protected]>
2022-04-20 09:48:13 +00:00
Arusekk 208b11df69 Avoid name clash of plain and android-related test 2022-04-20 11:14:45 +02:00
Will 0a860bd964 Fix incorrect disasm output (#2031)
Use objdump --wide option to ensure we don't have new lines in large instructions (>7 bytes).
2022-04-20 08:58:08 +00:00
0x3c3e 15efc3f1dc Cast int target pid to str (#2012) 2022-04-20 08:24:06 +00:00
gogo2464 2d0f03b66c Update Sphinx in order to fix jinja2 deprecated dependency. (#2053) 2022-04-20 08:44:02 +02:00
peace-maker 2198b74df9 Fix CI after Groovy Gorilla went away for libc unstrip test (#2025)
* Fix CI after Groovy Gorilla went away for libc unstrip test

Build elfutils 0.181 from source since we can't use builds
from a newer ubuntu version anymore.

* Install python wheels in CI
2022-02-01 11:07:39 +01:00
Arusekk 9d8060496c Release 4.8.0beta0 2021-11-15 12:44:33 +01:00
Arusekk 67b28491a4 Release 4.7.0 2021-11-15 12:36:25 +01:00
Arusekk 7ea1f1d492 Merge branch 'beta' into dev 2021-11-15 12:25:01 +01:00
Arusekk 1b86e89efb Fix CI failures (#1997)
Ubuntu, why are you doing this to us?
I seriously mean that Ubuntu is the most silly distro.

Like, they probably updated their docker (or VM) images last week,
then Github got it, and we started getting failures.
They totally changed the behaviour of that 'apport' thing,
and it now drops core files in /var/lib/apport/coredump
instead of the current working directory.

Why is that even... ugh.  Nevermind.  It works now, at least.
But for how long?
2021-11-15 12:22:25 +01:00
Arusekk 0c769bdba9 Add cat2 to shellcraft (#1995)
* Introduce shellcraft.linux.cat2 to avoid sendfile

Fixes #1871

* Switch CAT_PROC_MAPS_EXIT to shellcraft.linux.cat2
2021-11-15 12:22:12 +01:00
Arusekk e80a6978ec Fix CI failures (#1994)
* Try to fix build failures by updating sphinx

See sphinx-doc/sphinx#9811

* Does not work with py2, so pin old docutils
2021-11-15 12:22:00 +01:00
Arusekk da8bf2667d Fix CI failures (#1997)
Ubuntu, why are you doing this to us?
I seriously mean that Ubuntu is the most silly distro.

Like, they probably updated their docker (or VM) images last week,
then Github got it, and we started getting failures.
They totally changed the behaviour of that 'apport' thing,
and it now drops core files in /var/lib/apport/coredump
instead of the current working directory.

Why is that even... ugh.  Nevermind.  It works now, at least.
But for how long?
2021-11-15 12:14:18 +01:00
Arusekk a37bce2bdc Display nice error message on unavailable ret2csu (#1991)
Fixes #1941
2021-11-14 15:20:59 +01:00
Arusekk 3dd0b24cc3 Add cat2 to shellcraft (#1995)
* Introduce shellcraft.linux.cat2 to avoid sendfile

Fixes #1871

* Switch CAT_PROC_MAPS_EXIT to shellcraft.linux.cat2
2021-11-14 15:20:43 +01:00
Arusekk a8c8c28f00 Fix CI failures (#1994)
* Try to fix build failures by updating sphinx

See sphinx-doc/sphinx#9811

* Does not work with py2, so pin old docutils
2021-11-11 17:53:45 +01:00
Justin Steven 315a462603 Make cyclic_find work with large int values (#1981)
* Make cyclic_find work with large int values

* Add entry for cyclic_find() large int fix

* Tweak cyclic_find() large int warning
2021-11-11 14:59:05 +01:00
ElJeffeandArusekk ddeddd455e Fix: TypeError: can't concat str to bytes (#1953)
* Fix: TypeError: can't concat str to bytes

sh_string returns a string, but two lines try to concat it with bytes, which throws a TypeError.  Either convert them all to bytes or all to string.

* Update to use packing._need_bytes

I just followed the format from surrounding conversions.  Hopefully that works correctly.

* Update pwnlib/tubes/ssh.py

Co-authored-by: Arusekk <[email protected]>

* Conversion to bytes

* Going for higher level conversion

Co-authored-by: Arusekk <[email protected]>
2021-11-01 00:35:10 +01:00
Alan Yee d3140ed983 Using native features of built-in functions over built-in operations config.py (#1980)
Use lazy logging and use second argument of `.get()` instead of relying on `or`
2021-11-01 00:33:32 +01:00
Arusekk fc250a33a1 Add missing copyright notice to ARM alphanumeric (#1955)
Closes #1954
2021-10-07 09:33:34 +02:00
peace-makerandArusekk 92911cbabd libcdb: Load debug info and unstrip libc binary (#1828)
* libcdb: Load debug info and unstrip libc binary

The debug info is obtained from a debuginfod server maintained by systemtap.org. elfutils is used to unstrip the binary and merge the debug info back.

Try to unstrip every libc binary downloaded by the libcdb module by default. #1818

* Install elfutils on CI

* Update CHANGELOG.md

* Add more tests

* Fix negative test

* Raise an exception when eu-unstrip fails

This will hopefully get logged during doctests.

* Install elfutils 0.181 from groovy

Use APT Pinning to select the newer elfutils version from groovy instead of the buggy 0.176 version available in focal.

* Fix missing import of requests

pylint?

Co-authored-by: Arusekk <[email protected]>
2021-10-03 10:51:30 +02:00
Alan Yee a9715d8c74 Use lazy logging instead of native string interpolation (#1972)
https://docs.python.org/3/howto/logging.html#logging-variable-data
2021-10-01 07:48:57 +02:00
Darin Mao bd12d1874f Fix KB, MB, GB globals (#1926) 2021-07-29 19:17:17 +02:00
clubby789 11b8537d17 Fix validation of log level name for Python 3 (#1939)
* Fix validation of log level name for Python 3

* Add changelog

* Reorder changelog and use try/except
2021-07-29 19:16:36 +02:00
Connor NelsonandArusekk f7283bf2eb Fix logic in wait_for_debugger (#1922)
* Fix logic in `wait_for_debugger`

* Update CHANGELOG.md

* Fix CHANGELOG.md

* Fix CHANGELOG.md

Co-authored-by: Arusekk <[email protected]>
2021-07-15 11:42:42 +02:00
Arusekk d5d7b8385c Begin working on 4.8.0 2021-07-12 23:06:17 +02:00
Arusekk d8abd074df Release 4.7.0beta0 2021-07-12 23:04:23 +02:00
Arusekk 56d43680f1 Release 4.6.0 2021-07-12 23:00:40 +02:00
Arusekk 03df22a4c5 Fix MIPS PLT on newer Unicorn versions (#1932)
Apparently it is us who used unicorn The Wrong Way,
e.g. trying to fetch instructions @ 0xdbdbdbdb,
which is both unaligned and high-address-space.
Unicorn just changed the exception to throw exception with the address
of an offending jump instruction, instead of the incorrect address.
Making the debugs actually work and changing address to 0x7c7c7c7c
solves the issue.

Closes #1538
Ping pentoo/pentoo-overlay#734 @blshkv
2021-07-12 21:42:01 +02:00
Heap Crash bbdb5dbb23 Various docs improvements (#1925)
* Expose elf/* instead of just elf
* Remove rop/call, since it is not supposed to be a public API
* Make QEMU examples into code blocks
2021-06-27 20:34:03 +02:00
WittsEnd2 6b2cdbb74d Added basic support for bare-metal ARM by adding pattern for finding binutils. (#1921)
* Added basic support for bare-metal ARM by adding the pattern to find arm-none-eabi in which_binutils()

* Updated CHANGELOG.md
2021-06-22 11:26:41 +02:00
Arusekk 90930e2bb8 Unified args (#1896)
* Introduce _need_bytes(min_wrong=0x80) for ASCII-ok contexts

* Unify argv and env preparation

Fixes #1804

* Switch sh_prepare to bytes

Fixes #1808

* Python 2 again

* Actually fix py2
2021-06-19 11:14:11 +02:00
Paul 35260c4c31 Keep gadgets when setting registers via setattr/call (#1891)
* Keep gadgets when setting registers via setattr/call

* Update changelog
2021-06-18 19:59:41 -05:00
Sean 684f06b760 Check binutils version is GNU or Clang (#1915) 2021-06-13 13:16:31 +02:00
Arusekk 1e34fb4a4f Add basic support for RISC-V (#1897)
* Add basic support for RISC-V

Closes #1777

* Update CHANGELOG.md
2021-06-09 18:56:21 +02:00
Rhythm Chopra e2ec6d0381 Fix i386 xor encoder issue #1761 (#1767)
* Fix i386 encoder issue #1761

Don't encode `avoid` parameter in `fiddler.py` if type is `bytearray`

* Pass `avoid` as `bytes` instead of `set` when `encoder.encode()` is called

* Requested change: Increase readability

* Update doctest in XOR encoder

Add my failing testcase to ensure the code is fixed
2021-06-05 21:34:20 +02:00
heapcrash 78c6b8c2a9 Merge branch 'beta' into dev 2021-05-31 16:06:34 -05:00
heapcrash d7139997dd Merge branch 'stable' into beta 2021-05-31 15:55:40 -05:00
heapcrash 5b0bec0c09 [4.5.1] Update setup.py 2021-05-31 15:44:49 -05:00
Heap Crash e3a5ac5818 Dockerfile changes for quality-of-life with "make develop" (#1905)
* [docker:develop] Use zsh by default, enable sharing host history file

* [docker] Simplify makefile and break up develop command into second rule

* [docker:develop] Use zsh by default 2

* [docker:develop] Add ipdb, ipython, vim, and pwndbg

* [docker:buster] Add buster Dockerfile for testing #1899

* [docker:develop] Add pwn autocomplete

* [docker:develop] Add ipython configuration
2021-05-31 15:31:22 -05:00
Heap Crash 12af84f19f Defer import of requests and urllib (#1906)
* Defer import of requests and urllib

This saves 100ms-150ms of startup time on "from pwn import *"

* Update CHANGELOG

* More deferred imports to save ~20ms
2021-05-31 15:30:58 -05:00
Heap Crash 2d460e5738 [4.5.1] Update version.py (#1908) 2021-05-31 20:29:49 +00:00
Heap Crash dff64e2366 For tmux, always specify -F and -P (#1902)
* For tmux, always specify -F and -P

Fixes #1898

* [4.5.1] Update CHANGELOG
2021-05-31 15:20:35 -05:00
Heap Crash 0aa1a231c3 Add bash autocompletion (#1904)
* Add bash autocompletion

* Update CHANGELOG
2021-05-30 19:32:28 -05:00
Heap Crash d991c898ac Add zsh completion (#1903)
* Add zsh completion

* Update CHANGELOG
2021-05-30 19:28:05 -05:00
Heap Crash ca4eeaa196 [docker] Update base image to use UTF-8 and also install tmux (#1900) 2021-05-30 17:47:38 -05:00
Heap Crash ef37e991d8 Add documentation for ROP magic register properties and setRegisters (#1894)
* Show magic gadgets and setRegsiters in the top of the documentation

* Show the cool way to set registers magically, with fewer lines of code

* Try simple fix for doctest
2021-05-26 11:22:54 +02:00
Arusekk 9426df0095 Fix ELF error on vmlinux with version like 4.4.78+ 2021-05-26 11:15:10 +02:00
Heap Crash 29fd2fe1c1 Fix warning that bytes != string (#1893)
* Fix warning that bytes != string

* Update CHANGELOG
2021-05-17 09:32:02 -05:00
Heap Crash 3c85afdbf5 Silence SIGPIPE error for phd (#1892)
* Silence SIGPIPE error for phd

* Update CHANGELOG
2021-05-17 08:43:24 -05:00
Arusekk 7893e6124d Merge branch 'beta' into dev 2021-05-13 14:01:26 +02:00
Arusekk fcf008b4fd Merge branch 'stable' into beta 2021-05-13 14:01:07 +02:00
tirefire b2c83a7cd0 Change the regex for the rop verifier to handle 2 character registers (#1884)
* Change the regex for the rop verifier to handle 2 character registers as well

* Update changelog
2021-05-13 06:52:48 +00:00
Arusekk 2d1e0616a7 Update dietlibc headers and all that jazz (#1733)
* Update dietlibc headers

Closes #691

* Generated files

* Enable easy updating of syscall numbers

* Generated files

* Generate new syscalls

* Update CHANGELOG.md

* Workaround for py2

* Revert CGC deletion
2021-05-07 17:17:46 +02:00
Arusekk 6b25687454 Merge branch 'beta' into dev 2021-05-07 16:01:28 +02:00
Arusekk 882fd6a926 [testing] Google strikes back once again 2021-05-07 15:59:04 +02:00
Arusekk cdc36a8597 Merge branch 'beta' into dev 2021-05-07 10:46:31 +02:00
Arusekk f16cead9d7 [testing] Google strikes back 2021-05-07 10:46:01 +02:00
Arusekk d7e7ecce3f Merge branch 'stable' into beta 2021-05-07 10:39:35 +02:00
Arusekk 3914b212ae Get a sane CHANGELOG 2021-05-07 10:38:33 +02:00
Hunter GregalandArusekk 8af69b3261 add self.message and change sys.exc_type to sys.exec_info() in Pwnlib… (#1876)
* add self.message and change sys.exc_type to sys.exec_info() in PwnlibException class

* update changelog

* Update pwnlib/exception.py

tru

Co-authored-by: Arusekk <[email protected]>

Co-authored-by: Arusekk <[email protected]>
2021-05-07 10:26:51 +02:00
Hunter GregalandArusekk 21d1cd0519 encoders: support avoid == bytes in error message (#1877)
* encoders: support `avoid == bytes` in error message

* update changelog

* Update pwnlib/encoders/encoder.py

Co-authored-by: Arusekk <[email protected]>

Co-authored-by: Arusekk <[email protected]>
2021-05-07 10:23:46 +02:00
Arusekk c7119c7bc5 Merge branch 'beta' into dev 2021-04-30 18:14:53 +02:00
Arusekk 6780c890cd Update CHANGELOG.md 2021-04-30 18:14:36 +02:00
Arusekk 9241ea80f8 Begin working on 4.7.0 2021-04-30 18:13:20 +02:00
Arusekk bf023053fc Release 4.6.0beta0 2021-04-30 18:11:16 +02:00
Arusekk c8681de1ee Merge branch 'beta' into dev 2021-04-30 18:10:57 +02:00
Arusekk 34bcb02a3f Release 4.5.0 2021-04-30 18:09:40 +02:00
Arusekk 4b8cac5557 Fix tests 2021-04-30 18:09:14 +02:00
Saleem RashidandArusekk 8926425aed Add ignore_config argument to pwnlib.tubes.ssh and improve allow_agent implementation (#1566)
* ssh: Use paramiko allow_agent parameter

* ssh: Add ignore_config parameter to opt out of using ~/.ssh

* [changelog] Add `ignore_config` argument to `pwnlib.tubes.ssh` and improve `allow_agent` implementation (#1566)

Co-authored-by: Arusekk <[email protected]>
2021-04-29 19:20:14 +02:00
mephi42andArusekk e27209469e Fix process() with executable relative to cwd (#1751)
* Add PyCharm project directory to .gitignore

* Fix process() with executable relative to cwd

* Update CHANGELOG.md

Co-authored-by: Arusekk <[email protected]>
2021-04-29 19:13:22 +02:00
Heap CrashandArusekk 797c3ee178 [process] Add writemem with tests, alias readmem == leak (#1652)
* [process] Add writemem with tests, alias readmem == leak

* Update CHANGELOG

* Explicitly show result for easier debugging on CI

* Explicitly set arch to i386

* Troubleshooting and avoid overwriting top-level asm

* Update pwnlib/tubes/process.py

* Fix nasty race condition

Co-authored-by: Arusekk <[email protected]>
2021-04-29 19:10:21 +02:00
Arusekk e3bd4212de Respect context.bytes when counting ROP padding
Closes #1862
2021-04-29 16:26:27 +02:00
Heap CrashandArusekk a7b34f7d79 [android] Split Android AVD testing into its own Workflow (#1594)
* [android] Split Android AVD testing into its own Workflow

* [android] Modify to trigger tests

* [android] Make paths more succinct and explicit

* Remove environment variable

* Rename to test

* Always run Android jobs for debugging

* Enhance Android workflow

* Disable gdbserver download

* Make the workflow actually work

* Travis missing gdbserver

* Try to fix travis

* Add good ol' SIGALRM-based debugs for tests

* Revert changes made to Travis

* But fix GHA

* Actually enable the android tests

* Actually enable

* Not necessary anymore

* Actually run the tests with AVD installation

Also fix incorrect text-vs-bytes usages in protocols.adb.

Co-authored-by: Arusekk <[email protected]>
2021-04-29 15:56:18 +02:00
Arusekk 4b196c7d96 Cleanup unconditional imports (#1753)
* Cleanup unconditional imports

This may aid #1725

* Import explicitly

* Add good ol' SIGALRM-based debugs for tests

* Fix py2 GDB tests somehow

XXX: see why this matters

* Update CHANGELOG.md
2021-04-29 11:23:09 +02:00
Heap CrashandArusekk ad251a8285 Make gdb.attach work with arrays instead of string concatenation (#1846)
* Make gdb.attach work with arrays instead of string concatenation

This results in a simpler set of code that is more resilient to
issues with quoting and files with spaces in their name.

* Remove detach_and_quit for now, this was for Docker CI testing

* Fix typo

* Fix lint errors

* shlex.quote is unavailable on Python3

* Update CHANGELOG.md

* With no escaping comes no escaping

Co-authored-by: Arusekk <[email protected]>
2021-04-28 22:11:29 +02:00
ArusekkandCptGibbon 603e5ba0f1 Another attempt for rop.ret2csu (#1429)
* Add rop.ret2csu()

* Removed magic numbers

* Replaced if elf.sym.has_key(u'__libc_csu_init') with if u'__libc_csu_init' in elf.symbols

* Consistently used unicode strings to search for symbols

* Used the Capstone SKIPDATA option to deal with endbr64 instructions

* Added comment to clarify why we set rbp and rbx

* Account for newer versions of gcc populating registers in a different order

* Code style issues

* Add padding functionality

* Split files and add tests at last

* Implement flat interface in ROP

* Make linters happy

* Update changelog

* Add a more detailed doctest

* Actually set uid and hopefully solve all the corefile problems

* Show me the bug

* More verbosity

BTW fix py3 sockets incosistency

* The most debug

* Should finally work

* It must work now

Co-authored-by: CptGibbon <[email protected]>
2021-04-28 22:10:46 +02:00
Heap CrashandArusekk cb24f376ce Prefer Python3 for the remotely-executed Python script (#1746)
* Prefer Python3 for the remotely-executed Python script

This should be done as part of our general transition to Python3,
but should also be done because some systems with e.g. Python2.6
do not support OrderedDict, but DO have a Python3 version that works.

* Make the script actually work in py2 and py3

* Fix & update CHANGELOG.md

This actually is a behavior change, and can be a breaking change for some,
so must be stated prominently in the changelog.

Co-authored-by: Arusekk <[email protected]>
2021-04-28 22:00:53 +02:00
Arusekk f3b08ed289 Merge branch 'beta' into dev 2021-04-19 10:21:02 +02:00
Arusekk 21da0e1c46 Release 4.5.0beta1 2021-04-19 10:06:31 +02:00
clubby789 9e9531ff0d Fix atexit on Python 3 (#1852)
* Fix atexit on Python 3

`sys.exitfunc` was removed in Python 3, meaning that any handlers
registered with the `pwnlib/atexit.py` module wouldn't run. This PR
reigsters the handlers with the stdlib atexit.

* Update changelog
2021-04-19 07:56:26 +00:00
Arusekk 835bc6ad56 Address code review from #1861 (#1866)
* Address code review from #1861

Review by @heapcrash

* Fix regression
2021-04-19 09:06:46 +02:00
Robert ReithandArusekk 2b71971821 fixed wrong description for shellcraft.amd64.linux.kill()... (#1739)
* fixed wrong description for shellcraft.amd64.linux.kill(). new desciption copied from pwntools/pwnlib/shellcraft/templates/common/linux/syscalls/kill.asm

* updated changelog with PR #1739

* Fix more syscalls and generify

Co-authored-by: Arusekk <[email protected]>
2021-04-15 13:01:35 +02:00
084890f739 mips: do not use $t0 temporary variable in dupio (#1776)
* mips: do not use $t0 temporary variable in dupio

dupio currently uses $t0 which is a temporary callee saved register.
The dup2 call is thus allowed to trash the register.
Use $v0 instead. $v0 is the return value register.
Either dup2 returns the provided $v0 (newfd) or -1 if it fails,
and therefore $v0 can be used safely here.

Reference:
 https://courses.cs.washington.edu/courses/cse410/09sp/examples/MIPSCallingConventionsSummary.pdf

* Update changelog

* Update dupio.asm

Make a small change to kick Github Actions

* Fix CHANGELOG

Co-authored-by: Heap Crash <[email protected]>
Co-authored-by: Arusekk <[email protected]>
2021-04-15 12:05:25 +02:00
Arusekk 3121f68e39 Try to catch more errors by using python -bb (#1861)
* Try to catch more errors by using python -bb

* Apply changes to travis dockerfiles as well

* Introduce context._need_bytes and context._need_text

...and resolve many issues
2021-04-15 12:04:56 +02:00
martinclauss 9066a68879 fix #1803 and #1860 (#1864)
* fix #1803 and #1860

* bring back Python2 shebang and imports
2021-04-15 12:03:20 +02:00
Arusekk 7e03bfd5a6 Fix unreliable doctest 2021-04-09 18:19:37 +02:00
Arusekk cf7ee859c9 Prevent CHANGELOG checks on non-code changes 2021-04-09 18:18:01 +02:00
Arusekk 7ececc6bce Support forking terminals (#1717)
* Support forking terminals

Closes #1677

* Update proc.py
2021-04-09 17:52:41 +02:00
Arusekk b3fe1eb6ed Enhance x86 bitsmode-switching templates (#1756) 2021-04-09 16:38:10 +02:00
Heap Crash 5d54e0d66d Work around bash complaining about setlocale on some servers (#1745)
Fixes #1744
2021-04-09 16:15:26 +02:00
Arusekk 3e0e0a5833 Merge branch 'beta' into dev 2021-03-31 23:10:34 +02:00
Arusekk 3d5ca378ec No more failing UI tests! (#1857)
* Better debug for UI tests

* No more failing UI tests!
2021-03-31 21:01:46 +00:00
Arusekk c6fd41b733 Begin working on 4.6.0 2021-03-29 12:02:45 +02:00
Arusekk faba1351fc Release 4.5.0beta0 2021-03-29 12:01:20 +02:00
Arusekk d07a86d556 Release 4.4.0 2021-03-29 11:49:32 +02:00
WGHandHeap Crash ec9dfe108b Support XDG_CONFIG_HOME dir for pwn.conf (#1827)
~/.pwn.conf support is not removed.

Co-authored-by: Heap Crash <[email protected]>
2021-03-07 20:48:38 -06:00
Heap Crash d20ceacd7b Fix typo (#1844) 2021-03-05 16:53:46 -05:00
Heap Crash 3bfb3ff135 Add colored_traceback for colorized exception tracebacks (#1841)
* Add colored_traceback for colorized exception tracebacks

* Add CHANGELOG
2021-03-05 16:13:22 -05:00
Heap Crash 2114708210 [ssh] Apparently this is broken? (#1842)
/bin/sh seems to be sending the cd command to the background, instead of
changing directories and then running the selected command.

This has worked forever, not sure why it's failing in CI now
2021-03-05 00:29:39 -05:00
Heap Crash e8c03edebf Add Pwnlib IO (#1833)
* [io] Introduce first draft of IO module

This is designed to make it easier to do file management when a piece of code
has to deal with creating a file that might need to be local, OR might need
to reside on some SSH server somewhere.

Specifically, the GDB code needs this for future enhancements

* [docs] Add documentation and doctests

* Update CHANGELOG

* Add pathlib2 requirement for Python2

* Use Python3 documentation

* Remove pwnlib.io module

* [filesystem] Add filesystem module, with Path and SSHPath

* Use @classmethod monkey patching instead of subclassing

This means that isinstance(Path, ssh_path_instance) returns True

* Make doctests work again

* Remove debugging code

* Rename context.ssh to context.ssh_session

This is needed because @LocalContext will pop off 'ssh' and some functions
take 'ssh' as an argument, and it would all break.

* [debug] Try to figure out why CI is failing

* [ssh] Fix failing doctest

* Fix README

* Fix README

* Fix failing doctest harder

* Remove unneeded internal file
2021-03-04 22:51:15 -05:00
Heap Crash 216d24875d [run_in_new_terminal] Create a wrapper script automatically if we are given a list or tuple (#1839)
* [run_in_new_terminal] Create a wrapper script automatically if we are given a list or tuple

* Update CHANGELOG
2021-03-03 16:20:27 -05:00
Heap Crash e8979928d6 Clean up some GDB doctests (#1834) 2021-02-28 22:53:45 -05:00
Heap Crash efce48cddf [gdb] Add a timeout to GDB faketerminal operations (#1836) 2021-02-28 22:47:04 -05:00
Heap Crash 19cf23b3ac [ssh] Add instructions for removing host key from known_hosts (#1770)
* [ssh] Add instructions for removing host key from known_hosts

* Fix hostname
2021-02-28 21:35:36 -05:00
Heap Crash d98d82d664 [ssh] Minor enhancements (#1831)
- ssh.runner() now accepts mixed bytes and strings, by forcing everything to a string
- ssh.runner() now takes e.g. log_level='debug' as a kwarg
- Simplify ">/dev/null 2>&1" into "&>/dev/null"
2021-02-28 21:10:57 -05:00
Heap Crash 639be2dc82 Add more doctests for context module around handling verbosity (#1832)
* [docs] Add docs and tests for context.quietfunc

* [docs] Add more doctests for context.quiet and context.verbose

* [docs] Fix doctests
2021-02-28 20:52:39 -05:00
XeonacidandHeap Crash 082de2cc7e Remove unnecessary pwn.toplevel.__all__ (#1811)
* Remove unnecessary pwn.toplevel.__all__

The default behavior of `from import *` is enough and better, to make Pylance work
fix #1810

* Update CHANGELOG.md

* Add a comment for removed pwn.toplevel.__all__

Co-authored-by: Heap Crash <[email protected]>
2021-02-27 00:55:47 -05:00
Heap Crash 95200fc351 Add DOCKER.md (#1802)
* Add DOCKER.md

* Add note about VS Code
2021-02-26 17:07:21 -05:00
Heap Crash b2274da946 [logging] Disable logging the calculated PLT entries of every loaded ELF object (#1817)
In the future, we can revisit this with something like a log.trace that doesnt show up with DEBUG
2021-02-26 17:06:39 -05:00
Heap Crash 5ff4375c7b [travis] Switch to a different server that still has the magic gdbserver, make RPyC tests work (#1825)
* [travis] Switch to a different server that still has the magic gdbserver

* [travis] Install rpyc using pwndbg's method for finding the GDB-built Python

* [travis] Forgot pip dropped support for Python 3.5

* [gdb] Rewrite timeout logic for GDB API and fix doctests to use "skipif"

* [gdb] I'm not sure how this GDB API stuff ever worked in the first place

But it works now, at least locally

* [gdb] Fix broken doctests

* Update timeout to 10 seconds
2021-02-26 17:06:22 -05:00
Heap CrashandArusekk 2f094b74e5 [corefile] Fix some broken tests, add several more (#1823)
* [corefile] Fix some broken tests, add several more

Notably, some were outright incorrect (corefile.libc for a statically-linked ELF)

Also fixed up some of the documentation to add more links, and added examples
of reading / writing / saving / reloading a corefile.

* [corefile] Some fixes for things but also some canaries for finding out what is happening on GHA

* [testing] More canaries to pull files down from GHA

* That was a bad idea

* Fix implementation bug in Corefile.exe

Basically we returned the segment that contained the entry point,
but need to return the first segment which shares the same filename

We also no longer handle the case where the mapping is anonymous
and set the name to AT_EXECFN.  This probably breaks some QEMU stuff.

* Yep, the code used AT_EXECFN for the QEMU case

For an ARM corefile generated by qemu-user, the mappings are:

In [10]: print(core.maps)
10000000-10001000 r-xp 1000
ff7ef000-ff7f0000 ---p 1000
ff7f0000-ffff0000 rw-p 800000 [stack]

So we need to pull the name out of AT_EXECFN

* [core] Eagerly fetch self.exe so that the Mapping always has the right name

This means that Corefile.maps and Corefile.mappings will be updated for the single mapping
that contains the AT_ENTRY

* Attempt to debug getenv failure

* Fix some temporary edits and broken tests

* [ssh] Lets try and see if this works

* Remove unnecessary test and disable diagnostic logging

* [misc] Refactor kill_at_exit code for simplicity

Also catch the OSError from when the process has already died, which
was showing up at the end of CI runs

* Remove debug print

* Hail mary debugging attempt

* Try workaround that manually sets SHELL, since it may not be set on GHA

* [corefile] Remove debugging code, and consume setdefault result

* [corefile] Hide the bash-static fuckery in the RST file setup

* Update docs/source/elf/corefile.rst

Co-authored-by: Arusekk <[email protected]>

* Update pwnlib/elf/corefile.py

Co-authored-by: Arusekk <[email protected]>

Co-authored-by: Arusekk <[email protected]>
2021-02-25 17:11:31 -05:00
Heap Crash 8f8adf7b71 Enable PWNLIB_COLOR=always environment variable (#1816)
This allows piping with color into tools like ansifilter, which take
ANSI-escape-coded colorized text and emits data in other formats,
notably HTML.

This is useful for writing blog posts with PWNLIB_DEBUG=1 to display
hex-dumped data written to stdout that would not normally be colorized.

Currently this ONLY works for the environment variable PWNLIB_COLOR,
and does not make use of pwnlib.args due to cyclic imports.
2021-02-25 20:29:37 +01:00
Heap Crash cc4210041b [docs] Use older sphinx that doesnt cause recursion errors (#1821)
Per these resources:
* https://github.com/sphinx-doc/sphinx/issues/8119
* https://github.com/sphinx-doc/sphinx/pull/8125

Sphinx 3.4.0 now handles autodoc-skip-member differently, causing us to run
some tests multiple times due to imported code getting tested.
2021-02-25 10:58:44 -05:00
Heap Crash 93316b724d [ci] Disable Android and ADB protocol tests for Dockerfile-based CI (#1822)
These modules are deprecated, so we don't test them anymore, and
the Docker image does not perform any setup to install an Android
SDK or AVD.
2021-02-25 07:18:19 -05:00
Heap Crash 8a6383a55d Refactor dockerfiles for simplicity (#1786)
* Remove likely-unused Dockerfiles, which are not being supported in the future anyway

This leaves base, stable, beta, and dev as the only Dockerfile images

Simplify extra/Docker so that Pwntools is already checked out, and build precedence works

* Base image always gets built first
* Branch-tracking Dockerfiles now require base to be built
* Use locally-checked-out-repo instead of e.g. git+https://github.com/Gallopsled/pwntools@beta
* Install tested with both Python2 and Python3
* Add Python3 user-script directory to $PATH

Update CHANGELOG with Docker changes

Add develop to Makefile, restore old Dockerfiles

Make development target separate, and automatically launch "docker run -it" with suggested arguments

Add develop Dockerfile

* Add README for the Dockerfiles

* Merge dependencies, add NOPASSWD, use hostname localhost to avoid sudo errors

* Better Dockerfile for testing, working on making all of the tests work

* wip

* WORK-IN-PROGRESS

* Remove from pwn import *

* Fix incorrect usage of progress() in SSH

* WIPWIPWIP

* MORE WIP

* [srop] Fix SROP unit tests by allocating enough stack

* [todo] Test canary in MIPS pushstr to make sure tests are actually being run

* [ROP] Make ROP doctests work from Docker and more minimal

* [srop] Simplify SROP imports

* [mips] Simplify MIPS doctest imports

* [corefile] Handle race condition against kernel / qemu

* [web] Handle file permission failure in Docker

* [core] Actually implement timeout

* Revert "[corefile] Handle race condition against kernel / qemu"

This reverts commit e02a3dce19.

* [context] Handle file permission issue in Docker

* [aarch64] Just run the shellcode, dont dump it out

* [tests] Remove test canary from mips pushstr

* [timeout] Use ELLIPSIS for time-flaky tests

* [update] Remove DONT_CHECK_FOR_UPDATES

* [context] Handle another path access error in Docker

* [timeout] Just leave it the way it was, hardly ever fails

* [context] Fix broken test because of quotes

* WIP save Docker stuff just in case

* [mips] Do not replace "asm" in the global scope with doctest

* Clear context between invocations so we dont end up with e.g. 64-bit i386

* [process] Fix timeout to actually work

* [mips] Do not replace "asm" in the global scope with doctest (Part 2)

* [rop] Fix ROP doctests

* [mips] Do not replace "asm" in the global scope with doctest (Part 3)

* Re-add all of the Py2OutputChecker stuff so I can start testing Python2

* Restore libcdb checks

* Tests work on Python2 now with "make -C travis/docker doctest2"

* Handle issue caught by Pylint

* Install pwndbg for the pwntools user

* Add trailing newline

* Remove un-necessary ELLIPSIS

* Add trailing newline

* Convert assert to simple statement

* This is an empty commit for testing webhook integrations

* [travis] Use bash as the default shell

* Commit compiled Dockerfile for use on hub.docker.com

* [gdb] Restore gdb.rst and manually disable doctests from inside Docker container
2021-02-25 11:34:56 +01:00
Heap Crash aa7b6f77a5 Add description= to subcommand parsers (#1814)
The help= does not show up in docs.pwntools.com, but description= does.
2021-02-24 04:16:42 -05:00
heapcrash a3870d3ede Fix typo in docs 2021-02-23 22:32:19 -05:00
heapcrash f716b4e9ff Need to reclaim a Cloudflare page rule, just use the real link 2021-02-23 22:04:06 -05:00
Heap Crash 559543984f Update installation instructions (#1813)
* Note newer Ubuntu versions
* State preference for Python3
* Provide working instructions for Python2 installation due to pip deprecation
* Provide information on command-line tools not being in $PATH
2021-02-23 21:22:45 -05:00
Xeonacid 3acbd0596b Fix feat_req issue template typo (#1809) 2021-02-19 10:19:13 +01:00
heapcrash 4e6ccb0da1 Make Discord invite link consistent and permanent 2021-02-16 23:15:24 -06:00
Arusekk 15f85de4d8 Add links to README (#1798)
* a Discord invite link from Discord #online badge
* a link to relevant GH Actions from GHA status badge
2021-02-16 21:18:27 +01:00
Heap Crash 3b909651aa [android] Skip all Android tests (#1791)
* [android] Skip all Android tests

* Update README to indicate Android tests are no longer supported

* Remove Android AVD setup from GHA setup
2021-02-15 00:43:21 -06:00
Heap Crash 7cc55d039d Add Discord badge (#1796) 2021-02-14 23:57:28 -06:00
Heap Crash c978ad0668 Fix test to use ellipsis, since which() may not return /bin/sh (#1795)
* Fix test to use ellipsis, since which() may not return /bin/sh

* Fix another case where /bin/true may not be used given $PATH

* Fix another absolute path failure in doctests

* Fix another issue where /usr/bin may intercede
2021-02-14 23:40:38 -06:00
Heap Crash 08a96ff859 Fix unreliable test (#1794)
Updated or alternative versions of binutils cannot be relied upon to create
very small versions of ELFs (e.g. when running on macos).

However, we can ensure that the non-symbolized version is SMALLER.
2021-02-14 23:01:33 -06:00
Heap Crash 4cf71b4593 Pin autoprogram to v0.1.5 which supports Python2 (#1793) 2021-02-14 22:14:43 -06:00
Heap Crash ea1301806d Add link to discord server (#1790) 2021-02-14 18:39:00 -06:00
Heap Crash 2086a31954 Re-add Python2 to the various Dockerfiles (#1780)
* Re-add Python2 to the various Dockerfiles

This fixes #1774

* Update CHANGELOG
2021-02-02 06:05:29 -06:00
heapcrash 747d30a3a6 Empty commit to force Docker Hub to rebuild images 2021-01-16 18:03:53 -06:00
Heap Crash 4c390c04d6 [docker] It looks like the symlink was breaking the "base" build, so replace it with the actual file from the Xenial subdirectory (#1768)
Fixes regression introduced in ddf5cdc
2021-01-16 17:39:33 -06:00
152334H 153b35ba68 Remove eval from cli (#1758)
* Remove eval from cli

* fix changelog

* shut up pylint
2021-01-10 16:25:58 +01:00
152334H 2f4c5cbf48 update cache directories (#1757)
* update cache directories

* changelog
2021-01-05 12:46:39 +01:00
Arusekk fd280b266b Fix ROP call miscalculating offsets (#1755) 2021-01-05 12:44:32 +01:00
Tim Gates 281b64bb96 docs: fix simple typo, inforation -> information (#1750)
There is a small typo in pwnlib/elf/corefile.py.

Should read `information` rather than `inforation`.
2020-12-29 11:27:34 +01:00
Andreas Oberritter af80848208 Add baremetal os (#1742)
* Add baremetal os

This allows to run and debug a raw binary, e.g. an MBR, with
the help of qemu-system-$(arch).

Tested with:
pwn.context.arch = "i386"
pwn.context.os = "baremetal"
pwn.gdb.debug(["./mbr.bin"])

* Add changelog entry for 'baremetal' os
2020-12-23 23:32:59 +01:00
naweissandArusekk 9de743810e Add PATH argument to which function (#1738)
* Add PATH argument to which function

* [changelog] Add info on the path argument for which

* Move comment back to original location

* Sort CHANGELOG.md

Co-authored-by: Arusekk <[email protected]>

Co-authored-by: Arusekk <[email protected]>
2020-12-07 20:28:13 +01:00
Arusekk f4237d9b7d Minimal fix in encoders (#1736)
This must have been somehow overlooked before.
2020-12-07 17:06:23 +01:00
Arusekk 52ba4b8a17 Add cpython 3.9 constant opcodes to safeeval (#1735)
* Add cpython 3.9 constant opcodes to safeeval

Closes #1734

* Update CHANGELOG.md
2020-12-07 17:06:06 +01:00
Atte Niemi db8df476b2 Fix typo in pwnlib.util.fiddling.bits docstring (#1730) 2020-11-30 01:06:22 +01:00
Arusekk d796cc7dc0 Fix DynELF issues mentioned by @zachriggle in #1426 (#1719)
https://github.com/Gallopsled/pwntools/pull/1426#discussion_r517086024
2020-11-30 01:05:00 +01:00
Jakub Nowak 679463220f Remove unused import from toplevel (#1731)
`debug` is overwritten by line 82 — `debug   = log.debug`.
2020-11-30 01:04:30 +01:00
Arusekk 145b606a06 Merge branch 'beta' into dev 2020-11-30 00:29:52 +01:00
Arusekk b76d045a40 Release 4.4.0beta1 2020-11-30 00:27:41 +01:00
Arusekk 957a5a5835 Release 4.3.1 2020-11-30 00:26:51 +01:00
Arusekk 2efb5a0a73 Merge branch 'issue-1427' into stable 2020-11-30 00:25:25 +01:00
Arusekk 442fedeef0 Auto-generated files 2020-11-30 00:24:01 +01:00
Arusekk 138188eb1c Fix pwntools shellcraft SSTI vulnerability
This looks like the first major pwntools vuln!
And it even got its own task on Hitcon CTF 2020.

Fixes #1427
2020-11-30 00:23:49 +01:00
Arusekk 5dfcb53964 Apparently python 2 does not have lru_cache. 2020-11-29 14:04:24 +01:00
mephi42andArusekk d466fa9017 Allow using GDB Python API (#1617) (#1695)
Co-authored-by: Arusekk <[email protected]>
2020-11-16 20:43:20 +01:00
Arusekk 0b1f430935 Fix #1261 regression
There is no such thing as rwb in py3 apparently
2020-11-03 23:49:05 +01:00
Ricky ZhouandArusekk 9e76e50c9a Misc run_in_new_terminal improvements. (#1261)
* run_in_new_terminal: Prefer tmux/screen over TERM_PROGRAM and x-terminal-emulator.

* run_in_new_terminal: Kill running commands when the main process exits.

Currently, when a gdb window is opened via gdb.debug(), terminating the
main pwntools process leaves the gdb window/process around. It is
inconvenient to have to close these leftover gdb windows when iterating
on an exploit.

Add a kill_at_exit parameter to run_in_new_terminal() which attempts to
terminate the command at main process exit.

This only works for terminals which do not daemonize, or for tmux, which
supports returning the command's PID.

This change also removes the special case for closing
stdin/stdout/stderr on Mac OS X, as the problem no longer reproduces
under tmux 2.8.

* Fix regression and add CHANGELOG

Co-authored-by: Arusekk <[email protected]>
2020-11-01 20:02:58 +01:00
Arusekk 42b060e48a Improve tubes.ssh test coverage, fix discovered issues (#1711)
* Improve tubes.ssh test coverage, fix discovered issues

* Fix test under py2
2020-11-01 12:46:00 +01:00
Arusekk d98e60e4e5 Revert "alternative to PR #563; this works by simply never emitting CR" (#1716)
This reverts commit 08c8c2e8e4.

Closes #1653
2020-11-01 12:27:16 +01:00
Arusekk 4572f8711a Extend shellcraft forbidden names (#1715)
Closes #1664
2020-10-31 21:51:38 +01:00
Arusekk b6bb1ea17e Don't introduce null bytes in MIPS shellcode. (#1710)
* Don't introduce null bytes in MIPS shellcode.

As a verification, you can run:

```sh
pwn shellcraft mips.linux.sh |pwn phd
```

Closes #807

* Add a test

* Fix doctest under py2
2020-10-28 12:33:25 +01:00
Arusekk 681be1284c Apparently python 2 does not have lru_cache. 2020-10-27 10:09:30 +01:00
Arusekk 40b01582b8 Use caching to avoid being hit by rate limiting
Closes #1708
2020-10-27 09:18:07 +01:00
Arusekk 031b3cbadf Fix races in server tube from #1067 and apply #1569 (#1707) 2020-10-26 22:57:14 +01:00
peace-makerandArusekk 545f8dddd4 Try libc.rip for libc lookup (#1704)
* Try libc.rip for libc lookup

As of #1171 the libcdb repository isn't seeing any updates anymore. When looking up a libc by a hash or build_id try the libc database maintained by @niklasb as well.

The database uses a REST api documented at https://github.com/niklasb/libc-database/blob/master/searchengine/api.yml

* Catch exceptions properly

* Update CHANGELOG

* Add doctests

Co-authored-by: Arusekk <[email protected]>
2020-10-24 13:53:50 +02:00
Allen GuanandArusekk 7aa22dd6f5 Remove data_files (#1643)
Co-authored-by: Arusekk <[email protected]>
2020-10-20 18:17:29 +02:00
Arusekk 447aa551f6 Begin working on 4.5.0 2020-10-20 17:57:56 +02:00
Arusekk e004aa6566 Release 4.4.0beta0 2020-10-20 17:44:56 +02:00
Arusekk 5db149adc2 Release 4.3.0 2020-10-20 17:39:40 +02:00
Arusekk 23f5075d93 Merge branch 'beta' into dev 2020-10-20 17:12:12 +02:00
Arusekk ddb5798b8c Merge branch 'stable' into beta 2020-10-20 15:53:07 +02:00
peace-maker cde51065bf Update libcdb buildid offsets (#1703)
* Update libcdb buildid offsets

Recent libcs from Debian and Ubuntu have different offsets for the build id.

* Update CHANGELOG
2020-10-20 11:52:33 +02:00
Heap CrashandArusekk e47c65c6fc Implement property getter/setter for context.newline, and make tubes honor it (#1541)
* Implement property getter/setter for context.newline, and make tubes honor it

The default newline can now be set context-wide, or per-tube.

* [changelog] Update for 1541

* [docs] Use r-prefix for embedded newlines

Co-authored-by: Arusekk <[email protected]>
2020-10-14 01:08:37 +02:00
Kyle ZengandArusekk d6859eb744 FmtStr module enhancement (#1696)
* use non-greedy operator to handle corner cases where the program output contains END in it

* END can appear in the string leak

Co-authored-by: Arusekk <[email protected]>

Co-authored-by: Arusekk <[email protected]>
2020-10-13 22:33:50 +02:00
Aapo SaaristoandArusekk 79cd784383 Place ROP cache in user's homedir like "regular" cache (#1453)
* Keep ROP cache in user's home like regular cache

I don't have statistics numbers on which would be more likely to be writable, an user's home directory or the OS's temp directory, but seems to me it'd make sense to try and write all caches to the same location.

Optimally this would be easily configurable to allow adjusting to different set-ups, obviously.

* Use cache_dir instead

Co-authored-by: Arusekk <[email protected]>
2020-10-13 19:51:28 +02:00
Mariusz SkoneczkoandArusekk 1c0ca55627 Actually import requests when doing from pwn import * (#1687)
* Actually import `requests` when doing `from pwn import *`

As per documentation, we claim to be importing `requests` globally
(https://github.com/Gallopsled/pwntools/blame/dev/docs/source/globals.rst#L100)

We should actually do this :)

* Update CHANGELOG

Co-authored-by: Arusekk <[email protected]>
2020-10-05 12:49:16 +02:00
Mariusz Skoneczko 1d6aa2e276 Remove python2 shebangs where appropriate (#1692)
* Remove python2 shebangs where appropriate

* Update CHANGELOG.md
2020-10-05 12:32:02 +02:00
Ron a0b3b24984 Fix documentation of #1667 (#1693)
* add parameter max_subs to __init__

(cherry picked from commit d331be51d3bdb791d5d19d9d9b8d60706dddf5fa)

* Beautify doc string

(cherry picked from commit ceebf47a956073eee43efe0a5f6e9399e6a1ec65)

* Fix some typos

(cherry picked from commit 6bbbdcedf4c8ae075c30d01d447c372925f0a29d)

* Update CHANGELOG.md

* Revert changelog

https://github.com/Gallopsled/pwntools/pull/1693#discussion_r499236894

* Trigger CI
2020-10-05 11:08:53 +02:00
Arusekk 26ccb97f63 Speak as simple as it can be (#1694)
Fixes #1434
2020-10-04 22:42:59 +02:00
Arusekk 23ac852023 Make bruteforcewrap picklable (#1685)
Closes #1665
2020-10-01 20:08:51 +02:00
Mariusz SkoneczkoandArusekk bcb6e066aa Add __setattr__ and __call__ interfaces to ROP for setting registers (closes #1636) (#1688)
* Implement ROP.__call__ shorthand for setting registers

* Fix broken doctests by ensuring they set context.arch

* Implement ROP.__setattr__ shorthand for setting registers

* Update CHANGELOG.md

Co-authored-by: Arusekk <[email protected]>
2020-10-01 20:07:45 +02:00
152334H 2a5aac1101 ROPGadget multibr hotfix (#1682)
* fix --multibr issue

* modify changelong

* In which I learn how to count

* put doctest for ROP().syscall in unfortunate place

* fix context malapropism
2020-10-01 19:50:44 +02:00
RonandArusekk dc8d0e310c I386 ascii shellcode (#1667)
* Add module ascii_shellcode

* Add doctests

* Make the ascii_shellcode module accessible from pwn star import

* Remove unused imports

* Update docstr

* Update CHANGELOG.md

* Also test private functions

* Undo accidental modification of CHANGELOG.md

* Fix python 2

* Fix python 2 doctests

* Use bytes object in doctests instead of converting from/to hex strings

* Add doctest to shellcraft>asciify>run shellcode

* Move to pwnlib.encoders.i386

* Fix python 2

* Apply some of the suggestions from Arusekk's code review

Co-authored-by: Arusekk <[email protected]>

* Fix some broken code from the suggestions

https://github.com/Gallopsled/pwntools/pull/1667#discussion_r491699166
https://github.com/Gallopsled/pwntools/pull/1667#discussion_r491700154
https://github.com/Gallopsled/pwntools/pull/1667#discussion_r491700397

* Beautify code by using bytearrays everywhere

https://github.com/Gallopsled/pwntools/pull/1667#discussion_r491698062
https://github.com/Gallopsled/pwntools/pull/1667#discussion_r491701007
https://github.com/Gallopsled/pwntools/pull/1667#discussion_r491700313
https://github.com/Gallopsled/pwntools/pull/1667#discussion_r491700853
https://github.com/Gallopsled/pwntools/pull/1667#discussion_r491698916
https://github.com/Gallopsled/pwntools/pull/1667#discussion_r491699243

* Fix python2 doctests

Forgot to update a few doctests to use bytearrays instead of bytes

* Try to improve test coverage

Test correctness of avoid parameter processing

* Remove unused imports

Co-authored-by: Arusekk <[email protected]>
2020-09-26 10:59:21 +02:00
152334H 72ca730f4b ROPGadget multibr (#1678)
* ROPGadget multibr

* Update CHANGELOG.md

* Fix docstrings to match
2020-09-19 16:09:05 +02:00
Jan Mazur 6b7c3d99c4 Gdbserver now correctly accepts multiple libraries in LD_PRELOAD and LD_LIBRARY_PATH (#1675)
* Gdbserver now correctly accepts multiple libraries in LD_PRELOAD and
LD_LIBRARY_PATH.

* modify changelog
2020-09-17 19:23:02 +02:00
152334H 4dec08b4bd ROP: add base= argument for .chain() and .dump() (#1673)
* Allow using specific base for ROP.chain() and ROP.dump()

* Update CHANGELOG.md
2020-09-13 20:32:29 +02:00
Jacopo Tediosi 9ccf404dde Wrong doc for recvline_endswith() (#1661)
* Wrong doc of recvline_endswith()

* Fixed "see also" link
2020-08-29 20:10:23 +02:00
magrasandArusekk 4b5969f582 Fix syscall instruction lists for SROP on i386 and amd64 (#1669)
All three instructions: `int 0x80`, `sysenter`, and `syscall` require
different stack frames and registers to pass arguments, but
`ROP._srop_call` uses them interchangeably.

This fix limits syscall instruction lists to gadgets that work.

Co-authored-by: Arusekk <[email protected]>
2020-08-29 14:24:52 +02:00
magras fb2bf934ac Fix migration to another ROP (#1668) 2020-08-29 14:22:32 +02:00
Arusekk df76e24e7c Fix SSL timeout error on py2 (#1660)
Turns out that python 2 does not raise correct socket.timeout, but
SSLError instead.  With no errno.  Just a message that might be
localized in some circumstances.

**THIS IS NOT THE ONLY TIME PYTHON 2 IS CAUSING PROBLEMS.**
Time to stop using it, dear exploit developers.  It is dead now.
But here you are: the simple fix.

Closes #1356
2020-08-17 18:37:37 +02:00
Arusekk f98c4fbe2a Disable term if initialization fails (#1659)
Closes #1658
2020-08-17 18:37:13 +02:00
Heap Crash 9e0aa3200c [docker] Upgrade Docker images of Pwntools to use Python3 (#1654)
* [docker] Upgrade Docker images of Pwntools to use Python3

Also installs qemu-user-static and various binutils packages for building (binutils)
and running (qemu) cross-arch binaries.

Fixes #1500

* Update CHANGELOG

* Switch to Python3 for stable/beta/dev Docker images

* [changelog] Add missing links
2020-07-29 23:56:06 -05:00
Heap Crash 8080af8866 [shellcraft] Avoid recursive walk of all templates for command line (#1651)
* [shellcraft] Avoid recursive walk of all templates for command line

Fixes #1650

* Avoid double-fetch

* Add changelog

* [pylint] Only warn for additions
2020-07-27 19:24:31 -05:00
peace-maker f227796a09 Fix detection of WSL2 to open new terminal (#1646)
The osrelease is e.g., `4.19.104-microsoft-standard` in WSL2. microsoft being lowercase. Ignore casing for detection.
2020-07-25 10:36:14 +02:00
Mrmaxmeier b6fc0f3536 tubes/remote: Support Server Name Indication and enable by default (#1644)
* tubes/remote: Support Server Name Indication and enable by default

This allows customizing the server_name via sni="custom" or sending the
name specified in the host parameter via sni=True.

We switch to the SSLContext.wrap_socket API because ssl.wrap_socket is
deprecated and does not support SNI.

Unfortunately, SSLContext.wrap_socket dropped some of the parameters
that are supported by ssl.wrap_socket. These parameters have been moved
to the SSLContext API and can now be used by passing a custom SSLContext
to the ssl_context parameter of `remote`.

* update CHANGELOG.md
2020-07-25 10:31:13 +02:00
Heap Crash 556685e150 [ci] Disable pwnlib.ui tests for branch dev (#1647)
These still run for all other branches and tags
2020-07-22 01:39:04 -05:00
Arusekk eb60b5d6b6 Enhance gdb error message when unable to launch binary (#1614)
* Enhance gdb error message when unable to launch

A common issue is when the binary is not executable,
or the binary is simply missing.

* Use six.ensure_str
2020-07-11 23:39:24 -05:00
Heap Crash 84a139f55b [template] Drop into a shell if downloading the file fails (#1633)
* [ssh] An error should be thrown when download fails, not a silent failure

* [changelog] Add to changelog
2020-07-11 23:38:40 -05:00
Heap Crash 70f3b6fa79 [tests] Change test slightly so that failing output will be emitted (#1634)
* [tests] Change test slightly so that failing output will be emitted

* Disable flaky UI test on Github Actions

* [ui] Try a sleep rather than disabling tests
2020-07-11 23:37:54 -05:00
Arusekk 2d45903ee3 Merge branch 'beta' into dev 2020-07-11 16:26:10 +02:00
Arusekk baa4fc5a9f Merge branch 'stable' into beta 2020-07-11 16:12:03 +02:00
Heap Crash a8d34166c4 [ci] Prevent And-roid AVD tests from running every force-push (#1641)
Dash is to prevent triggering installation due to And-roid reference
2020-07-10 13:33:52 -05:00
Heap Crash a6edf2689d [ci] Add pylint stage (#1640) 2020-07-10 13:25:53 -05:00
heapcrash 3940631e21 Silence module-not-imported warning from coverage 2020-07-10 12:29:34 -05:00
heapcrash 7141e93243 Merge branch 'beta' into dev 2020-07-10 12:26:04 -05:00
heapcrash 53ecb27948 [six] Add missing imports to six 2020-07-10 12:09:57 -05:00
Heap Crash f1d8d5b8fe [term] Automatically set PWNLIB_NOTERM when running inside Jupyter (#1632)
* [term] Automatically set PWNLIB_NOTERM when running inside Jupyter

* [changelog] Update changelog
2020-07-10 00:58:52 -05:00
ArusekkandHeap Crash 48a482df24 Enhance tubes.ssh bytes handling (#1602)
* Enhance tubes.ssh bytes handling

Closes #1437

* Add tests

* grep is actually nasty

* Update CHANGELOG.md

Co-authored-by: Heap Crash <[email protected]>
2020-07-10 00:37:21 -05:00
Heap Crash 08ab1b6adf [docs] Add a link to the tutorials (#1631) 2020-07-10 00:29:58 -05:00
Jakub KądziołkaandArusekk 2c33601a86 Add a bfdname for msp430 to make asm and disasm work (#1606)
* Add a bfdname for msp430 to make asm and disasm work

* Add a bfdname for s390 to make asm and disasm work for all architectures

* Add tests for new bfdnames

* ci: Add binutils for newly-tested architectures

Co-authored-by: Arusekk <[email protected]>
2020-07-08 01:15:46 +02:00
Arusekk 55552cd6a2 Merge branch 'beta' into dev 2020-07-07 22:01:20 +02:00
Asger Hautop Drewsen 7e0e644564 Fix cyclic cli for 64 bit integers (#1616)
* Fix cyclic cli for 64 bit integers

* Update changelog

* Use bytes instead of word_size
2020-07-07 21:48:28 +02:00
Arusekk 8b1c25f441 Fix python2 regression from #1608 (#1629)
Closes #1627
2020-07-05 18:49:10 -05:00
Jakub Kądziołka ca06098649 Fix documentation formatting for pwnlib.util.packing.flat (#1624) 2020-07-03 23:30:28 -05:00
heapcrash d2b0a5913b [changelog] Update release date and version list 2020-07-03 20:31:52 -05:00
heapcrash 2fafbfb291 Merge branch 'beta-staging' into dev 2020-07-03 20:13:35 -05:00
Heap Crash 08d900994d [changelog] Update changelog for new release (#1626) 2020-07-03 20:13:17 -05:00
heapcrash 427066d937 [memleak] Fix missing import 2020-07-03 20:12:32 -05:00
heapcrash db0312e0fe Merge branch 'stable' into beta-staging 2020-07-03 19:48:48 -05:00
heapcrash 0337387f97 Add Python3 to supported languages for PyPi 2020-07-03 19:45:49 -05:00
heapcrash 6afccefb01 Merge branch 'beta' into dev 2020-07-03 19:42:03 -05:00
heapcrash db7312b43f Merge branch 'stable' into beta 2020-07-03 19:41:45 -05:00
heapcrash 89e3f2bee0 [dev] Version bump for dev 2020-07-03 19:39:19 -05:00
heapcrash 7b130aec79 [4.3.0] dev is now beta 2020-07-03 19:24:47 -05:00
heapcrash 13960bac08 Merge branch 'beta' into dev 2020-07-03 19:08:00 -05:00
Kyle Zeng 230a42ffc0 OSError is not subscriptable (#1608) 2020-07-02 22:37:20 +02:00
Heap Crash 31465d7570 Permit negative indices in fit() and flat() (#1621)
* [packing] Support negative indices for flat() and fit()

Fixes #1531

* [changelog] Add Changelog for PR

* [packing] Only take negative path if there are any

min([]) is not valid Python

* [packing] Move out_negative to a higher scope
2020-06-30 02:02:36 -05:00
heapcrash 07c7dd6242 Merge branch 'beta' into dev 2020-06-29 23:56:01 -05:00
heapcrash 6f8319519b Merge branch 'beta' into dev 2020-06-29 20:22:46 -05:00
heapcrash 3469f4a4f7 [changelog] Fix release schedule 2020-06-27 20:33:27 -05:00
heapcrash b22e3e611d [changelog] Fix release schedule 2020-06-27 20:33:12 -05:00
Heap Crash 3be97b7ab5 [pwn template] Permit --password in addition to --pass (#1613)
* [pwn template] Permit --password in addition to --pass

* Add to CHANGELOG
2020-06-27 20:31:19 -05:00
Heap Crash 1a9dce025f [asm] Fix disasm() for mips64, powerpc64, sparc64 (#1603)
* [asm] Fix disasm() for mips64, powerpc64, sparc64

Closes #1564

* [asm] Add tests for disasm on mips/powerpc/sparc 64-bit

* [asm] Find powerpc, sparc, mips utilities even for 64-bit variants

* [asm] Remove leftover debug trace

* [ci] Add Sparc64 binutils

* [changelog] Add entry
2020-06-27 20:30:49 -05:00
heapcrash cbb57c0148 [example] Add ssh.process to example code 2020-06-27 19:24:34 -05:00
Arusekk 92810cbeb2 Follow-up after #1611 2020-06-28 01:22:15 +02:00
Arusekk 039f2439b5 Don't pollute global namespace
Fixes #1611
2020-06-28 01:16:13 +02:00
Arusekk a190726caf Type fix 2020-06-28 01:13:32 +02:00
heapcrash 745f8e7716 Merge branch 'beta' into dev 2020-06-27 15:52:49 -05:00
heapcrash a3bf833a9a Merge branch 'beta' into dev 2020-06-26 18:06:21 -05:00
Heap Crash f2cb7babcf [docker] Get Travis CI dockerfile working more (#1607)
* [docker] Get Travis CI dockerfile working more

* [docker] Do not upgrade all packages, only update if required

* [docker] Move requirements installation higher up before the copy
2020-06-26 17:22:26 -05:00
Saullo Carvalho Castelo Branco ce0966d186 Add to fiddling.hexdump a way to suppress the total at the end (#1605)
* Add `total=` argument to `hexdump` and `hexdump_iter`

* Update `hexdump` docstring

* Add PR to CHANGELOG.md
2020-06-24 11:44:14 +02:00
heapcrash d143af398e Merge branch 'beta' into dev-staging 2020-06-23 20:56:10 -05:00
Heap Crash a1b0ff6b29 Fix extremely verbosel logging of environment when no changes were made (#1592)
* Fix extremely verbosel logging of environment when no changes were made

* [changelog] Update changelog for #1592

Fixes #1448
2020-06-23 11:05:58 -05:00
Heap Crash 1b130cfe5d [ci] Delete foo-staging branch after merging and pushing foo (#1600) 2020-06-23 11:04:55 -05:00
Arusekk c3e39f57f8 Code style enhancements and less sphinx warnings (#1570)
* Fix several sphinx warnings

* Several code style fixes

Mostly grep -Er '[=!]= (None|True|False)'

* Compile-time str concat

also reduced redundant characters at line ends

* Fix python2 toplevel regression

* No equality comparison with singletons again

* Clarification: lambda: [] is just list

* Reintroduce reverted fragment
2020-06-23 11:04:19 -05:00
heapcrash ede4ed13e0 [ci] Add NOTERM to invocation 2020-06-23 11:03:16 -05:00
heapcrash 316cf359c1 [pwn version] Include branch name in output 2020-06-23 11:03:16 -05:00
heapcrash 343dff5c51 [changelog] Update dev changelog 2020-06-23 11:03:16 -05:00
heapcrash a0d61dcea5 [ci] Add "pwn version" step during CI 2020-06-23 11:03:16 -05:00
heapcrash f02e5b5e45 [pwn[ Add "pwn version" command to show installed version 2020-06-23 11:03:16 -05:00
heapcrash c293318cbd [ci] Re-enable Corefile tests on Github Actions 2020-06-22 23:52:48 -05:00
heapcrash ddf5cdcb3f [docker] Update Docker images to use Bionic 2020-06-22 22:23:58 -05:00
heapcrash 761d446fa3 Add to changelog 2020-06-22 20:18:17 -05:00
heapcrash 5e012ebf95 [ui] Colorize output of "pwn template" if it is a TTY 2020-06-22 20:18:17 -05:00
heapcrash 7d6cb3f61f Merge branch 'beta' into dev
Conflicts:
	CHANGELOG.md
	pwnlib/util/proc.py
2020-06-21 20:59:23 -05:00
Saullo Carvalho Castelo Branco a414d788fe Add PR #1576 to CHANGELOG.md (#1588) 2020-06-17 20:51:41 -05:00
Saullo Carvalho Castelo Branco 4134e60c8d Add jmp_esp/jmp_rsp attribute to ROP (#1584) 2020-06-17 15:51:20 -05:00
heapcrash 88084975ad [GHA] Add workflow to require modifications to CHANGELOG.md 2020-06-16 19:31:01 -05:00
heapcrash 4b14e27523 Ask users to update the changelog in the Pull Request template 2020-06-16 19:31:01 -05:00
heapcrash 45eb8bcc81 Re-enable UI tests in Github Actions
I suspect this will not work because of curses failing to initialize in GHA
2020-06-15 23:28:47 -05:00
Arusekk 8b6e6ed67d Enhance py2 32-bit archs support
This was a quick `grep -r isinstance | grep '\<int\>'`
2020-06-15 23:28:32 -05:00
Arusekk 18a7a9458c Ensure tag matches files version 2020-06-15 23:14:03 -05:00
Arusekk 3cca881881 Cyclic CLI functionality 2020-06-15 23:12:29 -05:00
Arusekk 2a68da3dad More coverage 2020-06-15 23:12:29 -05:00
Arusekk 9f5b24d889 Move socket matching to util.net. 2020-06-15 23:12:15 -05:00
Arusekk e9b24a6159 Add support fox mixed-stack connections in proc 2020-06-15 23:12:15 -05:00
Arusekk 39a3b2e8ff Use dual-stack sockets when family is 'any'
Also a minor cleanup in sock.py.
Tested on Linux and FreeBSD.
Closes #1552
2020-06-15 23:12:15 -05:00
ShiftCrops 09caa4ba63 add ".plt.sec" to search section (#1577)
* add .plt.sec to search section

* add test ELFs for .plt.sec
2020-06-14 12:13:00 +02:00
Saullo Carvalho Castelo Branco a0eeb30e0b Add executable= argument to ELF.search (#1576)
* Add `executable=` argument like `writable=` to ELF.search

* Add doctest using ELF.search with `executable = True`

* Fix `__next__()` issue.
2020-06-11 22:10:06 +02:00
jlewis200andArusekk f1628b80fe Update pwnlib/gdb.py
Identity comparison

Co-authored-by: Arusekk <[email protected]>
2020-06-07 19:05:34 -05:00
jlewis200 5c65b8a03e gdb.debug() environment variables fix
If passed an empty dictionary defining the environment variables, the process invoked by gdb.debug() has environment variable 'PWD' set to the directory containing the executable.  This behaviour is not observered when NOPTRACE is enabled:  the program runs without any environment variables set.  Similarly, if an empty environment variable dictionary is passed to process(), it appears to also run under a truly empty environment.  Additionally, attempts to overwrite the "PWD" environment variable with a dictionary entry are not successful under gdb.debug().

This fix brings the gdb.debug() treatment of environment variables in line with and process() and gdb.debug() with NOPTRACE enabled. 
 It allows both empty environments, and overwriting of the 'PWD' environment variable.
2020-06-07 19:05:34 -05:00
heapcrash c2a61b30db [README] Update Twitter badge to include follower count 2020-06-07 14:01:00 -05:00
heapcrash 82a7074d86 [README] Add Coveralls badge logo 2020-06-07 13:58:56 -05:00
heapcrash 8a21b0306d [README] Urlencode badge URL 2020-06-07 13:57:40 -05:00
heapcrash c0afb8ef29 [README] Add Travis logo to Travis CI build badge 2020-06-07 13:56:16 -05:00
heapcrash baed2d5bbc [README] Add Github Workflow status badge 2020-06-07 13:54:02 -05:00
heapcrash cccbc4555c [docs] Add Ubuntu 20.04, remove 12.04 2020-06-07 13:18:38 -05:00
heapcrash df3835a611 [docs] Version should come before docs 2020-06-07 13:17:23 -05:00
heapcrash 758b86c4b0 [docs] Reformat filepointer documentation 2020-06-07 13:15:52 -05:00
heapcrash 16f8c419bc Remove unused update_demo.sh script 2020-06-07 12:27:26 -05:00
heapcrash 1eca50e421 [changelog] Update 4.1.2 2020-06-07 12:24:52 -05:00
heapcrash d2e84c1a30 [travis] Update CI image in README.md 2020-06-07 12:21:49 -05:00
heapcrash 1c1615da2f [docs] Update FmtStr documentation to use pre-compiled binary 2020-06-06 17:58:44 -05:00
heapcrash cb4e01b4df [docs] Make the ret2dlresolve documentation useful 2020-06-06 17:58:44 -05:00
heapcrash 00f65f2c53 [docs] Remove compilation step from ret2dlresolve 2020-06-06 17:58:44 -05:00
heapcrash ac2522fe91 [GHA] Remove dependencies on cross-arch compilers 2020-06-06 17:58:44 -05:00
heapcrash 82f20b28cf [travis] Use gcc-multilib for i386/amd64 compilation 2020-06-06 17:58:44 -05:00
heapcrash fd8ed5883e [travis] Enable IPv6 interfaces, fixes net.interfaces() test 2020-06-06 17:58:44 -05:00
heapcrash 5fea8d25a8 [docs] Fix __doc__ block indentation 2020-06-06 17:58:44 -05:00
heapcrash 01fb378320 [docs] Fix warnings generated during "make doctest" 2020-06-06 17:58:44 -05:00
heapcrash 3f8c92b233 [docs] Silence warning generated by Sphinx about missing code-block language 2020-06-06 17:58:44 -05:00
heapcrash c846f94c8e [shellcraft] Update loader_append examples to build ELFs on the fly
This removes our dependencies against having various compilers installed
2020-06-06 17:58:44 -05:00
Jakub Kądziołka a5bf7c50f4 Make AVR's binutils detection strategy a fallback for all architectures 2020-06-06 14:45:47 -05:00
Jakub Kądziołka 8066b2353b Specify the _bfdname for AVR 2020-06-06 14:45:47 -05:00
Jakub Kądziołka b81c61cae4 Detect AVR binutils
Both Debian and Ubuntu provide a `binutils-avr` package, which contains
an assembler for AVR as `avr-as`. However, pwntools was looking for
something with `linux` in the name, such as `avr-linux-gnu-as`. Of course,
such a target triplet is nonsense, Linux does not run on AVRs
(apart from that one hack that actually emulated some other CPU which
therefore doesn't count).
2020-06-06 14:45:47 -05:00
heapcrash 54d3f674e1 [GHA] Move the lint step to its own workflow 2020-06-05 20:53:19 -05:00
heapcrash 14f5ab6b90 Merge branch 'beta' into dev 2020-06-05 20:26:07 -05:00
Heap Crash 555dec78d9 Recommend people use "pip install --upgrade pwntools" (#1558)
We should not encourage most users to use the `dev` branch
2020-06-05 23:07:16 +02:00
heapcrash 267879c91a Set timeout to 30 minutes 2020-06-05 14:34:49 -05:00
Arusekk 2d48220165 Enhance the tests 2020-06-05 11:05:04 +02:00
Arusekk 4d9242ae89 Merge branch 'beta' into dev 2020-06-05 10:50:59 +02:00
heapcrash fae86c3dec Remove demo link
Fixes #1495
2020-06-05 01:52:07 -05:00
heapcrash 24211219d8 Use tmux or screen if the environment variables are present, even if we detect an X11 terminal.
See #1261 for original comments
2020-06-05 01:47:16 -05:00
Yonghwi Jin 2c0d63b569 Cache iter_symbols and iter_sections 2020-06-05 01:41:35 -05:00
heapcrash e254c5fa62 Increase fetch depth to 100 to increase cache hits
AVD installation is one of the longest parts of the CI process
2020-06-05 01:20:19 -05:00
heapcrash aba16247b4 Add workaround for #1538 until Unicorn is fixed 2020-06-05 01:19:28 -05:00
Heap Crash 6fc0914dc0 Convert logging status messages to text (#1540)
Fixes #1510
2020-06-05 01:08:32 -05:00
Heap Crash 8137494932 Make Github Actions pass, even if we have to disable some things (#1546)
* Disable corefile tests for Github Actions

* Disable the UI tests, as theyre broken

* Install gdbserver

* Rename step

* Remove SIGALARM to see if it fixes tests

* Set PWNLIB_NOTERM for command-line runs
2020-06-05 00:41:48 -05:00
Arusekk baad3927b9 Merge branch 'beta' into dev 2020-06-04 00:00:35 +02:00
Arusekk 94647d6c10 Merge branch 'beta' into dev 2020-06-03 23:32:08 +02:00
mauricesvp e1aedff092 remove unused argument and add missing documentation 2020-05-31 01:45:46 -05:00
Antinomique 8a2b77131e Repair download_dir 2020-05-29 15:23:00 -05:00
heapcrash b5dd858897 Update issue templates 2020-05-29 15:19:00 -05:00
heapcrash 70d42fb076 Update issue templates 2020-05-29 15:15:57 -05:00
heapcrash 9ede4b8eea Add "Question" issue template 2020-05-29 15:08:10 -05:00
laydervus d944a9ec68 __str__ to __bytes__ in python2 (#1521) 2020-05-29 11:50:38 +02:00
Jinmo bbd82ac6fe Initialize unicorn outside loop in plt emulation (#1515) 2020-05-28 23:17:01 +02:00
layderv 4439849d66 ROP representation with short chars (#1505)
Closes #1494
2020-05-28 15:33:13 +02:00
Sacha KOZMA 061d0fd953 Take numbwritten bytes into account in FmtString (#1471)
The number of bytes already written is now taken into account when executing format string writes.
2020-05-27 23:06:46 +02:00
Bruce Chen 43c4eef53b Fix CHANGELOG.md (#1504)
* Fix bunch of invalid PR/commit link  
* Merge two 3.12.1 into one 3.12.1  
* Add 3.12.2
2020-05-27 22:14:20 +02:00
peace-maker ef40a31ac8 Support opening of new windows in WSL (#1503)
Detect if pwntools is running in a Windows Subsystem for Linux "VM" and set the terminal to open a new `cmd.exe` window on the host.

This replaces the need to add `context.terminal = ['cmd.exe', '/c', 'start', 'ubuntu', 'run']` to every script.

Debugging using `gdb.attach` under WSL with gdb in a new window out of the box!
2020-05-27 22:11:01 +02:00
Arusekk 59ce329431 Begin working on 4.3.0 2020-05-08 14:27:09 +02:00
809 changed files with 32680 additions and 7299 deletions

No files matched your search

+3 -2
View File
@@ -7,5 +7,6 @@ omit =
source =
pwn
pwnlib
~/.pwntools-cache-2.7/
~/.pwntools-cache-3.8/
~/.cache/.pwntools-cache-2.7/
~/.cache/.pwntools-cache-3.8/
disable_warnings = module-not-imported
+1 -1
View File
@@ -12,7 +12,7 @@ Thanks for contributing to Pwntools! Ideas from the community help make Pwntoo
If you've got an idea for a new feature, please provide information about:
* What the feature does
* Why the feature should exit
* Why the feature should exist
* What tests should be included
If you think you can write the feature yourself, please submit a Pull Request and we can review your changes!
+60
View File
@@ -0,0 +1,60 @@
name: Android Tests
on: [push, pull_request]
jobs:
android-test:
strategy:
matrix:
python-version: [3.8]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
timeout-minutes: 30
steps:
- uses: actions/checkout@v2
- name: Cache for pip
uses: actions/cache@v1
id: cache-pip
with:
path: ~/.cache/pip
key: ${{ matrix.os }}-cache-pip
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python-version }}
- name: Install Linux dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends -o Acquire::Retries=3 \
gdb gdbserver socat \
qemu-user-static \
binutils-aarch64-linux-gnu \
binutils-arm-linux-gnueabihf \
libc6-dbg \
openjdk-8-jre-headless
- name: Install Android AVD
run: |
USER=travis source travis/setup_avd.sh
sed -i 's/skip_android = True/skip_android = False/' docs/source/conf.py
set | egrep '^(ANDROID|PATH)' >.android.env
- name: Install dependencies
run: |
pip install --upgrade pip
python setup.py egg_info
pip install --upgrade --editable .
- name: Sanity checks
run: PWNLIB_NOTERM=1 python -c 'from pwn import *; print(pwnlib.term.term_mode)'
- name: Install documentation dependencies
run: pip install -r docs/requirements.txt
- name: Coverage Doctests (Android Only)
run: |
source .android.env
PWNLIB_NOTERM=1 coverage run -m sphinx -b doctest docs/source docs/build/doctest docs/source/adb.rst
+2 -2
View File
@@ -4,7 +4,7 @@ env:
GITHUB_BASE: origin/${{ github.event.pull_request.base.ref }}
jobs:
build:
check:
strategy:
matrix:
os: [ubuntu-latest]
@@ -20,7 +20,7 @@ jobs:
if git log --stat ${GITHUB_BASE}..HEAD | grep CHANGELOG.md; then
echo 'Changelog updated :D'
else
if git log --stat ${GITHUB_BASE}..HEAD | grep '++\|--'; then
if git log --stat ${GITHUB_BASE}..HEAD pwnlib pwn | grep '++\|--'; then
echo 'Major changes detected, changelog required!'
false
else
+59 -44
View File
@@ -14,8 +14,10 @@ jobs:
with:
fetch-depth: 0
- name: Git History 2
run: git log --oneline --graph -10
- name: Git History
run: |
git fetch origin
git log --oneline --graph -10
- name: Cache for pip
uses: actions/cache@v1
@@ -42,28 +44,7 @@ jobs:
[ "$vsetup" = "$vpwnlib" ]
[ "$GITHUB_TAG" = "$vsetup" ]
- name: Detect whether java is needed
id: java-needed
env:
GITHUB_REF: ${{ github.event.ref }}
GITHUB_COMMIT_RANGE: ${{ github.event.before }}...${{ github.event.after }}
run: |
if echo "$GITHUB_REF" | grep -Eq 'staging|tags'; then
echo "Found release or important branch ($GITHUB_REF), forcing tests."
elif ! git show "$GITHUB_COMMIT_RANGE" >/dev/null; then
echo 'Incorrect commit range, forcing android tests.'
elif git log --stat "$GITHUB_COMMIT_RANGE" | grep -iE 'android|\<adb\>'; then
echo 'Found Android-related commits, forcing tests.'
else
# clear files that cause Android doctests
: > docs/source/adb.rst > docs/source/protocols/adb.rst
exit 0
fi
echo ::set-output name=need::openjdk-8-jre-headless
- name: Install Linux dependencies
env:
ANDROID_JRE: ${{ steps.java-needed.outputs.need }}
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends -o Acquire::Retries=3 \
@@ -73,16 +54,50 @@ jobs:
binutils-aarch64-linux-gnu \
binutils-arm-linux-gnueabihf \
binutils-mips-linux-gnu \
binutils-msp430 \
binutils-powerpc-linux-gnu \
binutils-s390x-linux-gnu \
binutils-sparc64-linux-gnu \
gcc-multilib \
libc6-dbg \
$ANDROID_JRE
- name: Install android avd
if: steps.java-needed.outputs.need
libc6-dbg
- name: Cache for elfutils
uses: actions/cache@v1
id: cache-elfutils
with:
path: ~/.cache/elfutils
key: ${{ matrix.os }}-cache-elfutils
# Install newer elfutils version due to regression in 0.176 available in focal.
- name: Install newer elfutils
env:
ELFUTILS_VERSION: 0.181
run: |
USER=travis source travis/install.sh
set | egrep '^(ANDROID|PATH)' >.android.env
if [[ ! -d ~/.cache/elfutils/elfutils-${ELFUTILS_VERSION} ]]
then
wget -O /tmp/elfutils-${ELFUTILS_VERSION}.tar.bz2 https://sourceware.org/elfutils/ftp/${ELFUTILS_VERSION}/elfutils-${ELFUTILS_VERSION}.tar.bz2
mkdir -p ~/.cache/elfutils && cd ~/.cache/elfutils
tar -xf /tmp/elfutils-${ELFUTILS_VERSION}.tar.bz2
cd elfutils-${ELFUTILS_VERSION}
LDFLAGS=-Wl,-rpath=/usr/local/lib,--enable-new-dtags ./configure --disable-libdebuginfod --disable-debuginfod && make && sudo make install
else
cd ~/.cache/elfutils/elfutils-${ELFUTILS_VERSION}
sudo make install
fi
eu-unstrip --version
- name: Install RPyC for GDB
run: |
sudo apt-get install -y python3-pip
/usr/bin/python3 -m pip install rpyc
- name: Testing Corefiles
run: |
ulimit -a
ulimit -c unlimited
cat /proc/sys/kernel/core_pattern
cat /proc/sys/kernel/core_uses_pid
( cd $(mktemp -d); sh -c 'kill -11 $$' || true; ls -la ./*core* /var/crash/*.crash /var/lib/apport/coredump/core*) || true
- name: Set up SSH
run: |
@@ -91,44 +106,43 @@ jobs:
- name: Install dependencies
run: |
pip install --upgrade pip
pip install --upgrade wheel
pip install --upgrade flake8 appdirs
python setup.py egg_info
pip install --upgrade --editable .
- name: Sanity checks
run: PWNLIB_NOTERM=1 python -c 'from pwn import *; print(pwnlib.term.term_mode)'
run: PWNLIB_NOTERM=1 python -bb -c 'from pwn import *; print(pwnlib.term.term_mode)'
- name: Install documentation dependencies
run: pip install -r docs/requirements.txt
- name: Disable broken tests
run: |
rm -f docs/source/elf/corefile.rst
- name: Manually install non-broken Unicorn
run: pip install unicorn==1.0.2rc3
- name: Disable yama ptrace_scope
run: |
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope # required by some gdb doctests
- name: Coverage doctests
run: |
source .android.env || :
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope # required by some gdb doctests
PWNLIB_NOTERM=1 coverage run -m sphinx -b doctest docs/source docs/build/doctest
PWNLIB_NOTERM=1 python -bb -m coverage run -m sphinx -b doctest docs/source docs/build/doctest
- name: Coverage running examples
run: |
export TERM=linux
set -x
python travis/coverage_chdir.py examples/fmtstr examples/fmtstr/exploit.py
python travis/coverage_chdir.py examples/fmtstr examples/fmtstr/exploit2.py || : # can fail randomly?
coverage run examples/asm.py
coverage run examples/asm.py
coverage run examples/text.py
python -bb travis/coverage_chdir.py examples/fmtstr examples/fmtstr/exploit.py
python -bb travis/coverage_chdir.py examples/fmtstr examples/fmtstr/exploit2.py || : # can fail randomly?
python -bb -m coverage run examples/asm.py
python -bb -m coverage run examples/asm.py
python -bb -m coverage run examples/text.py
# for f in examples/sigreturn_corefile_*.py; do coverage run "$f"; done # XXX something is wrong
- name: Coverage running commandline tools
run: |
export TERM=linux
pwn() { ( set +x; cmd=$1; shift; PYTHONUNBUFFERED=1 exec coverage run -m pwnlib.commandline."$cmd" "$@" ) }
pwn() { ( set +x; cmd=$1; shift; PYTHONUNBUFFERED=1 exec python -bb -m coverage run -m pwnlib.commandline."$cmd" "$@" ) }
set -x
pwn cyclic 32
@@ -199,6 +213,7 @@ jobs:
TARGET=${BRANCH%-staging}
git branch -f "$TARGET"
git push origin "$TARGET"
git push origin --delete "$BRANCH"
pypi:
runs-on: ubuntu-latest
+8 -6
View File
@@ -11,9 +11,6 @@ jobs:
timeout-minutes: 30
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Cache for pip
uses: actions/cache@v1
id: cache-pip
@@ -26,8 +23,13 @@ jobs:
with:
python-version: ${{ matrix.python-version }}
- name: Lint
- name: Critical lint
run: |
pip install flake8
flake8 . --count --select=E9,F63,F7 --show-source --statistics --exclude=android-?dk # TODO: Add F82
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics --exclude=pwnlib/constants,android-?dk,.git,__pycache__
flake8 . --count --select=E9,F63,F7,E71 --show-source --statistics --exclude=android-?dk # TODO: Add F82
- name: Style lint
run: |
flake8 pwnlib setup.py docs travis --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
flake8 examples --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics --ignore='F403,F405'
flake8 pwn --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics --ignore='F401,F403,F405'
+37
View File
@@ -0,0 +1,37 @@
name: PyLint
on: [pull_request]
jobs:
build:
strategy:
matrix:
python-version: [3.8]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
timeout-minutes: 30
steps:
- uses: actions/checkout@v2
- name: Cache for pip
uses: actions/cache@v1
id: cache-pip
with:
path: ~/.cache/pip
key: ${{ matrix.os }}-cache-pip
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python-version }}
- name: PyLint
run: |
set -x
pip install pylint
pip install --upgrade -r requirements.txt
pylint --exit-zero --errors-only pwnlib > current.txt
git fetch origin
git checkout origin/"$GITHUB_BASE_REF"
pylint --exit-zero --errors-only pwnlib > base.txt
if diff base.txt current.txt | grep '>'; then
false
fi
+4
View File
@@ -13,7 +13,11 @@ MANIFEST
dist
venv
.vscode
.idea
*.egg-info
*.core
.coverage
.coverage.*
.idea
__pycache__
!.github
+6
View File
@@ -19,8 +19,13 @@ addons:
- binutils-aarch64-linux-gnu
- binutils-arm-linux-gnueabihf
- binutils-mips-linux-gnu
- binutils-msp430
- binutils-powerpc-linux-gnu
- binutils-s390x-linux-gnu
- binutils-sparc64-linux-gnu
- bash-static
- python3-pip
- elfutils
cache:
- pip
- directories:
@@ -39,6 +44,7 @@ before_install:
- source travis/ssh_setup.sh
- echo $-
install:
- /usr/bin/python3 -m pip install rpyc # for GDB
- pip install --upgrade pip
- pip install --upgrade flake8 appdirs # https://github.com/ActiveState/appdirs/issues/89#issuecomment-282326570
- python setup.py egg_info # pypa/pip#6275
+208 -7
View File
@@ -9,9 +9,18 @@ The table below shows which release corresponds to each branch, and what date th
| Version | Branch | Release Date |
| ---------------- | -------- | ---------------------- |
| [4.4.0](#440) | `dev` | Sep 1, 2020 (planned)
| [4.3.0](#430) | `beta` | Aug 1, 2020 (planned)
| [4.2.0](#420) | `stable` | Jul 3, 2020 (planned)
| [4.10.0](#4100) | `dev` |
| [4.9.0](#490) | `beta` |
| [4.8.0](#480) | `stable` | Apr 21, 2022
| [4.7.1](#471) | | Apr 20, 2022
| [4.7.0](#470) | | Nov 15, 2021
| [4.6.0](#460) | | Jul 12, 2021
| [4.5.1](#451) | | May 30, 2021
| [4.5.0](#450) | | Apr 30, 2021
| [4.4.0](#440) | | Mar 29, 2021
| [4.3.1](#431) | | Nov 29, 2020
| [4.3.0](#430) | | Oct 20, 2020
| [4.2.0](#420) | | Jul 3, 2020
| [4.1.7](#417) | | Jun 30, 2020
| [4.1.5](#415) | | Jun 27, 2020
| [4.1.4](#414) | | Jun 26, 2020
@@ -55,13 +64,203 @@ The table below shows which release corresponds to each branch, and what date th
| [3.0.0](#300) | | Aug 20, 2016
| [2.2.0](#220) | | Jan 5, 2015
## 4.4.0 (`dev`)
## 4.10.0 (`dev`)
## 4.9.0 (`beta`)
- [#1975][1975] Add libcdb commandline tool
- [#1979][1979] Add `js_escape()` and `js_unescape()` to `util.fiddling`
- [#2011][2011] Fix tube's debug output of same byte compression
- [#2023][2023] Support KDE Konsole in run_in_new_terminal function
- [#2027][2027] Fix ELF.libc_start_main_return with glibc 2.34
- [#2033][2033] Quote file and core path in generated GDB script
- [#2035][2035] Change Buffer's parent class to object
- [#2037][2037] Allow SSH tunnel to be treated like a TCP socket (with 'raw=True')
[1975]: https://github.com/Gallopsled/pwntools/pull/1975
[1979]: https://github.com/Gallopsled/pwntools/pull/1979
[2011]: https://github.com/Gallopsled/pwntools/pull/2011
[2023]: https://github.com/Gallopsled/pwntools/pull/2023
[2027]: https://github.com/Gallopsled/pwntools/pull/2027
[2033]: https://github.com/Gallopsled/pwntools/pull/2033
[2035]: https://github.com/Gallopsled/pwntools/pull/2035
[2037]: https://github.com/Gallopsled/pwntools/pull/2037
## 4.8.0 (`stable`)
- [#1922][1922] Fix logic in `wait_for_debugger`
- [#1828][1828] libcdb: Load debug info and unstrip libc binary
- [#1939][1939] Fix error in validating log levels
- [#1981][1981] Fix `cyclic_find()` to make it work with large int values
[1922]: https://github.com/Gallopsled/pwntools/pull/1922
[1828]: https://github.com/Gallopsled/pwntools/pull/1828
[1939]: https://github.com/Gallopsled/pwntools/pull/1939
[1981]: https://github.com/Gallopsled/pwntools/pull/1981
## 4.7.1
- [#1784][1784] Use temporary cache directory when persistent cache cannot be used
- [#1973][1973] ELF symbols can be looked up by bytes values
- several bugfixes ([#2012][2012], [#2031][2031], [#1912][1912], [#1961][1961],
[#2007][2007], [#2040][2040], [#2051][2051])
[1784]: https://github.com/Gallopsled/pwntools/pull/1784
[1912]: https://github.com/Gallopsled/pwntools/pull/1912
[1961]: https://github.com/Gallopsled/pwntools/pull/1961
[1973]: https://github.com/Gallopsled/pwntools/pull/1973
[2007]: https://github.com/Gallopsled/pwntools/pull/2007
[2012]: https://github.com/Gallopsled/pwntools/pull/2012
[2031]: https://github.com/Gallopsled/pwntools/pull/2031
[2040]: https://github.com/Gallopsled/pwntools/pull/2040
[2051]: https://github.com/Gallopsled/pwntools/pull/2051
## 4.7.0
- [#1733][1733] Update libc headers -> more syscalls available!
- [#1876][1876] add `self.message` and change `sys.exc_type` to `sys.exec_info()` in PwnlibException
- [#1877][1877] encoders error message handles when `avoid` is bytes in python3
- [#1891][1891] Keep ROP gadgets when setting registers via setattr/call
- [#1892][1892] Silence SIGPIPE error for "pwn phd"
- [#1893][1893] Fix bytes warning in "pwn cyclic"
- [#1897][1897] Add basic support for RISC-V
- [#1903][1903] Add zsh completion script
- [#1904][1904] Add bash completion script
- [#1906][1906] Defer import of several modules to save on startup time
- [#1921][1921] Add basic support for the bare-metal ARM specific toolchain
- [#1995][1995] Add `shellcraft.*.linux.cat2`, which uses alloc+read+write instead of sendfile
[1733]: https://github.com/Gallopsled/pwntools/pull/1733
[1876]: https://github.com/Gallopsled/pwntools/pull/1876
[1877]: https://github.com/Gallopsled/pwntools/pull/1877
[1891]: https://github.com/Gallopsled/pwntools/pull/1891
[1892]: https://github.com/Gallopsled/pwntools/pull/1892
[1893]: https://github.com/Gallopsled/pwntools/pull/1893
[1897]: https://github.com/Gallopsled/pwntools/pull/1897
[1903]: https://github.com/Gallopsled/pwntools/pull/1903
[1904]: https://github.com/Gallopsled/pwntools/pull/1904
[1906]: https://github.com/Gallopsled/pwntools/pull/1906
[1921]: https://github.com/Gallopsled/pwntools/pull/1921
[1995]: https://github.com/Gallopsled/pwntools/pull/1995
## 4.6.0
- [#1429][1429] Add a mechanism for ret2csu (originally #1138)
- [#1566][1566] Add `ignore_config` argument to `pwnlib.tubes.ssh` and improve `allow_agent` implementation
- [#1652][1652] Add `process.readmem` and `process.writemem`
- [#1739][1739] Add/fix shellcraft.linux.kill() / shellcraft.linux.killparent()
- [#1746][1746] Prefer Python3 over Python2 for spawning remote processes over SSH
- [#1751][1751] Fix process() with executable relative to cwd
- [#1753][1753] major change: less unconditional imports in pwnlib
- [#1776][1776] mips: do not use $t0 temporary variable in dupio
- [#1846][1846] support launching GDB in more different terminals
[1429]: https://github.com/Gallopsled/pwntools/pull/1429
[1566]: https://github.com/Gallopsled/pwntools/pull/1566
[1652]: https://github.com/Gallopsled/pwntools/pull/1652
[1739]: https://github.com/Gallopsled/pwntools/pull/1739
[1746]: https://github.com/Gallopsled/pwntools/pull/1746
[1751]: https://github.com/Gallopsled/pwntools/pull/1751
[1753]: https://github.com/Gallopsled/pwntools/pull/1753
[1776]: https://github.com/Gallopsled/pwntools/pull/1776
[1846]: https://github.com/Gallopsled/pwntools/pull/1846
## 4.5.1
- [#1902][1902] Always specify -F and -P for tmux in `run_in_new_terminal`
[1902]: https://github.com/Gallopsled/pwntools/pull/1902
## 4.5.0
- [#1261][1261] Misc `run_in_new_terminal` improvements (notably gdb terminated by default)
- [#1695][1695] Allow using GDB Python API
- [#1735][1735] Python 3.9 support in safeeval
- [#1738][1738] Which function support custom search path
- process also looks now at `env['PATH']` to find the path for the executable
- [#1742][1742] New `baremetal` os to debug binaries executed with qemu-system-$(arch)
- [#1757][1757] update cache directories
- [#1758][1758] Remove eval from cli
- [#1780][1780] Re-add Python2 to the official Dockerfile
- [#1941][1941] Disable all Android tests, `pwnlib.adb` is no longer supported in CI
- [#1811][1811] Remove unnecessary `pwn.toplevel.__all__`
- [#1827][1827] Support `$XDG_CONFIG_HOME` dir for `pwn.conf`
- [#1841][1841] Add colored_traceback
- [#1839][1839] run_in_new_terminal now creates a runner script if given a list or tuple
- [#1833][1833] Add pwnlib.filesystem module
- [#1852][1852] Fix `atexit` on Python 3
- [#1883][1883] ROP gadget verifier accounts for 2 character registers
[1261]: https://github.com/Gallopsled/pwntools/pull/1261
[1695]: https://github.com/Gallopsled/pwntools/pull/1695
[1735]: https://github.com/Gallopsled/pwntools/pull/1735
[1738]: https://github.com/Gallopsled/pwntools/pull/1738
[1742]: https://github.com/Gallopsled/pwntools/pull/1742
[1757]: https://github.com/Gallopsled/pwntools/pull/1757
[1758]: https://github.com/Gallopsled/pwntools/pull/1758
[1780]: https://github.com/Gallopsled/pwntools/pull/1780
[1941]: https://github.com/Gallopsled/pwntools/pull/1941
[1811]: https://github.com/Gallopsled/pwntools/pull/1811
[1827]: https://github.com/Gallopsled/pwntools/pull/1827
[1841]: https://github.com/Gallopsled/pwntools/pull/1841
[1839]: https://github.com/Gallopsled/pwntools/pull/1839
[1833]: https://github.com/Gallopsled/pwntools/pull/1833
[1852]: https://github.com/Gallopsled/pwntools/pull/1852
[1883]: https://github.com/Gallopsled/pwntools/pull/1883
## 4.4.0
- [#1541][1541] Use `context.newline` for tubes by default
- [#1602][1602] Fix bytes handling in ssh tubes
- [#1606][1606] Fix `asm()` and `disasm()` for MSP430, S390
- [#1616][1616] Fix `cyclic` cli for 64 bit integers
- [#1632][1632] Enable usage of Pwntools in jupyter
- [#1633][1633] Open a shell if `pwn template` cannot download the remote file
- [#1644][1644] Enable and support SNI for SSL-wrapped tubes
- [#1651][1651] Make `pwn shellcraft` faster
- [#1654][1654] Docker images (`pwntools/pwntools:stable` etc) now use Python3 by default, and includes assemblers for a few common architectures
- [#1667][1667] Add i386 encoder `ascii_shellcode` (Fixed docs in #1693)
- Fix syscall instruction lists for SROP on `i386` and `amd64`
- Fix migration to another ROP
- [#1673][1673] Add `base=` argument to `ROP.chain()` and `ROP.dump()`
- [#1675][1675] Gdbserver now correctly accepts multiple libraries in `LD_PRELOAD` and `LD_LIBRARY_PATH`
- [#1678][1678] ROPGadget multibr
- [#1682][1682] ROPGadget multibr fix
- [#1687][1687] Actually import `requests` when doing `from pwn import *`
- [#1688][1688] Add `__setattr__` and `__call__` interfaces to `ROP` for setting registers
- [#1692][1692] Remove python2 shebangs where appropriate
- [#1703][1703] Update libcdb buildid offsets for amd64 and i386
- [#1704][1704] Try https://libc.rip/ for libcdb lookup
[1541]: https://github.com/Gallopsled/pwntools/pull/1541
[1602]: https://github.com/Gallopsled/pwntools/pull/1602
[1606]: https://github.com/Gallopsled/pwntools/pull/1606
[1616]: https://github.com/Gallopsled/pwntools/pull/1616
[1632]: https://github.com/Gallopsled/pwntools/pull/1632
[1633]: https://github.com/Gallopsled/pwntools/pull/1633
[1644]: https://github.com/Gallopsled/pwntools/pull/1644
[1651]: https://github.com/Gallopsled/pwntools/pull/1651
[1654]: https://github.com/Gallopsled/pwntools/pull/1654
[1667]: https://github.com/Gallopsled/pwntools/pull/1667
[1673]: https://github.com/Gallopsled/pwntools/pull/1673
[1675]: https://github.com/Gallopsled/pwntools/pull/1675
[1678]: https://github.com/Gallopsled/pwntools/pull/1678
[1682]: https://github.com/Gallopsled/pwntools/pull/1679
[1687]: https://github.com/Gallopsled/pwntools/pull/1687
[1688]: https://github.com/Gallopsled/pwntools/pull/1688
[1692]: https://github.com/Gallopsled/pwntools/pull/1692
[1703]: https://github.com/Gallopsled/pwntools/pull/1703
[1704]: https://github.com/Gallopsled/pwntools/pull/1704
## 4.3.0 (`beta`)
## 4.3.1
- [#1732][1732] Fix shellcraft SSTI vulnerability (first major pwntools vuln!)
[1732]: https://github.com/Gallopsled/pwntools/pull/1732
## 4.3.0
- [#1576][1576] Add `executable=` argument to `ELF.search`
- [#1584][1584] Add `jmp_esp`/`jmp_rsp` attribute to `ROP`
@@ -70,6 +269,7 @@ The table below shows which release corresponds to each branch, and what date th
- [#1601][1601] Add `pwn version` command line tool
- [#1605][1605] Add to `fiddling.hexdump` a way to suppress the total at the end
- [#1613][1613] Permit `--password` for `pwn template`
- [#1616][1616] Fix `cyclic` cli for 64 bit integers
- [#1564][1564] Fix `asm()` and `disasm()` for PowerPC64, MIPS64, Sparc64
- [#1621][1621] Permit negative values in flat() and fit()
@@ -80,10 +280,11 @@ The table below shows which release corresponds to each branch, and what date th
[1601]: https://github.com/Gallopsled/pwntools/pull/1601
[1605]: https://github.com/Gallopsled/pwntools/pull/1605
[1613]: https://github.com/Gallopsled/pwntools/pull/1613
[1616]: https://github.com/Gallopsled/pwntools/pull/1616
[1564]: https://github.com/Gallopsled/pwntools/pull/1564
[1621]: https://github.com/Gallopsled/pwntools/pull/1621
## 4.2.1 (`stable`)
## 4.2.1
- [#1625][1625] GDB now properly loads executables with QEMU
- [#1663][1663] Change lookup algorithm of `adb.which`
@@ -157,7 +358,7 @@ The table below shows which release corresponds to each branch, and what date th
[1001]: https://github.com/Gallopsled/pwntools/pull/1001
[1389]: https://github.com/Gallopsled/pwntools/pull/1389
[1241]: https://github.com/Gallopsled/pwntools/pull/1241
[1218]: https://github.com/Gallopsled/pwntools/pull/1218
[1218]: https://github.com/Gallopsled/pwntools/pull/1218
## 4.0.1
+76
View File
@@ -0,0 +1,76 @@
# Using Pwntools with Docker
Sometimes it's annoying to set up Pwntools on your workstation, and you want something that Just Works (TM).
[Docker](https://www.docker.com/) is here to the rescue! Using Docker means that you get a nice, standardized Linux environment and don't need to worry about pip or installing dependencies.
## Quick Start
First, install Docker for your OS, which you can find on their [Getting Started](https://www.docker.com/get-started) page.
Next, download and run the Pwntools stable docker image.
```sh
$ docker run -it pwntools/pwntools:stable
```
## Recommended Settings
In order to get the most from your docker image, we need to enable debugging of processes (`--privileged`) and expose the network ports from the guest to the host (`--net=host`).
```sh
$ docker run -it \
--privileged \
--net=host \
--hostname localhost \
--ulimit core=-1:-1 \
pwntools/pwntools:stable
```
## Sharing a Folder
It's really nice to be able to use your preferred native editor, and have the changes show up live inside your Docker image. This is easy to add, thanks to Docker's bind mounts (`--mount type=bind`).
With the command below, your `~/exploits` directory will magically show up inside the Docker image at `/home/pwntools/exploits` so that you can easily run them (from Docker) and edit them (from outside Docker).
```sh
$ mkdir $HOME/exploits
$ vim $HOME/exploits/my_exploit.py
$ docker run -it \
--privileged \
--net=host \
--hostname localhost \
--ulimit core=-1:-1 \
--mount type=bind,source="$HOME/exploits",target=/home/pwntools/exploits \
pwntools/pwntools:stable
$ python3 exploits/my_exploit.py
```
### Windows User Bind Mounts
If you're a Windows user `$HOME` doesn't exist in the same way as on Linux, instead it is `%UserProfile%`. The command from above would look like this, assuming your editor is Visual Studio Code and you have code.exe in your `%PATH%`.
```sh
C:\Users\user> mkdir Desktop\exploits
C:\Users\user> code Desktop\exploits\my_exploit.py
C:\Users\user> docker run -it \
--privileged \
--net=host \
--hostname localhost \
--ulimit core=-1:-1 \
--mount type=bind,source="%UserProfile%\Desktop\exploits",target=/home/pwntools/exploits \
pwntools/pwntools:stable
$ python3 exploits/my_exploit.py
```
+14 -16
View File
@@ -1,12 +1,14 @@
# pwntools - CTF toolkit
![pwntools logo](https://github.com/Gallopsled/pwntools/blob/stable/docs/source/logo.png?raw=true)
[![Docs](https://readthedocs.org/projects/pwntools/badge/?version=stable)](https://docs.pwntools.com/)
[![PyPI](https://img.shields.io/pypi/v/pwntools?style=flat)](https://pypi.python.org/pypi/pwntools/)
[![Travis](https://travis-ci.org/Gallopsled/pwntools.svg)](https://travis-ci.org/Gallopsled/pwntools)
[![Coveralls](https://img.shields.io/coveralls/Gallopsled/pwntools/dev.svg)](https://coveralls.io/github/Gallopsled/pwntools?branch=dev)
[![Twitter](https://img.shields.io/badge/twitter-pwntools-4099FF.svg?style=flat)](https://twitter.com/pwntools)
[![Docs](https://readthedocs.org/projects/pwntools/badge/?version=stable)](https://docs.pwntools.com/)
[![Travis](https://img.shields.io/travis/Gallopsled/pwntools/dev?logo=Travis)](https://travis-ci.org/Gallopsled/pwntools)
[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/Gallopsled/pwntools/Continuous%20Integration/dev?logo=GitHub)](https://github.com/Gallopsled/pwntools/actions?query=workflow%3A%22Continuous+Integration%22+branch%3Adev)
[![Coveralls](https://img.shields.io/coveralls/github/Gallopsled/pwntools/dev?logo=coveralls)](https://coveralls.io/github/Gallopsled/pwntools?branch=dev)
[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat)](http://choosealicense.com/licenses/mit/)
[![Discord](https://img.shields.io/discord/809590285687980052?label=Discord&style=plastic)](https://discord.gg/96VA2zvjCB)
[![Twitter](https://img.shields.io/twitter/follow/Pwntools)](https://twitter.com/pwntools)
Pwntools is a CTF framework and exploit development library. Written in Python, it is designed for rapid prototyping and development, and intended to make exploit writing as simple as possible.
@@ -20,29 +22,28 @@ r.send(asm(shellcraft.sh()))
r.interactive()
```
# Try It Now!
You can now do a live demo of Pwntools, [right in your browser](https://demo.pwntools.com).
# Documentation
Our documentation is available at [docs.pwntools.com](https://docs.pwntools.com/)
A series of tutorials is also [available online](https://github.com/Gallopsled/pwntools-tutorial#readme)
To get you started, we've provided some example solutions for past CTF challenges in our [write-ups repository](https://github.com/Gallopsled/pwntools-write-ups).
# Installation
Pwntools is best supported on 64-bit Ubuntu LTE releases (12.04, 14.04, 16.04 and 18.04). Most functionality should work on any Posix-like distribution (Debian, Arch, FreeBSD, OSX, etc.). Python >= 2.7 is required (Python 3 suggested as best).
Pwntools is best supported on 64-bit Ubuntu LTS releases (14.04, 16.04, 18.04, and 20.04). Most functionality should work on any Posix-like distribution (Debian, Arch, FreeBSD, OSX, etc.).
Most of the functionality of pwntools is self-contained and Python-only. You should be able to get running quickly with
Python3 is suggested, but Pwntools still works with Python 2.7. Most of the functionality of pwntools is self-contained and Python-only. You should be able to get running quickly with
```sh
apt-get update
apt-get install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade git+https://github.com/Gallopsled/pwntools.git@dev
python3 -m pip install --upgrade pwntools
```
However, some of the features (assembling/disassembling foreign architectures) require non-Python dependencies. For more information, see the [complete installation instructions here](https://docs.pwntools.com/en/stable/install.html).
@@ -50,8 +51,5 @@ However, some of the features (assembling/disassembling foreign architectures) r
See [CONTRIBUTING.md](CONTRIBUTING.md)
# Contact
If you have any questions not worthy of a [bug report](https://github.com/Gallopsled/pwntools/issues), feel free to ping us
at [`#pwntools` on Freenode](irc://irc.freenode.net/pwntools) and ask away.
Click [here](https://kiwiirc.com/client/irc.freenode.net/pwntools) to connect.
There is also a [mailing list](https://groups.google.com/forum/#!forum/pwntools-users) for higher latency discussion.
# Contact and Community
If you have any questions not worthy of a [bug report](https://github.com/Gallopsled/pwntools/issues), join the Discord server at https://discord.gg/96VA2zvjCB
+1 -1
View File
@@ -45,7 +45,7 @@ help:
clean:
-rm -rf $(BUILDDIR)/*
-rm -rf /tmp/user/pwn*
-rm -rf $(HOME)/.pwntools-cache
-rm -rf $(HOME)/.cache/.pwntools-cache
-rm -rf /tmp/pwn* 2>/dev/null || true
-rm -rf build
+4 -2
View File
@@ -1,6 +1,7 @@
capstone
coveralls
doc2dash
docutils<0.18
isort
mako>=1.0.0
paramiko>=1.15.2
@@ -11,7 +12,8 @@ pypandoc
pyserial>=2.7
requests>=2.5.1
ropgadget>=5.3
sphinx
sphinx==1.8.6; python_version < '3.0.0'
sphinx==4.5.0; python_version >= '3.0.0'
sphinx_rtd_theme
sphinxcontrib-napoleon
sphinxcontrib-autoprogram
sphinxcontrib-autoprogram<=0.1.5
+1 -6
View File
@@ -2,12 +2,7 @@
import tempfile
import subprocess
from pwnlib.context import context
from pwnlib.asm import *
from pwnlib import shellcraft
from pwnlib.tubes.process import process
from pwnlib.util.fiddling import unhex
from pwn import *
:mod:`pwnlib.asm` --- Assembler functions
=========================================
+2
View File
@@ -12,6 +12,8 @@ Command Line Tools
pwntools comes with a handful of useful command-line utilities which serve as wrappers for some of the internal functionality.
If these tools do not appear to be installed, make sure that you have added ``~/.local/bin`` to your ``$PATH`` environment variable.
.. toctree::
.. autoprogram:: pwnlib.commandline.main:parser
+36 -14
View File
@@ -25,7 +25,8 @@ build_dash = tags.has('dash')
# documentation root, use os.path.abspath to make it absolute, like shown here.
sys.path.insert(0, os.path.abspath('../..'))
import pwnlib
import pwnlib.update
pwnlib.update.disabled = True
# If your documentation needs a minimal Sphinx version, state it here.
#needs_sphinx = '1.0'
@@ -70,10 +71,14 @@ doctest_global_setup = '''
import sys, os
os.environ['PWNLIB_NOTERM'] = '1'
os.environ['PWNLIB_RANDOMIZE'] = '0'
import pwnlib, logging
import pwnlib.update
import pwnlib.util.fiddling
import logging
pwnlib.update.disabled = True
pwnlib.context.context.reset_local()
pwnlib.context.ContextType.defaults['log_level'] = logging.ERROR
pwnlib.context.ContextType.defaults['randomize'] = False
# pwnlib.context.ContextType.defaults['terminal'] = ['sh', '-c']
pwnlib.util.fiddling.default_style = {}
pwnlib.term.text.when = 'never'
pwnlib.log.install_default_handler()
@@ -91,6 +96,9 @@ pwnlib.context.ContextType.defaults['log_console'] = stdout()
github_actions = os.environ.get('USER') == 'runner'
travis_ci = os.environ.get('USER') == 'travis'
local_doctest = os.environ.get('USER') == 'pwntools'
branch_dev = os.environ.get('GITHUB_BASE_REF') == 'dev'
skip_android = True
'''
autoclass_content = 'both'
@@ -257,7 +265,7 @@ latex_documents = [
u'2016, Gallopsled et al.', 'manual'),
]
intersphinx_mapping = {'python': ('https://docs.python.org/2.7', None),
intersphinx_mapping = {'python': ('https://docs.python.org/3.8', None),
'paramiko': ('https://paramiko-docs.readthedocs.org/en/2.1/', None)}
# The name of an image file (relative to this directory) to place at the top of
@@ -340,7 +348,7 @@ def linkcode_resolve(domain, info):
val = mod
for k in info['fullname'].split('.'):
val = getattr(val, k, None)
if val == None:
if val is None:
break
# Special case for shellcraft
@@ -381,7 +389,9 @@ import sphinx.ext.autodoc
# Test hidden members (e.g. def _foo(...))
def dont_skip_any_doctests(app, what, name, obj, skip, options):
return False
return None
autodoc_default_options = {'special-members': None, 'private-members': None}
class _DummyClass(object): pass
@@ -403,24 +413,36 @@ class Py2OutputChecker(_DummyClass, doctest.OutputChecker):
if sup(rly_want, got, optionflags):
return True
rly_want = ' '.join(x[:2].replace('b"',' "').replace("b'"," '")+x[2:] for x in want.replace('\n','\n ').split(' ')).replace('\n ','\n')
return sup(rly_want, got, optionflags)
if sup(rly_want, got, optionflags):
return True
for wantl, gotl in six.moves.zip_longest(want.splitlines(), got.splitlines(), fillvalue=''):
rly_want1 = '['.join(x[:2].replace('b"','"').replace("b'","'")+x[2:] for x in wantl.split('['))
rly_want2 = ' '.join(x[:2].replace('b"',' "').replace("b'"," '")+x[2:] for x in wantl.split(' '))
if not sup(rly_want1, gotl, optionflags) and not sup(rly_want2, gotl, optionflags):
return False
return True
def py2_doctest_init(self, checker=None, verbose=None, optionflags=0):
if checker is None:
checker = Py2OutputChecker()
doctest.DocTestRunner.__init__(self, checker, verbose, optionflags)
class EndlessLoop(Exception): pass
def alrm_handler(sig, frame):
signal.alarm(180) # three minutes
raise EndlessLoop()
signal.signal(signal.SIGALRM, alrm_handler)
signal.alarm(600) # ten minutes
if 'doctest' in sys.argv:
def setup(app):
app.connect('autodoc-skip-member', dont_skip_any_doctests)
pass # app.connect('autodoc-skip-member', dont_skip_any_doctests)
if sys.version_info[:1] < (3,):
import sphinx.ext.doctest
sphinx.ext.doctest.SphinxDocTestRunner.__init__ = py2_doctest_init
else:
# monkey patching paramiko due to https://github.com/paramiko/paramiko/pull/1661
import paramiko.client
import binascii
paramiko.client.hexlify = lambda x: binascii.hexlify(x).decode()
paramiko.util.safe_string = lambda x: '' # function result never *actually used*
class EndlessLoop(Exception): pass
def alrm_handler(sig, frame):
signal.alarm(180) # three minutes
raise EndlessLoop()
signal.signal(signal.SIGALRM, alrm_handler)
signal.alarm(600) # ten minutes
+16
View File
@@ -3,6 +3,22 @@
from glob import glob
from pwn import *
# The Linux kernel won't overwrite an existing corefile, so in case
# some other part of the doctests caused a segfault and core dump,
# we need to get rid of it before our tests run.
#
# We DONT need to worry about e.g. ./core existing when using Corefile()
# because we always move and rename the corefile to prevent this situation.
if os.path.exists('core'):
os.unlink('core')
# bash-static is a statically linked version of bash, but if $SHELL is not
# set to anything, it decides to up and load ld.so and libc.so which breaks
# our example of showing `corefile.libc == None` for a statically linked bin.
# Set the environment here so it's not in the middle of our tests.
os.environ.setdefault('SHELL', '/bin/sh')
:mod:`pwnlib.elf.corefile` --- Core Files
===========================================================
+6 -1
View File
@@ -1,13 +1,18 @@
.. testsetup:: *
from pwn import *
:mod:`pwnlib.encoders` --- Encoding Shellcode
===============================================
.. automodule:: pwnlib.encoders.encoder
:members:
.. automodule:: pwnlib.encoders.i386.ascii_shellcode
:members:
:special-members:
:exclude-members: __init__
.. automodule:: pwnlib.encoders.i386.xor
:members:
+17
View File
@@ -0,0 +1,17 @@
.. testsetup:: *
import time
import six
from pwnlib.context import context
from pwnlib.tubes.ssh import ssh
from pwnlib.filesystem import *
:mod:`pwnlib.filesystem` --- Manipulating Files Locally and Over SSH
====================================================================
Provides a Python2-compatible :py:mod:`pathlib` interface for paths
on the local filesystem (`.Path`) as well as on remote filesystems,
via SSH (`.SSHPath`).
.. automodule:: pwnlib.filesystem
:members:
+12 -2
View File
@@ -52,9 +52,10 @@ Each of the ``pwntools`` modules is documented here.
context
dynelf
encoders
elf
elf/*
exception
filepointer
filesystem
flag
fmtstr
gdb
@@ -64,7 +65,6 @@ Each of the ``pwntools`` modules is documented here.
protocols
qemu
replacements
rop
rop/*
runner
shellcraft
@@ -82,6 +82,7 @@ Each of the ``pwntools`` modules is documented here.
:hidden:
testexample
rop/call
.. only:: not dash
@@ -91,3 +92,12 @@ Each of the ``pwntools`` modules is documented here.
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
Bytes
-----
The bytes vs text distinction is so important that it even made it to this main page.
See the pwntools-tutorial_ repo for the latest tutorial finally
explaining the difference once and for all (hopefully).
.. _pwntools-tutorial: https://github.com/Gallopsled/pwntools-tutorial/blob/master/bytes.md
+36 -4
View File
@@ -1,9 +1,7 @@
Installation
============
pwntools is best supported on Ubuntu 12.04 and 14.04, but most
functionality should work on any Posix-like distribution (Debian, Arch,
FreeBSD, OSX, etc.).
Pwntools is best supported on 64-bit Ubuntu LTS releases (14.04, 16.04, 18.04, and 20.04). Most functionality should work on any Posix-like distribution (Debian, Arch, FreeBSD, OSX, etc.).
Prerequisites
-------------
@@ -20,7 +18,10 @@ following system libraries installed.
Released Version
-----------------
pwntools is available as a ``pip`` package.
pwntools is available as a ``pip`` package for both Python2 and Python3.
Python3
^^^^^^^
.. code-block:: bash
@@ -29,6 +30,37 @@ pwntools is available as a ``pip`` package.
$ python3 -m pip install --upgrade pip
$ python3 -m pip install --upgrade pwntools
Python2 (Deprecated)
^^^^^^^^^^^^^^^^^^^^
NOTE: Pwntools maintainers STRONGLY recommend using Python3 for all future Pwntools-based scripts and projects.
Additionally, due to `pip` dropping support for Python2, a specfic version of `pip` must be installed.
.. code-block:: bash
$ apt-get update
$ apt-get install python python-pip python-dev git libssl-dev libffi-dev build-essential
$ python2 -m pip install --upgrade pip==20.3.4
$ python2 -m pip install --upgrade pwntools
Command-Line Tools
------------------
When installed with ``sudo`` the above commands will install Pwntools' command-line tools to somewhere like ``/usr/bin``.
However, if you run as an unprivileged user, you may see a warning message that looks like this:
.. code-block::
WARNING: The scripts asm, checksec, common, constgrep, cyclic, debug, disablenx, disasm,
elfdiff, elfpatch, errno, hex, main, phd, pwn, pwnstrip, scramble, shellcraft, template,
unhex, update and version are installed in '/home/user/.local/bin' which is not on PATH.
Follow the instructions listed and add ``~/.local/bin`` to your ``$PATH`` environment variable.
Development
--------------
+1 -1
View File
@@ -12,7 +12,7 @@ Building `binutils` from source takes about 60 seconds on a modern 8-core machin
Ubuntu
^^^^^^^^^^^^^^^^
For Ubuntu 12.04 through 15.10, you must first add the pwntools `Personal Package Archive repository <http://binutils.pwntools.com>`__.
For Ubuntu 12.04 through 15.10, you must first add the pwntools `Personal Package Archive repository <https://launchpad.net/~pwntools/+archive/ubuntu/binutils>`__.
Ubuntu Xenial (16.04) has official packages for most architectures, and does not require this step.
+10 -3
View File
@@ -17,6 +17,13 @@ assemble, disassemble, pack, unpack, and many other things with a single functio
A full list of everything that is imported is available on :doc:`globals`.
Tutorials
---------
A series of tutorials for Pwntools exists online, at
https://github.com/Gallopsled/pwntools-tutorial#readme
Making Connections
------------------
@@ -188,10 +195,10 @@ Never write another hexdump, thanks to :mod:`pwnlib.util.fiddling`.
Find offsets in your buffer that cause a crash, thanks to :mod:`pwnlib.cyclic`.
>>> print(cyclic(20).decode())
aaaabaaacaaadaaaeaaa
>>> cyclic(20)
b'aaaabaaacaaadaaaeaaa'
>>> # Assume EIP = 0x62616166 (b'faab' which is pack(0x62616166)) at crash time
>>> print(cyclic_find(b'faab'))
>>> cyclic_find(b'faab')
120
ELF Manipulation
-14
View File
@@ -1,15 +1 @@
:mod:`pwnlib.protocols` --- Wire Protocols
=============================================
.. automodule:: pwnlib.protocols
Supported Protocols
-------------------
.. toctree::
:maxdepth: 3
:glob:
protocols/*
-11
View File
@@ -1,11 +0,0 @@
.. testsetup:: *
from pwn import *
from pwnlib.protocols.adb import AdbClient
AdbClient().wait_for_device()
:mod:`pwnlib.protocols.adb` --- ADB Protocol Implementation
===========================================================
.. automodule:: pwnlib.protocols.adb
:members:
File renamed without changes.
-4
View File
@@ -1,7 +1,3 @@
.. testsetup:: *
from pwn import *
:mod:`pwnlib.rop` --- Return Oriented Programming
=================================================
+18 -1
View File
@@ -1,6 +1,23 @@
.. testsetup:: *
from pwn import *
import time
from glob import glob
from pwnlib.asm import asm
from pwnlib import constants
from pwnlib.context import context
from pwnlib.elf import ELF
from pwnlib.rop import ROP
from pwnlib.rop.call import Call, AppendedArgument
from pwnlib.elf.maps import CAT_PROC_MAPS_EXIT
from pwnlib.util.packing import *
from pwnlib.util.fiddling import *
from pwnlib.tubes.process import process
from pwnlib import shellcraft
from pwnlib.util.misc import which
context.clear()
:mod:`pwnlib.rop.rop` --- Return Oriented Programming
==========================================================
+6 -1
View File
@@ -1,6 +1,11 @@
.. testsetup:: *
from pwn import *
from pwnlib.rop.srop import *
from pwnlib import constants
from pwnlib import shellcraft
from pwnlib.elf import ELF
from pwnlib.tubes.process import process
:mod:`pwnlib.rop.srop` --- Sigreturn Oriented Programming
==========================================================
+2 -1
View File
@@ -1,6 +1,7 @@
.. testsetup:: *
from pwn import *
from pwnlib.runner import *
from pwnlib.asm import asm
:mod:`pwnlib.runner` --- Running Shellcode
===========================================
+10 -1
View File
@@ -1,6 +1,15 @@
.. testsetup:: *
from pwn import *
import tempfile
from pwnlib import shellcraft
from pwnlib.asm import asm
from pwnlib.context import context
from pwnlib.runner import run_assembly
from pwnlib.util.fiddling import enhex
from pwnlib.util.misc import write
context.clear(arch='mips')
:mod:`pwnlib.shellcraft.mips` --- Shellcode for MIPS
+4
View File
@@ -14,6 +14,10 @@
:members: kill, poll, interactive
:show-inheritance:
.. autoclass:: pwnlib.tubes.ssh.ssh_process
:members:
:show-inheritance:
.. autoclass:: pwnlib.tubes.ssh.ssh_connecter()
:show-inheritance:
+16 -16
View File
@@ -17,19 +17,19 @@
count ,
cycle ,
dropwhile ,
filter ,
filterfalse ,
groupby ,
ifilter ,
ifilterfalse ,
imap ,
islice ,
izip ,
izip_longest ,
map ,
permutations ,
product ,
repeat ,
starmap ,
takewhile ,
tee
tee ,
zip ,
zip_longest
.. function:: chain
@@ -63,29 +63,29 @@
Alias for :func:`itertools.groupby`
.. function:: ifilter
.. function:: filter
Alias for :func:`itertools.ifilter`
Alias for python3-style :func:`filter`
.. function:: ifilterfalse
.. function:: filterfalse
Alias for :func:`itertools.ifilterfalse`
Alias for :func:`itertools.filterfalse`
.. function:: imap
.. function:: map
Alias for :func:`itertools.imap`
Alias for python3-style :func:`map`
.. function:: islice
Alias for :func:`itertools.islice`
.. function:: izip
.. function:: zip
Alias for :func:`itertools.izip`
Alias for python3-style :func:`zip`
.. function:: izip_longest
.. function:: zip_longest
Alias for :func:`itertools.izip_longest`
Alias for :func:`itertools.zip_longest`
.. function:: permutations
-1
View File
@@ -3,7 +3,6 @@
from pprint import pprint
from pwnlib.util.misc import *
import os, subprocess
os.chdir("..")
:mod:`pwnlib.util.misc` --- We could not fit it any other place
===============================================================
-1
View File
@@ -2,7 +2,6 @@
from pwnlib.util.net import *
:mod:`pwnlib.util.net` --- Networking interfaces
===================================================
+2
View File
@@ -1,5 +1,7 @@
.. testsetup:: *
import tempfile
from pwnlib.context import context
from pwnlib.util.web import *
+112
View File
@@ -0,0 +1,112 @@
#!/usr/bin/env python3
"""An example of using GDB Python API with Pwntools."""
from pwn import *
def check_write(gdb, exp_buf):
"""Check that write() was called with the expected arguments."""
fd = gdb.parse_and_eval('$rdi').cast(gdb.lookup_type('int'))
assert fd == 1, fd
buf_addr = gdb.parse_and_eval('$rsi').cast(gdb.lookup_type('long'))
count = gdb.parse_and_eval('$rdx').cast(gdb.lookup_type('long'))
buf = gdb.selected_inferior().read_memory(buf_addr, count).tobytes()
assert buf == exp_buf, buf
def demo_sync_breakpoint(cat, gdb, txt):
"""Demonstrate a synchronous breakpoint."""
# set the synchronous breakpoint on ``write``
gdb.Breakpoint('write', temporary=True)
# resume the program
gdb.continue_nowait()
# send the line
cat.sendline(txt)
# wait until we hit the breakpoint
gdb.wait()
# inspect program state
check_write(gdb, (txt + '\n').encode())
# resume the program
gdb.continue_nowait()
# expect to observe the line we just sent
cat.recvuntil(txt)
def demo_async_breakpoint(cat, gdb, txt):
"""Demonstrate asynchronous breakpoint."""
# set the asynchronous breakpoint on ``write``
class WriteBp(gdb.Breakpoint):
def __init__(self):
super().__init__('write')
self.count = 0
def stop(self):
# called in a separate thread
check_write(gdb, (txt + '\n').encode())
self.count += 1
bp = WriteBp()
# resume the program
gdb.continue_nowait()
# send the line and immediately expect to observe it
cat.sendline(txt)
cat.recvuntil(txt)
# check that we hit the breakpoint
assert bp.count == 1, bp.count
# interrupt the program
gdb.interrupt_and_wait()
# delete the breakpoint
bp.delete()
# resume the program
gdb.continue_nowait()
def main():
# start ``cat`` under GDB
with gdb.debug('cat', gdbscript='''
set logging on
set pagination off
''', api=True) as cat:
# the process is stopped
# set the synchronous breakpoint on ``read``
cat.gdb.Breakpoint('read', temporary=True)
# resume and wait until we hit it
cat.gdb.continue_and_wait()
# demonstrate a more interesting synchronous breakpoint
demo_sync_breakpoint(cat, cat.gdb, 'foo')
# terminate GDB
cat.gdb.quit()
# now start ``cat`` normally
with process('cat') as cat:
# attach GDB
_, cat_gdb = gdb.attach(cat, gdbscript='''
set logging on
set pagination off
''', api=True)
# the process is stopped
# demonstrate asynchronous breakpoint
demo_async_breakpoint(cat, cat_gdb, 'bar')
# terminate GDB
cat_gdb.quit()
if __name__ == '__main__':
main()
+9
View File
@@ -36,5 +36,14 @@ print(shell.echo("single string"))
print(shell.echo(["list","of","strings"]))
print(shell["echo single statement"])
# ssh.process() is the most flexible way to run a command)
io = shell.process(['/bin/bash', '-c', 'echo Hello $FOO'],
env={'FOO': 'World'}, # Set environment
stderr='/dev/null', # Override file descriptors
aslr=False, # Disable ASLR on processes
setuid=False, # Disable setuid bit so processes can be debugged
shell=False) # Enable or disable shell evaluation
print(io.recvall())
# Show off the interactive shell
shell.interactive()
+12
View File
@@ -0,0 +1,12 @@
# Bash Completion
To install the completion, add `. /path/to/bash_completion.d/pwn`to your e.g. `~/.bash_profile`.
The `./install.sh` script attempts to do this for you automatically.
### Shellcraft Autocomplete
The legacy autocompletion for `pwn shellcraft` is also available at `./shellcraft`.
It is unsupported, and slow (runs `pwn shellcraft -l` every time your shell starts).
+13
View File
@@ -0,0 +1,13 @@
#!/usr/bin/env bash
BASH_COMPLETION_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
if grep "$BASH_COMPLETION_DIR" ~/.bash_profile; then
>&2 echo "Already installed"
exit
fi >/dev/null
cat >> ~/.bash_profile <<EOF
# Install autocompletion for Pwntools
. "$BASH_COMPLETION_DIR/pwn"
EOF
+103
View File
@@ -0,0 +1,103 @@
#!/usr/bin/env bash
# AUTOMATCALLY GENERATED by `shtab`
_shtab_pwnlib_options_='-h --help'
_shtab_pwnlib_commands_='asm checksec constgrep cyclic debug disablenx disasm elfdiff elfpatch errno hex phd pwnstrip scramble shellcraft template unhex update version'
_shtab_pwnlib_asm='-h --help -f --format -o --output -c --context -v --avoid -n --newline -z --zero -d --debug -e --encoder -i --infile -r --run'
_shtab_pwnlib_checksec='-h --help --file'
_shtab_pwnlib_constgrep='-h --help -e --exact -i --case-insensitive -m --mask-mode -c --context'
_shtab_pwnlib_cyclic='-h --help -a --alphabet -n --length -c --context -l -o --offset --lookup'
_shtab_pwnlib_debug='-h --help -x --pid -c --context --exec --process --sysroot'
_shtab_pwnlib_disablenx='-h --help'
_shtab_pwnlib_disasm='-h --help -c --context -a --address --color --no-color'
_shtab_pwnlib_elfdiff='-h --help'
_shtab_pwnlib_elfpatch='-h --help'
_shtab_pwnlib_errno='-h --help'
_shtab_pwnlib_hex='-h --help'
_shtab_pwnlib_phd='-h --help -w --width -l --highlight -s --skip -c --count -o --offset --color'
_shtab_pwnlib_pwnstrip='-h --help -b --build-id -p --patch -o --output'
_shtab_pwnlib_scramble='-h --help -f --format -o --output -c --context -p --alphanumeric -v --avoid -n --newline -z --zero -d --debug'
_shtab_pwnlib_shellcraft='-h --help -? --show -o --out -f --format -d --debug -b --before -a --after -v --avoid -n --newline -z --zero -r --run --color --no-color --syscalls --address -l --list -s --shared'
_shtab_pwnlib_template='-h --help --host --port --user --pass --password --path --quiet --color'
_shtab_pwnlib_unhex='-h --help'
_shtab_pwnlib_update='-h --help --install --pre'
_shtab_pwnlib_version='-h --help'
# $1=COMP_WORDS[1]
_shtab_compgen_files() {
compgen -f -- $1 # files
compgen -d -S '/' -- $1 # recurse into subdirs
}
# $1=COMP_WORDS[1]
_shtab_compgen_dirs() {
compgen -d -S '/' -- $1 # recurse into subdirs
}
# $1=COMP_WORDS[1]
_shtab_replace_hyphen() {
echo $1 | sed 's/-/_/g'
}
# $1=COMP_WORDS[1]
_shtab_replace_nonword() {
echo "${1//[^[:word:]]/_}"
}
# $1=COMP_WORDS[1]
_shtab_pwnlib_compgen_root_() {
local args_gen="_shtab_pwnlib_COMPGEN"
case "$word" in
-*) COMPREPLY=( $(compgen -W "$_shtab_pwnlib_options_" -- "$word"; [ -n "${!args_gen}" ] && ${!args_gen} "$word") ) ;;
*) COMPREPLY=( $(compgen -W "$_shtab_pwnlib_commands_" -- "$word"; [ -n "${!args_gen}" ] && ${!args_gen} "$word") ) ;;
esac
}
# $1=COMP_WORDS[1]
_shtab_pwnlib_compgen_command_() {
local flags_list="_shtab_pwnlib_$(_shtab_replace_nonword $1)"
local args_gen="${flags_list}_COMPGEN"
COMPREPLY=( $(compgen -W "${!flags_list}" -- "$word"; [ -n "${!args_gen}" ] && ${!args_gen} "$word") )
}
# $1=COMP_WORDS[1]
# $2=COMP_WORDS[2]
_shtab_pwnlib_compgen_subcommand_() {
local flags_list="_shtab_pwnlib_$(_shtab_replace_nonword "${1}_${2}")"
local args_gen="${flags_list}_COMPGEN"
[ -n "${!args_gen}" ] && local opts_more="$(${!args_gen} "$word")"
local opts="${!flags_list}"
if [ -z "$opts$opts_more" ]; then
_shtab_pwnlib_compgen_command_ $1
else
COMPREPLY=( $(compgen -W "$opts" -- "$word"; [ -n "$opts_more" ] && echo "$opts_more") )
fi
}
# Notes:
# `COMPREPLY` contains what will be rendered after completion is triggered
# `word` refers to the current typed word
# `${!var}` is to evaluate the content of `var`
# and expand its content as a variable
# hello="world"
# x="hello"
# ${!x} -> ${hello} -> "world"
_shtab_pwnlib() {
local word="${COMP_WORDS[COMP_CWORD]}"
COMPREPLY=()
if [ "${COMP_CWORD}" -eq 1 ]; then
_shtab_pwnlib_compgen_root_ ${COMP_WORDS[1]}
elif [ "${COMP_CWORD}" -eq 2 ]; then
_shtab_pwnlib_compgen_command_ ${COMP_WORDS[1]}
elif [ "${COMP_CWORD}" -ge 3 ]; then
_shtab_pwnlib_compgen_subcommand_ ${COMP_WORDS[1]} ${COMP_WORDS[2]}
fi
return 0
}
complete -o nospace -F _shtab_pwnlib pwn
+33 -7
View File
@@ -1,13 +1,39 @@
subdirs=xenial stable $(wildcard */)
makefiles=$(wildcard */Makefile)
subdirs=$(shell find . -type d -depth 1 | xargs basename)
tags=base stable beta dev
ROOT=$(shell git rev-parse --show-toplevel)
CMD ?= zsh
all: $(makefiles) $(subdirs)
ifneq ($(HISTFILE),)
MOUNT_HISTFILE=--mount type=bind,source="$(HISTFILE)",target=/home/pwntools/.history
endif
$(subdirs):
all: $(subdirs) $(tags)
tags: $(tags)
$(subdirs)::
@echo "Building $@"
docker build -t pwntools/pwntools:$(shell basename $(@)) "$@"
$(makefiles):
make -C $(shell dirname $@)
develop::
docker run -it \
--privileged \
--net=host \
--hostname localhost \
--ulimit core=-1:-1 \
$(MOUNT_HISTFILE) \
--mount type=bind,source="$(ROOT)",target=/home/pwntools/pwntools \
pwntools/pwntools:$(shell basename $(@)) \
$(CMD)
.PHONY: all $(subdirs) $(makefiles)
debug:
@echo "Subdirs $(subdirs)"
@echo "Tags $(tags)"
clean:
docker container prune
docker
FORCE:
.PHONY: all $(subdirs) $(makefiles) $(tags)
+53
View File
@@ -0,0 +1,53 @@
# Pwntools Docker Images
This directory contains some Docker images with various versions of Pwntools pre-installed.
## Getting Images
You can either make them yourself, or pull from Docker Hub.
### Docker Hub
To pull an image from Docker hub, just run the command:
```sh
$ docker pull pwntools/pwntools:stable
```
Replace `stable` with `beta` or `dev` as desired.
### Building Locally
To build the images locally, just invoke the `Makefile` with the desired branch target.
```sh
$ make -C extra/docker dev
```
## Running Images
To run the `stable`, `beta`, or `dev` image, we recommend the following command line, in this example it is the `dev` image.
```sh
$ docker run -it \
--privileged \
--net=host \
--ulimit core=-1:-1 \
pwntools/pwntools:dev
```
The `--privileged` option is needed to perform any debugging with GDB.
The `--ulimit` option is needed for any corefiles to drop when a program crashes.
The `--net=host` allows you to easily connect to services hosted inside the container from outside the container.
## Development Dockerfile
In addition to `stable`, `beta`, and `dev` Dockerfiles, there is also a `develop` dockerfile which mounts your Pwntools installation inside the VM so you can develop seamlessly while editing on your host.
```sh
$ make -C extra/docker develop
```
You will be dropped into a shell, and any changes you make to your local Pwntools checkout will be immediately reflected inside the Docker container. This is useful for e.g. editing on a macOS host, but testing your changes on Ubuntu without needing to copy files around.
-1
View File
@@ -1 +0,0 @@
xenial
@@ -3,20 +3,42 @@
# Based on Ubuntu
############################################################
FROM ubuntu:precise
FROM ubuntu:bionic
MAINTAINER Maintainer Gallopsled et al.
env DEBIAN_FRONTEND=noninteractive
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
RUN apt-get update \
&& apt-get install locales \
&& locale-gen en_US.UTF-8 \
&& apt-get install -y \
build-essential \
elfutils \
git \
libssl-dev \
libffi-dev \
python2.7 \
python \
python-pip \
python-dev \
python3 \
python3-pip \
python3-dev \
qemu-user-static \
binutils-arm-linux-gnueabihf \
binutils-aarch64-linux-gnu \
binutils-mips-linux-gnu \
binutils-mipsel-linux-gnu \
binutils-powerpc-linux-gnu \
binutils-powerpc64-linux-gnu \
binutils-sparc64-linux-gnu \
tmux \
&& pip install --upgrade pip \
&& python -m pip install --upgrade pwntools \
&& pip3 install --upgrade pip \
&& python3 -m pip install --upgrade pwntools \
&& PWNLIB_NOTERM=1 pwn update \
&& apt-get install -y sudo \
&& useradd -m pwntools \
+1
View File
@@ -2,5 +2,6 @@ FROM pwntools/pwntools:stable
USER root
RUN pip install --upgrade git+https://github.com/Gallopsled/pwntools@beta
RUN pip3 install --upgrade git+https://github.com/Gallopsled/pwntools@beta
RUN PWNLIB_NOTERM=1 pwn update
USER pwntools
+8
View File
@@ -0,0 +1,8 @@
from debian:buster
RUN apt-get update
RUN apt-get -y dist-upgrade
RUN apt-get -y install python3 python3-pip
RUN apt-get -y install git wget unzip
RUN pip3 install --upgrade git+https://github.com/Gallopsled/pwntools@dev
+1
View File
@@ -2,5 +2,6 @@ FROM pwntools/pwntools:stable
USER root
RUN pip install --upgrade git+https://github.com/Gallopsled/pwntools@dev
RUN pip3 install --upgrade git+https://github.com/Gallopsled/pwntools@dev
RUN PWNLIB_NOTERM=1 pwn update
USER pwntools
+5
View File
@@ -0,0 +1,5 @@
try:
from pwn import *
except Exception:
print("Could not import pwntools")
import os, re, sys, time, random, urllib, datetime, itertools, subprocess, multiprocessing
+86
View File
@@ -0,0 +1,86 @@
FROM pwntools/pwntools:base
# Support sharing history with the develop Dockerfile
ENV HISTFILE=/home/pwntools/.history
# Uninstall existing versions of pwntools
USER root
RUN python -m pip uninstall -q -y pwntools \
&& python3 -m pip uninstall -q -y pwntools
# Switch back to the pwntools user from here forward
USER pwntools
WORKDIR /home/pwntools
# Since we are not installing Pwntools systemwide, the "pwn" binaries
# etc will all end up in this path.
ENV PATH="/home/pwntools/.local/bin:${PATH}"
# Install Pwntools to the home directory, make it an editable install
RUN git clone https://github.com/Gallopsled/pwntools \
&& python -m pip install --upgrade --editable pwntools \
&& python3 -m pip install --upgrade --editable pwntools \
&& PWNLIB_NOTERM=1 pwn version
# Requirements for running the tests
RUN python -m pip install --upgrade --requirement pwntools/docs/requirements.txt \
&& python3 -m pip install --upgrade --requirement pwntools/docs/requirements.txt
# Python niceties for debugging
RUN python -m pip install -U ipython ipdb \
&& python3 -m pip install -U ipython ipdb
# Dependencies from .travis.yml addons -> apt -> packages
RUN sudo apt-get install -y \
ash \
bash \
bash-static \
binutils-msp430 \
binutils-multiarch \
binutils-s390x-linux-gnu \
dash \
gcc \
gcc-multilib \
gdb \
ksh \
lib32stdc++6 \
libc6-dev-i386 \
mksh \
pandoc \
qemu-user-static \
socat \
sshpass \
vim \
zsh
# Misc useful things when developing
RUN sudo apt-get install -y \
curl \
ipython \
ipython3 \
lsb-release \
ssh \
unzip \
wget
# Use zsh by default
RUN sudo chsh -s /bin/zsh pwntools
# Get and install prezto
RUN git clone --recursive https://github.com/sorin-ionescu/prezto.git .zprezto
RUN bash -c 'for file in .zprezto/runcoms/z*; do ln -s $file .$(basename $file); done'
# Get and install pwndbg
RUN git clone --recursive https://github.com/pwndbg/pwndbg
RUN cd pwndbg && ./setup.sh
# Install autocompletion
RUN ln -s /home/pwntools/pwntools/extra/zsh_completion/_pwn /home/pwntools/.zprezto/modules/completion/external/src
# Install ipython profile and auto-import
RUN mkdir -p /home/pwntools/.ipython/profile_default/startup
ADD 10-import.py /home/pwntools/.ipython/profile_default/startup
ADD ipython_config.py /home/pwntools/.ipython/profile_default
# Do not require password for sudo
RUN echo "pwntools ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/travis
+563
View File
@@ -0,0 +1,563 @@
# Configuration file for ipython.
c = get_config()
#------------------------------------------------------------------------------
# InteractiveShellApp configuration
#------------------------------------------------------------------------------
# A Mixin for applications that start InteractiveShell instances.
#
# Provides configurables for loading extensions and executing files as part of
# configuring a Shell environment.
#
# The following methods should be called by the :meth:`initialize` method of the
# subclass:
#
# - :meth:`init_path`
# - :meth:`init_shell` (to be implemented by the subclass)
# - :meth:`init_gui_pylab`
# - :meth:`init_extensions`
# - :meth:`init_code`
# Execute the given command string.
# c.InteractiveShellApp.code_to_run = ''
# Run the file referenced by the PYTHONSTARTUP environment variable at IPython
# startup.
# c.InteractiveShellApp.exec_PYTHONSTARTUP = True
# lines of code to run at IPython startup.
c.InteractiveShell.confirm_exit = False
c.InteractiveShell.separate_in = ''
c.InteractiveShell.separate_out = ''
c.InteractiveShell.separate_out2 = ''
# c.PromptManager.in_template = '>>> '
# c.PromptManager.in2_template = '..: '
# c.PromptManager.out_template = ''
# c.PromptManager.justify = False
c.TerminalIPythonApp.display_banner = False
from IPython.terminal.prompts import Prompts, Token
class ClassicPrompts(Prompts):
def in_prompt_tokens(self, cli=None):
return [
(Token.Prompt, '>>> '),
]
def continuation_prompt_tokens(self, cli=None, width=None):
return [
(Token.Prompt, '... ')
]
def rewrite_prompt_tokens(self):
return []
def out_prompt_tokens(self):
return []
c.TerminalInteractiveShell.prompts_class = ClassicPrompts
# Enable GUI event loop integration with any of ('glut', 'gtk', 'gtk3', 'none',
# 'osx', 'pyglet', 'qt', 'qt4', 'tk', 'wx').
# c.InteractiveShellApp.gui = None
# Pre-load matplotlib and numpy for interactive use, selecting a particular
# matplotlib backend and loop integration.
# c.InteractiveShellApp.pylab = None
# Configure matplotlib for interactive use with the default matplotlib backend.
# c.InteractiveShellApp.matplotlib = None
# If true, IPython will populate the user namespace with numpy, pylab, etc. and
# an ``import *`` is done from numpy and pylab, when using pylab mode.
#
# When False, pylab mode should not import any names into the user namespace.
# c.InteractiveShellApp.pylab_import_all = True
# A list of dotted module names of IPython extensions to load.
# c.InteractiveShellApp.extensions = []
# Run the module as a script.
# c.InteractiveShellApp.module_to_run = ''
# Should variables loaded at startup (by startup files, exec_lines, etc.) be
# hidden from tools like %who?
# c.InteractiveShellApp.hide_initial_ns = True
# dotted module name of an IPython extension to load.
# c.InteractiveShellApp.extra_extension = ''
# List of files to run at IPython startup.
# c.InteractiveShellApp.exec_files = []
# A file to be run
# c.InteractiveShellApp.file_to_run = ''
#------------------------------------------------------------------------------
# TerminalIPythonApp configuration
#------------------------------------------------------------------------------
# TerminalIPythonApp will inherit config from: BaseIPythonApplication,
# Application, InteractiveShellApp
# Run the file referenced by the PYTHONSTARTUP environment variable at IPython
# startup.
# c.TerminalIPythonApp.exec_PYTHONSTARTUP = True
# Pre-load matplotlib and numpy for interactive use, selecting a particular
# matplotlib backend and loop integration.
# c.TerminalIPythonApp.pylab = None
# Create a massive crash report when IPython encounters what may be an internal
# error. The default is to append a short message to the usual traceback
# c.TerminalIPythonApp.verbose_crash = False
# Run the module as a script.
# c.TerminalIPythonApp.module_to_run = ''
# The date format used by logging formatters for %(asctime)s
# c.TerminalIPythonApp.log_datefmt = '%Y-%m-%d %H:%M:%S'
# Whether to overwrite existing config files when copying
# c.TerminalIPythonApp.overwrite = False
# Execute the given command string.
# c.TerminalIPythonApp.code_to_run = ''
# Set the log level by value or name.
# c.TerminalIPythonApp.log_level = 30
# lines of code to run at IPython startup.
# c.TerminalIPythonApp.exec_lines = []
# Suppress warning messages about legacy config files
# c.TerminalIPythonApp.ignore_old_config = False
# Path to an extra config file to load.
#
# If specified, load this config file in addition to any other IPython config.
# c.TerminalIPythonApp.extra_config_file = u''
# Should variables loaded at startup (by startup files, exec_lines, etc.) be
# hidden from tools like %who?
# c.TerminalIPythonApp.hide_initial_ns = True
# dotted module name of an IPython extension to load.
# c.TerminalIPythonApp.extra_extension = ''
# A file to be run
# c.TerminalIPythonApp.file_to_run = ''
# The IPython profile to use.
# c.TerminalIPythonApp.profile = u'default'
# Configure matplotlib for interactive use with the default matplotlib backend.
# c.TerminalIPythonApp.matplotlib = None
# If a command or file is given via the command-line, e.g. 'ipython foo.py',
# start an interactive shell after executing the file or command.
# c.TerminalIPythonApp.force_interact = False
# If true, IPython will populate the user namespace with numpy, pylab, etc. and
# an ``import *`` is done from numpy and pylab, when using pylab mode.
#
# When False, pylab mode should not import any names into the user namespace.
# c.TerminalIPythonApp.pylab_import_all = True
# The name of the IPython directory. This directory is used for logging
# configuration (through profiles), history storage, etc. The default is usually
# $HOME/.ipython. This options can also be specified through the environment
# variable IPYTHONDIR.
# c.TerminalIPythonApp.ipython_dir = u''
# Whether to display a banner upon starting IPython.
# c.TerminalIPythonApp.display_banner = True
# Whether to install the default config files into the profile dir. If a new
# profile is being created, and IPython contains config files for that profile,
# then they will be staged into the new directory. Otherwise, default config
# files will be automatically generated.
# c.TerminalIPythonApp.copy_config_files = False
# List of files to run at IPython startup.
# c.TerminalIPythonApp.exec_files = []
# Enable GUI event loop integration with any of ('glut', 'gtk', 'gtk3', 'none',
# 'osx', 'pyglet', 'qt', 'qt4', 'tk', 'wx').
# c.TerminalIPythonApp.gui = None
# A list of dotted module names of IPython extensions to load.
# c.TerminalIPythonApp.extensions = []
# Start IPython quickly by skipping the loading of config files.
# c.TerminalIPythonApp.quick = False
# The Logging format template
# c.TerminalIPythonApp.log_format = '[%(name)s]%(highlevel)s %(message)s'
#------------------------------------------------------------------------------
# TerminalInteractiveShell configuration
#------------------------------------------------------------------------------
# TerminalInteractiveShell will inherit config from: InteractiveShell
# auto editing of files with syntax errors.
# c.TerminalInteractiveShell.autoedit_syntax = False
# Use colors for displaying information about objects. Because this information
# is passed through a pager (like 'less'), and some pagers get confused with
# color codes, this capability can be turned off.
# c.TerminalInteractiveShell.color_info = True
# A list of ast.NodeTransformer subclass instances, which will be applied to
# user input before code is run.
# c.TerminalInteractiveShell.ast_transformers = []
#
# c.TerminalInteractiveShell.history_length = 10000
# Don't call post-execute functions that have failed in the past.
# c.TerminalInteractiveShell.disable_failing_post_execute = False
# Show rewritten input, e.g. for autocall.
# c.TerminalInteractiveShell.show_rewritten_input = True
# Set the color scheme (NoColor, Linux, or LightBG).
# c.TerminalInteractiveShell.colors = 'Linux'
# Autoindent IPython code entered interactively.
# c.TerminalInteractiveShell.autoindent = True
#
# c.TerminalInteractiveShell.separate_in = '\n'
# Deprecated, use PromptManager.in2_template
# c.TerminalInteractiveShell.prompt_in2 = ' .\\D.: '
#
# c.TerminalInteractiveShell.separate_out = ''
# Deprecated, use PromptManager.in_template
# c.TerminalInteractiveShell.prompt_in1 = 'In [\\#]: '
# Make IPython automatically call any callable object even if you didn't type
# explicit parentheses. For example, 'str 43' becomes 'str(43)' automatically.
# The value can be '0' to disable the feature, '1' for 'smart' autocall, where
# it is not applied if there are no more arguments on the line, and '2' for
# 'full' autocall, where all callable objects are automatically called (even if
# no arguments are present).
# c.TerminalInteractiveShell.autocall = 0
# Number of lines of your screen, used to control printing of very long strings.
# Strings longer than this number of lines will be sent through a pager instead
# of directly printed. The default value for this is 0, which means IPython
# will auto-detect your screen size every time it needs to print certain
# potentially long strings (this doesn't change the behavior of the 'print'
# keyword, it's only triggered internally). If for some reason this isn't
# working well (it needs curses support), specify it yourself. Otherwise don't
# change the default.
# c.TerminalInteractiveShell.screen_length = 0
# Set the editor used by IPython (default to $EDITOR/vi/notepad).
# c.TerminalInteractiveShell.editor = u'nano'
# Deprecated, use PromptManager.justify
# c.TerminalInteractiveShell.prompts_pad_left = True
# The part of the banner to be printed before the profile
# c.TerminalInteractiveShell.banner1 = 'Python 2.7.6 (default, Apr 23 2014, 12:04:55) \nType "copyright", "credits" or "license" for more information.\n\nIPython 2.0.0 -- An enhanced Interactive Python.\n? -> Introduction and overview of IPython\'s features.\n%quickref -> Quick reference.\nhelp -> Python\'s own help system.\nobject? -> Details about \'object\', use \'object??\' for extra details.\n'
#
# c.TerminalInteractiveShell.readline_parse_and_bind = ['tab: complete', '"\\C-l": clear-screen', 'set show-all-if-ambiguous on', '"\\C-o": tab-insert', '"\\C-r": reverse-search-history', '"\\C-s": forward-search-history', '"\\C-p": history-search-backward', '"\\C-n": history-search-forward', '"\\e[A": history-search-backward', '"\\e[B": history-search-forward', '"\\C-k": kill-line', '"\\C-u": unix-line-discard']
# The part of the banner to be printed after the profile
# c.TerminalInteractiveShell.banner2 = ''
#
# c.TerminalInteractiveShell.separate_out2 = ''
#
# c.TerminalInteractiveShell.wildcards_case_sensitive = True
#
# c.TerminalInteractiveShell.debug = False
# Set to confirm when you try to exit IPython with an EOF (Control-D in Unix,
# Control-Z/Enter in Windows). By typing 'exit' or 'quit', you can force a
# direct exit without any confirmation.
# c.TerminalInteractiveShell.confirm_exit = True
#
# c.TerminalInteractiveShell.ipython_dir = ''
#
# c.TerminalInteractiveShell.readline_remove_delims = '-/~'
# Start logging to the default log file.
# c.TerminalInteractiveShell.logstart = False
# The name of the logfile to use.
# c.TerminalInteractiveShell.logfile = ''
# The shell program to be used for paging.
# c.TerminalInteractiveShell.pager = 'less'
# Enable magic commands to be called without the leading %.
# c.TerminalInteractiveShell.automagic = True
# Save multi-line entries as one entry in readline history
# c.TerminalInteractiveShell.multiline_history = True
#
# c.TerminalInteractiveShell.readline_use = True
# Enable deep (recursive) reloading by default. IPython can use the deep_reload
# module which reloads changes in modules recursively (it replaces the reload()
# function, so you don't need to change anything to use it). deep_reload()
# forces a full reload of modules whose code may have changed, which the default
# reload() function does not. When deep_reload is off, IPython will use the
# normal reload(), but deep_reload will still be available as dreload().
# c.TerminalInteractiveShell.deep_reload = False
# Start logging to the given file in append mode.
# c.TerminalInteractiveShell.logappend = ''
#
# c.TerminalInteractiveShell.xmode = 'Context'
#
# c.TerminalInteractiveShell.quiet = False
# Enable auto setting the terminal title.
# c.TerminalInteractiveShell.term_title = False
#
# c.TerminalInteractiveShell.object_info_string_level = 0
# Deprecated, use PromptManager.out_template
# c.TerminalInteractiveShell.prompt_out = 'Out[\\#]: '
# Set the size of the output cache. The default is 1000, you can change it
# permanently in your config file. Setting it to 0 completely disables the
# caching system, and the minimum value accepted is 20 (if you provide a value
# less than 20, it is reset to 0 and a warning is issued). This limit is
# defined because otherwise you'll spend more time re-flushing a too small cache
# than working
# c.TerminalInteractiveShell.cache_size = 1000
# 'all', 'last', 'last_expr' or 'none', specifying which nodes should be run
# interactively (displaying output from expressions).
# c.TerminalInteractiveShell.ast_node_interactivity = 'last_expr'
# Automatically call the pdb debugger after every exception.
# c.TerminalInteractiveShell.pdb = False
#------------------------------------------------------------------------------
# PromptManager configuration
#------------------------------------------------------------------------------
# This is the primary interface for producing IPython's prompts.
# Output prompt. '\#' will be transformed to the prompt number
# c.PromptManager.out_template = 'Out[\\#]: '
# Continuation prompt.
# c.PromptManager.in2_template = ' .\\D.: '
# If True (default), each prompt will be right-aligned with the preceding one.
# c.PromptManager.justify = True
# Input prompt. '\#' will be transformed to the prompt number
# c.PromptManager.in_template = 'In [\\#]: '
#
# c.PromptManager.color_scheme = 'Linux'
#------------------------------------------------------------------------------
# HistoryManager configuration
#------------------------------------------------------------------------------
# A class to organize all history-related functionality in one place.
# HistoryManager will inherit config from: HistoryAccessor
# Should the history database include output? (default: no)
# c.HistoryManager.db_log_output = False
# Write to database every x commands (higher values save disk access & power).
# Values of 1 or less effectively disable caching.
# c.HistoryManager.db_cache_size = 0
# Path to file to use for SQLite history database.
#
# By default, IPython will put the history database in the IPython profile
# directory. If you would rather share one history among profiles, you can set
# this value in each, so that they are consistent.
#
# Due to an issue with fcntl, SQLite is known to misbehave on some NFS mounts.
# If you see IPython hanging, try setting this to something on a local disk,
# e.g::
#
# ipython --HistoryManager.hist_file=/tmp/ipython_hist.sqlite
# c.HistoryManager.hist_file = u''
# Options for configuring the SQLite connection
#
# These options are passed as keyword args to sqlite3.connect when establishing
# database conenctions.
# c.HistoryManager.connection_options = {}
# enable the SQLite history
#
# set enabled=False to disable the SQLite history, in which case there will be
# no stored history, no SQLite connection, and no background saving thread.
# This may be necessary in some threaded environments where IPython is embedded.
# c.HistoryManager.enabled = True
#------------------------------------------------------------------------------
# ProfileDir configuration
#------------------------------------------------------------------------------
# An object to manage the profile directory and its resources.
#
# The profile directory is used by all IPython applications, to manage
# configuration, logging and security.
#
# This object knows how to find, create and manage these directories. This
# should be used by any code that wants to handle profiles.
# Set the profile location directly. This overrides the logic used by the
# `profile` option.
# c.ProfileDir.location = u''
#------------------------------------------------------------------------------
# PlainTextFormatter configuration
#------------------------------------------------------------------------------
# The default pretty-printer.
#
# This uses :mod:`IPython.lib.pretty` to compute the format data of the object.
# If the object cannot be pretty printed, :func:`repr` is used. See the
# documentation of :mod:`IPython.lib.pretty` for details on how to write pretty
# printers. Here is a simple example::
#
# def dtype_pprinter(obj, p, cycle):
# if cycle:
# return p.text('dtype(...)')
# if hasattr(obj, 'fields'):
# if obj.fields is None:
# p.text(repr(obj))
# else:
# p.begin_group(7, 'dtype([')
# for i, field in enumerate(obj.descr):
# if i > 0:
# p.text(',')
# p.breakable()
# p.pretty(field)
# p.end_group(7, '])')
# PlainTextFormatter will inherit config from: BaseFormatter
#
# c.PlainTextFormatter.type_printers = {}
#
# c.PlainTextFormatter.newline = '\n'
#
# c.PlainTextFormatter.float_precision = ''
#
# c.PlainTextFormatter.verbose = False
#
# c.PlainTextFormatter.deferred_printers = {}
#
# c.PlainTextFormatter.pprint = True
#
# c.PlainTextFormatter.max_width = 79
#
# c.PlainTextFormatter.singleton_printers = {}
#------------------------------------------------------------------------------
# IPCompleter configuration
#------------------------------------------------------------------------------
# Extension of the completer class with IPython-specific features
# IPCompleter will inherit config from: Completer
# Instruct the completer to omit private method names
#
# Specifically, when completing on ``object.<tab>``.
#
# When 2 [default]: all names that start with '_' will be excluded.
#
# When 1: all 'magic' names (``__foo__``) will be excluded.
#
# When 0: nothing will be excluded.
# c.IPCompleter.omit__names = 2
# Whether to merge completion results into a single list
#
# If False, only the completion results from the first non-empty completer will
# be returned.
# c.IPCompleter.merge_completions = True
# Instruct the completer to use __all__ for the completion
#
# Specifically, when completing on ``object.<tab>``.
#
# When True: only those names in obj.__all__ will be included.
#
# When False [default]: the __all__ attribute is ignored
# c.IPCompleter.limit_to__all__ = False
# Activate greedy completion
#
# This will enable completion on elements of lists, results of function calls,
# etc., but can be unsafe because the code is actually evaluated on TAB.
# c.IPCompleter.greedy = False
#------------------------------------------------------------------------------
# ScriptMagics configuration
#------------------------------------------------------------------------------
# Magics for talking to scripts
#
# This defines a base `%%script` cell magic for running a cell with a program in
# a subprocess, and registers a few top-level magics that call %%script with
# common interpreters.
# Extra script cell magics to define
#
# This generates simple wrappers of `%%script foo` as `%%foo`.
#
# If you want to add script magics that aren't on your path, specify them in
# script_paths
# c.ScriptMagics.script_magics = []
# Dict mapping short 'ruby' names to full paths, such as '/opt/secret/bin/ruby'
#
# Only necessary for items in script_magics where the default path will not find
# the right interpreter.
# c.ScriptMagics.script_paths = {}
#------------------------------------------------------------------------------
# StoreMagics configuration
#------------------------------------------------------------------------------
# Lightweight persistence for python variables.
#
# Provides the %store magic.
# If True, any %store-d variables will be automatically restored when IPython
# starts.
# c.StoreMagics.autorestore = False
-26
View File
@@ -1,26 +0,0 @@
############################################################
# Dockerfile to build Pwntools container
# Based on Ubuntu
############################################################
FROM kalilinux/kali-linux-docker
MAINTAINER Maintainer Gallopsled et al.
RUN apt-get update \
&& apt-get install -y \
build-essential \
git \
libssl-dev \
libffi-dev \
python2.7 \
python-pip \
python-dev \
&& pip install --upgrade pip \
&& python -m pip install --upgrade pwntools \
&& PWNLIB_NOTERM=1 pwn update \
&& apt-get install -y sudo \
&& useradd -m pwntools \
&& passwd --delete --unlock pwntools \
&& echo "pwntools ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/pwntools
USER pwntools
WORKDIR /home/pwntools
-8
View File
@@ -1,8 +0,0 @@
all: Dockerfile
Dockerfile: ../xenial/Dockerfile FORCE
sed "s|ubuntu:xenial|kalilinux/kali-linux-docker|" < "$<" > "$@"
FORCE:
.PHONY: all
-8
View File
@@ -1,8 +0,0 @@
all: Dockerfile
Dockerfile: ../xenial/Dockerfile FORCE
sed "s|ubuntu:xenial|ubuntu:precise|" < "$<" > "$@"
FORCE:
.PHONY: all
+1
View File
@@ -2,5 +2,6 @@ FROM pwntools/pwntools:base
USER root
RUN pip install --upgrade git+https://github.com/Gallopsled/pwntools@stable
RUN pip3 install --upgrade git+https://github.com/Gallopsled/pwntools@stable
RUN PWNLIB_NOTERM=1 pwn update
USER pwntools
-26
View File
@@ -1,26 +0,0 @@
############################################################
# Dockerfile to build Pwntools container
# Based on Ubuntu
############################################################
FROM ubuntu:trusty
MAINTAINER Maintainer Gallopsled et al.
RUN apt-get update \
&& apt-get install -y \
build-essential \
git \
libssl-dev \
libffi-dev \
python2.7 \
python-pip \
python-dev \
&& pip install --upgrade pip \
&& python -m pip install --upgrade pwntools \
&& PWNLIB_NOTERM=1 pwn update \
&& apt-get install -y sudo \
&& useradd -m pwntools \
&& passwd --delete --unlock pwntools \
&& echo "pwntools ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/pwntools
USER pwntools
WORKDIR /home/pwntools
-8
View File
@@ -1,8 +0,0 @@
all: Dockerfile
Dockerfile: ../xenial/Dockerfile FORCE
sed "s|ubuntu:xenial|ubuntu:trusty|" < "$<" > "$@"
FORCE:
.PHONY: all
-26
View File
@@ -1,26 +0,0 @@
############################################################
# Dockerfile to build Pwntools container
# Based on Ubuntu
############################################################
FROM ubuntu:xenial
MAINTAINER Maintainer Gallopsled et al.
RUN apt-get update \
&& apt-get install -y \
build-essential \
git \
libssl-dev \
libffi-dev \
python2.7 \
python-pip \
python-dev \
&& pip install --upgrade pip \
&& python -m pip install --upgrade pwntools \
&& PWNLIB_NOTERM=1 pwn update \
&& apt-get install -y sudo \
&& useradd -m pwntools \
&& passwd --delete --unlock pwntools \
&& echo "pwntools ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/pwntools
USER pwntools
WORKDIR /home/pwntools
+5
View File
@@ -0,0 +1,5 @@
# ZSH Completion
To install the completion, copy `_pwn` to somewhere in your `$fpath`.
The `./install.sh` script attempts to automate this, and advises an alternative method if that's unavailable.
+197
View File
@@ -0,0 +1,197 @@
#compdef pwn
# ----------------------------------------------------------------------------------------
# Zsh completion file for pwn
#
# Pwntools Command-line Interface
#
# This file was generated with help from Zargparse (https://github.com/ctil/zargparse)
# ----------------------------------------------------------------------------------------
typeset -A opt_args
_pwn() {
# Define the subcommands
local -a commands
commands=(
'asm:Assemble shellcode into bytes'
'checksec:Check binary security settings'
'constgrep:Looking up constants from header files.'
'cyclic:Cyclic pattern creator/finder'
'debug:Debug a binary in GDB'
'disasm:Disassemble bytes into text format'
'disablenx:Disable NX for an ELF binary'
'elfdiff:Compare two ELF files'
'elfpatch:Patch an ELF file'
'errno:Prints out error messages'
'hex:Hex-encodes data provided on the command line or stdin'
'phd:Pretty hex dump'
'scramble:Strip binaries for CTF usage'
'shellcraft:Shellcode encoder'
'template:Microwave shellcode -- Easy, fast and delicious'
'unhex:Generate an exploit template'
'update:Decodes hex-encoded data provided on the command line or via stdin.'
'version:Check for pwntools updates'
)
# Global flags (i.e. ones not associated with a subcommand)
_arguments \
"1: :{_describe 'command' commands}" \
'(-h --help)'{-h,--help}'[show this help message and exit]' \
'*:: :->args'
# Flags for each subcommand
case $state in
args)
case $words[1] in
pwnstrip)
_arguments \
'(-h --help)'{-h,--help}'[show this help message and exit]' \
'(-b --build-id)'{-b,--build-id}'[Strip build ID]' \
'(-p --patch)'{-p,--patch}'=[Patch function]:' \
'(-o --output)'{-o,--output}'=[None]:' \
;;
asm)
_arguments \
'(-h --help)'{-h,--help}'[show this help message and exit]' \
'(-f --format)'{-f,--format}'=[Output format (defaults to hex for ttys, otherwise raw)]:-f :(raw hex string elf)' \
'(-o --output)'{-o,--output}'=[Output file (defaults to stdout)]:' \
'(-c --context)'{-c,--context}'=[The os/architecture/endianness/bits the shellcode will run in (default: linux/i386), choose from: \["16", "32", "64", "android", "baremetal", "cgc", "freebsd", "linux", "windows", "powerpc64", "aarch64", "powerpc", "sparc64", "mips64", "msp430", "alpha", "amd64", "sparc", "thumb", "cris", "i386", "ia64", "m68k", "mips", "s390", "none", "avr", "arm", "vax", "little", "big", "be", "eb", "le", "el"\]]:-c :(16 32 64 android baremetal cgc freebsd linux windows powerpc64 aarch64 powerpc sparc64 mips64 msp430 alpha amd64 sparc thumb cris i386 ia64 m68k mips s390 none avr arm vax little big be eb le el)' \
'(-v --avoid)'{-v,--avoid}'=[Encode the shellcode to avoid the listed bytes (provided as hex)]:' \
'(-n --newline)'{-n,--newline}'[Encode the shellcode to avoid newlines]' \
'(-z --zero)'{-z,--zero}'[Encode the shellcode to avoid NULL bytes]' \
'(-d --debug)'{-d,--debug}'[Debug the shellcode with GDB]' \
'(-e --encoder)'{-e,--encoder}'=[Specific encoder to use]:' \
'(-i --infile)'{-i,--infile}'=[Specify input file]:' \
'(-r --run)'{-r,--run}'[Run output]' \
;;
checksec)
_arguments \
'(-h --help)'{-h,--help}'[show this help message and exit]' \
'--file=[File to check (for compatibility with checksec.sh)]:' \
;;
constgrep)
_arguments \
'(-h --help)'{-h,--help}'[show this help message and exit]' \
'(-e --exact)'{-e,--exact}'[Do an exact match for a constant instead of searching for a regex]' \
'(-i --case-insensitive)'{-i,--case-insensitive}'[Search case insensitive]' \
'(-m --mask-mode)'{-m,--mask-mode}'[Instead of searching for a specific constant value, search for values not containing strictly less bits that the given value.]' \
'(-c --context)'{-c,--context}'=[The os/architecture/endianness/bits the shellcode will run in (default: linux/i386), choose from: \["16", "32", "64", "android", "baremetal", "cgc", "freebsd", "linux", "windows", "powerpc64", "aarch64", "powerpc", "sparc64", "mips64", "msp430", "alpha", "amd64", "sparc", "thumb", "cris", "i386", "ia64", "m68k", "mips", "s390", "none", "avr", "arm", "vax", "little", "big", "be", "eb", "le", "el"\]]:-c :(16 32 64 android baremetal cgc freebsd linux windows powerpc64 aarch64 powerpc sparc64 mips64 msp430 alpha amd64 sparc thumb cris i386 ia64 m68k mips s390 none avr arm vax little big be eb le el)' \
;;
cyclic)
_arguments \
'(-h --help)'{-h,--help}'[show this help message and exit]' \
'(-a --alphabet)'{-a,--alphabet}'=[The alphabet to use in the cyclic pattern (defaults to all lower case letters)]:' \
'(-n --length)'{-n,--length}'=[Size of the unique subsequences (defaults to 4).]:' \
'(-c --context)'{-c,--context}'=[The os/architecture/endianness/bits the shellcode will run in (default: linux/i386), choose from: \["16", "32", "64", "android", "baremetal", "cgc", "freebsd", "linux", "windows", "powerpc64", "aarch64", "powerpc", "sparc64", "mips64", "msp430", "alpha", "amd64", "sparc", "thumb", "cris", "i386", "ia64", "m68k", "mips", "s390", "none", "avr", "arm", "vax", "little", "big", "be", "eb", "le", "el"\]]:-c :(16 32 64 android baremetal cgc freebsd linux windows powerpc64 aarch64 powerpc sparc64 mips64 msp430 alpha amd64 sparc thumb cris i386 ia64 m68k mips s390 none avr arm vax little big be eb le el)' \
'(-l -o --offset --lookup)'{-l,-o,--offset,--lookup}'=[Do a lookup instead printing the alphabet]:' \
;;
debug)
_arguments \
'(-h --help)'{-h,--help}'[show this help message and exit]' \
'-x=[Execute GDB commands from this file.]:' \
'--pid=[PID to attach to]:' \
'(-c --context)'{-c,--context}'=[The os/architecture/endianness/bits the shellcode will run in (default: linux/i386), choose from: \["16", "32", "64", "android", "baremetal", "cgc", "freebsd", "linux", "windows", "powerpc64", "aarch64", "powerpc", "sparc64", "mips64", "msp430", "alpha", "amd64", "sparc", "thumb", "cris", "i386", "ia64", "m68k", "mips", "s390", "none", "avr", "arm", "vax", "little", "big", "be", "eb", "le", "el"\]]:-c :(16 32 64 android baremetal cgc freebsd linux windows powerpc64 aarch64 powerpc sparc64 mips64 msp430 alpha amd64 sparc thumb cris i386 ia64 m68k mips s390 none avr arm vax little big be eb le el)' \
'--exec=[File to debug]:' \
'--process=[Name of the process to attach to (e.g. "bash")]:' \
'--sysroot=[GDB sysroot path]:' \
;;
disasm)
_arguments \
'(-h --help)'{-h,--help}'[show this help message and exit]' \
'(-c --context)'{-c,--context}'=[The os/architecture/endianness/bits the shellcode will run in (default: linux/i386), choose from: \["16", "32", "64", "android", "baremetal", "cgc", "freebsd", "linux", "windows", "powerpc64", "aarch64", "powerpc", "sparc64", "mips64", "msp430", "alpha", "amd64", "sparc", "thumb", "cris", "i386", "ia64", "m68k", "mips", "s390", "none", "avr", "arm", "vax", "little", "big", "be", "eb", "le", "el"\]]:-c :(16 32 64 android baremetal cgc freebsd linux windows powerpc64 aarch64 powerpc sparc64 mips64 msp430 alpha amd64 sparc thumb cris i386 ia64 m68k mips s390 none avr arm vax little big be eb le el)' \
'(-a --address)'{-a,--address}'=[Base address]:' \
'--color[Color output]' \
'--no-color[Disable color output]' \
;;
disablenx)
_arguments \
'(-h --help)'{-h,--help}'[show this help message and exit]' \
;;
elfdiff)
_arguments \
'(-h --help)'{-h,--help}'[show this help message and exit]' \
;;
elfpatch)
_arguments \
'(-h --help)'{-h,--help}'[show this help message and exit]' \
;;
errno)
_arguments \
'(-h --help)'{-h,--help}'[show this help message and exit]' \
;;
hex)
_arguments \
'(-h --help)'{-h,--help}'[show this help message and exit]' \
;;
phd)
_arguments \
'(-h --help)'{-h,--help}'[show this help message and exit]' \
'(-w --width)'{-w,--width}'=[Number of bytes per line.]:' \
'(-l --highlight)'{-l,--highlight}'=[Byte to highlight.]:' \
'(-s --skip)'{-s,--skip}'=[Skip this many initial bytes.]:' \
'(-c --count)'{-c,--count}'=[Only show this many bytes.]:' \
'(-o --offset)'{-o,--offset}'=[Addresses in left hand column starts at this address.]:' \
'--color=[Colorize the output. When "auto" output is colorized exactly when stdout is a TTY. Default is "auto".]:--color :(always never auto)' \
;;
scramble)
_arguments \
'(-h --help)'{-h,--help}'[show this help message and exit]' \
'(-f --format)'{-f,--format}'=[Output format (defaults to hex for ttys, otherwise raw)]:-f :(raw hex string elf)' \
'(-o --output)'{-o,--output}'=[Output file (defaults to stdout)]:' \
'(-c --context)'{-c,--context}'=[The os/architecture/endianness/bits the shellcode will run in (default: linux/i386), choose from: \["16", "32", "64", "android", "baremetal", "cgc", "freebsd", "linux", "windows", "powerpc64", "aarch64", "powerpc", "sparc64", "mips64", "msp430", "alpha", "amd64", "sparc", "thumb", "cris", "i386", "ia64", "m68k", "mips", "s390", "none", "avr", "arm", "vax", "little", "big", "be", "eb", "le", "el"\]]:-c :(16 32 64 android baremetal cgc freebsd linux windows powerpc64 aarch64 powerpc sparc64 mips64 msp430 alpha amd64 sparc thumb cris i386 ia64 m68k mips s390 none avr arm vax little big be eb le el)' \
'(-p --alphanumeric)'{-p,--alphanumeric}'[Encode the shellcode with an alphanumeric encoder]' \
'(-v --avoid)'{-v,--avoid}'=[Encode the shellcode to avoid the listed bytes]:' \
'(-n --newline)'{-n,--newline}'[Encode the shellcode to avoid newlines]' \
'(-z --zero)'{-z,--zero}'[Encode the shellcode to avoid NULL bytes]' \
'(-d --debug)'{-d,--debug}'[Debug the shellcode with GDB]' \
;;
shellcraft)
_arguments \
'(-h --help)'{-h,--help}'[show this help message and exit]' \
'(-? --show)'{-?,--show}'[Show shellcode documentation]' \
'(-o --out)'{-o,--out}'=[Output file (default: stdout)]:' \
'(-f --format)'{-f,--format}'=[Output format (default: hex), choose from {e}lf, {r}aw, {s}tring, {c}-style array, {h}ex string, hex{i}i, {a}ssembly code, {p}reprocssed code, escape{d} hex string]:-f :(r raw s str string c h hex a asm assembly p i hexii e elf d escaped default)' \
'(-d --debug)'{-d,--debug}'[Debug the shellcode with GDB]' \
'(-b --before)'{-b,--before}'[Insert a debug trap before the code]' \
'(-a --after)'{-a,--after}'[Insert a debug trap after the code]' \
'(-v --avoid)'{-v,--avoid}'=[Encode the shellcode to avoid the listed bytes]:' \
'(-n --newline)'{-n,--newline}'[Encode the shellcode to avoid newlines]' \
'(-z --zero)'{-z,--zero}'[Encode the shellcode to avoid NULL bytes]' \
'(-r --run)'{-r,--run}'[Run output]' \
'--color[Color output]' \
'--no-color[Disable color output]' \
'--syscalls[List syscalls]' \
'--address=[Load address]:' \
'(-l --list)'{-l,--list}'[List available shellcodes, optionally provide a filter]' \
'(-s --shared)'{-s,--shared}'[Generated ELF is a shared library]' \
;;
template)
_arguments \
'(-h --help)'{-h,--help}'[show this help message and exit]' \
'--host=[Remote host / SSH server]:' \
'--port=[Remote port / SSH port]:' \
'--user=[SSH Username]:' \
'(--pass --password)'{--pass,--password}'=[SSH Password]:' \
'--path=[Remote path of file on SSH server]:' \
'--quiet[Less verbose template comments]' \
'--color=[Print the output in color]:--color :(never always auto)' \
;;
unhex)
_arguments \
'(-h --help)'{-h,--help}'[show this help message and exit]' \
;;
update)
_arguments \
'(-h --help)'{-h,--help}'[show this help message and exit]' \
'--install[Install the update automatically.]' \
'--pre[Check for pre-releases.]' \
;;
version)
_arguments \
'(-h --help)'{-h,--help}'[show this help message and exit]' \
;;
esac
;;
esac
}
_pwn
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/env zsh
# Try to find a writable directory first, in reverse order
for dir in "${(Oa)fpath[@]}"; do
if [ -w "$dir" ]; then
cp -f ${0:h}/_pwn "$dir"
return
fi
done
cat <<EOF
Could not find a suitable directory to install the completion.
Try adding this line at the top of your ~/.zshrc, and start a new shell.
fpath=( ${0:A:h} \$fpath )
If completion does not work, add this to the bottom of your ~/.zshrc, and start a new shell.
Users of prezto should enable the 'completion' module (enabled by default).
compinit -i
EOF
-1
View File
@@ -7,7 +7,6 @@ pwnlib.args.initialize()
pwnlib.log.install_default_handler()
pwnlib.config.initialize()
log = pwnlib.log.getLogger('pwnlib.exploit')
args = pwnlib.args.args
if not platform.architecture()[0].startswith('64'):
+10 -2
View File
@@ -4,6 +4,7 @@ import logging
import math
import operator
import os
import platform
import re
import socks
import signal
@@ -15,6 +16,7 @@ import tempfile
import threading
import time
import colored_traceback
from pprint import pprint
import pwnlib
@@ -28,8 +30,9 @@ from pwnlib.elf.corefile import Core, Corefile, Coredump
from pwnlib.elf.elf import ELF, load
from pwnlib.encoders import *
from pwnlib.exception import PwnlibException
from pwnlib.gdb import attach, debug, debug_assembly, debug_shellcode
from pwnlib.gdb import attach, debug_assembly, debug_shellcode
from pwnlib.filepointer import *
from pwnlib.filesystem import *
from pwnlib.flag import *
from pwnlib.fmtstr import FmtStr, fmtstr_payload, fmtstr_split
from pwnlib.log import getLogger
@@ -37,6 +40,7 @@ from pwnlib.memleak import MemLeak, RelativeMemLeak
from pwnlib.regsort import *
from pwnlib.replacements import *
from pwnlib.rop import ROP
from pwnlib.rop.call import AppendedArgument
from pwnlib.rop.srop import SigreturnFrame
from pwnlib.rop.ret2dlresolve import Ret2dlresolvePayload
from pwnlib.runner import *
@@ -73,6 +77,7 @@ from pwnlib.util.web import *
from six.moves import cPickle as pickle, cStringIO as StringIO
from six import BytesIO
log = getLogger("pwnlib.exploit")
error = log.error
warning = log.warning
warn = log.warning
@@ -80,4 +85,7 @@ info = log.info
debug = log.debug
success = log.success
__all__ = [x for x in globals().keys() if x != '__name__']
colored_traceback.add_hook()
# Equivalence with the default behavior of "from import *"
# __all__ = [x for x in tuple(globals()) if not x.startswith('_')]
+4 -6
View File
@@ -1,12 +1,11 @@
from __future__ import absolute_import
import importlib
from pwnlib.version import __version__
from .version import __version__
version = __version__
__all__ = [
'adb',
'args',
'asm',
'atexception',
@@ -35,9 +34,8 @@ __all__ = [
'ui',
'useragents',
'util',
'adb',
'update',
'version',
]
for module in __all__:
importlib.import_module('.%s' % module, 'pwnlib')
from . import args
+104 -17
View File
@@ -68,6 +68,7 @@ from pwnlib.context import context
from pwnlib.device import Device
from pwnlib.log import getLogger
from pwnlib.protocols.adb import AdbClient
from pwnlib.util.packing import _decode
from pwnlib.util import misc
log = getLogger(__name__)
@@ -75,10 +76,13 @@ log = getLogger(__name__)
def adb(argv, *a, **kw):
r"""Returns the output of an ADB subcommand.
>>> adb.adb('get-serialno')
b'emulator-5554\n'
>>> adb.adb(['shell', 'uname']) # it is better to use adb.process
b'Linux\n'
.. doctest::
:skipif: skip_android
>>> adb.adb('get-serialno')
b'emulator-5554\n'
>>> adb.adb(['shell', 'uname']) # it is better to use adb.process
b'Linux\n'
"""
if isinstance(argv, (bytes, six.text_type)):
argv = [argv]
@@ -113,11 +117,12 @@ def current_device(any=False):
"""Returns an ``AdbDevice`` instance for the currently-selected device
(via ``context.device``).
Example:
.. doctest::
:skipif: skip_android
>>> device = adb.current_device(any=True)
>>> device
AdbDevice(serial='emulator-5554', type='device', port='emulator', product='sdk_google_phone_armv7', model='sdk google phone armv7', device='generic')
>>> device # doctest: +ELLIPSIS
AdbDevice(serial='emulator-5554', type='device', port='emulator', product='sdk_...phone_armv7', model='sdk ...phone armv7', device='generic')
>>> device.port
'emulator'
"""
@@ -144,7 +149,10 @@ def with_device(f):
def root():
"""Restarts adbd as root.
>>> adb.root()
.. doctest::
:skipif: skip_android
>>> adb.root()
"""
log.info("Enabling root on %s" % context.device)
@@ -202,6 +210,10 @@ def uptime():
Uptime of the device, in seconds
Example:
.. doctest::
:skipif: skip_android
>>> adb.uptime() > 3 # normally AVD takes ~7 seconds to boot
True
"""
@@ -217,6 +229,10 @@ def boot_time():
nearest second.
Example:
.. doctest::
:skipif: skip_android
>>> import time
>>> adb.boot_time() < time.time()
True
@@ -231,6 +247,9 @@ class AdbDevice(Device):
Example:
.. doctest::
:skipif: skip_android
>>> device = adb.wait_for_device()
>>> device.arch
'arm'
@@ -238,8 +257,8 @@ class AdbDevice(Device):
32
>>> device.os
'android'
>>> device.product
'sdk_google_phone_armv7'
>>> device.product # doctest: +ELLIPSIS
'sdk_...phone_armv7'
>>> device.serial
'emulator-5554'
"""
@@ -357,10 +376,13 @@ class AdbDevice(Device):
"""Provides scoped access to ``adb`` module propertise, in the context
of this device.
>>> property = 'ro.build.fingerprint'
>>> device = adb.wait_for_device()
>>> adb.getprop(property) == device.getprop(property)
True
.. doctest::
:skipif: skip_android
>>> property = 'ro.build.fingerprint'
>>> device = adb.wait_for_device()
>>> adb.getprop(property) == device.getprop(property)
True
"""
with context.local(device=self):
g = globals()
@@ -387,6 +409,9 @@ def wait_for_device(kick=False):
Examples:
.. doctest::
:skipif: skip_android
>>> device = adb.wait_for_device()
"""
with log.waitfor("Waiting for device to come online") as w:
@@ -496,6 +521,9 @@ def pull(remote_path, local_path=None):
Example:
.. doctest::
:skipif: skip_android
>>> _=adb.pull('/proc/version', './proc-version')
>>> print(read('./proc-version').decode('utf-8')) # doctest: +ELLIPSIS
Linux version ...
@@ -527,6 +555,9 @@ def push(local_path, remote_path):
Example:
.. doctest::
:skipif: skip_android
>>> write('./filename', 'contents')
>>> adb.push('./filename', '/data/local/tmp')
'/data/local/tmp/filename'
@@ -584,6 +615,9 @@ def read(path, target=None, callback=None):
Examples:
.. doctest::
:skipif: skip_android
>>> print(adb.read('/proc/version').decode('utf-8')) # doctest: +ELLIPSIS
Linux version ...
>>> adb.read('/does/not/exist')
@@ -613,6 +647,9 @@ def write(path, data=b''):
Examples:
.. doctest::
:skipif: skip_android
>>> adb.write('/dev/null', b'data')
>>> adb.write('/data/local/tmp/')
"""
@@ -633,6 +670,9 @@ def mkdir(path):
Examples:
.. doctest::
:skipif: skip_android
>>> adb.mkdir('/')
>>> path = '/data/local/tmp/mkdir_test'
@@ -673,6 +713,9 @@ def makedirs(path):
Examples:
.. doctest::
:skipif: skip_android
>>> adb.makedirs('/data/local/tmp/this/is/a/directory/hierarchy')
>>> adb.listdir('/data/local/tmp/this/is/a/directory')
['hierarchy']
@@ -689,6 +732,9 @@ def exists(path):
Examples:
.. doctest::
:skipif: skip_android
>>> adb.exists('/')
True
>>> adb.exists('/etc/hosts')
@@ -706,6 +752,9 @@ def isdir(path):
Examples:
.. doctest::
:skipif: skip_android
>>> adb.isdir('/')
True
>>> adb.isdir('/init')
@@ -724,6 +773,9 @@ def unlink(path, recursive=False):
Examples:
.. doctest::
:skipif: skip_android
>>> adb.unlink("/does/not/exist")
Traceback (most recent call last):
...
@@ -775,6 +827,9 @@ def process(argv, *a, **kw):
Examples:
.. doctest::
:skipif: skip_android
>>> adb.root()
>>> print(adb.process(['cat','/proc/version']).recvall().decode('utf-8')) # doctest: +ELLIPSIS
Linux version ...
@@ -815,6 +870,9 @@ def which(name, all = False, *a, **kw):
Example:
.. doctest::
:skipif: skip_android
>>> adb.which('sh')
'/system/bin/sh'
>>> adb.which('sh', all=True)
@@ -838,7 +896,7 @@ def which(name, all = False, *a, **kw):
which_cmd = which_cmd.strip()
data = process(['sh','-c', which_cmd], *a, **kw).recvall()
data = context._decode(data)
data = _decode(data)
result = []
for path in data.split('\x00'):
@@ -864,6 +922,10 @@ def whoami():
"""Returns current shell user
Example:
.. doctest::
:skipif: skip_android
>>> adb.whoami()
b'root'
"""
@@ -917,6 +979,10 @@ def proc_exe(pid):
"""Returns the full path of the executable for the provided PID.
Example:
.. doctest::
:skipif: skip_android
>>> adb.proc_exe(1)
b'/init'
"""
@@ -937,18 +1003,22 @@ def getprop(name=None):
Otherwise, a string is returned with the contents of the named property.
Example:
.. doctest::
:skipif: skip_android
>>> adb.getprop() # doctest: +ELLIPSIS
{...}
"""
with context.quiet:
if name:
result = process(['getprop', name]).recvall().strip()
result = context._decode(result)
result = _decode(result)
return result
result = process(['getprop']).recvall()
result = context._decode(result)
result = _decode(result)
expr = r'\[([^\]]+)\]: \[(.*)\]'
props = {}
@@ -1052,6 +1122,10 @@ class Kernel(object):
def address(self):
"""Returns kernel address
Example:
.. doctest::
:skipif: skip_android
>>> hex(adb.kernel.address) # doctest: +ELLIPSIS
'0x...000'
"""
@@ -1178,6 +1252,10 @@ class Property(object):
"""Allow simple comparison
Example:
.. doctest::
:skipif: skip_android
>>> adb.properties.ro.build.version.sdk == "24"
True
"""
@@ -1266,6 +1344,10 @@ def compile(source):
r"""Compile a source file or project with the Android NDK.
Example:
.. doctest::
:skipif: skip_android
>>> temp = tempfile.mktemp('.c')
>>> write(temp, '''
... #include <stdio.h>
@@ -1390,6 +1472,10 @@ class Partitions(object):
"""Enable access to partitions
Example:
.. doctest::
:skipif: skip_android
>>> hex(adb.partitions.vda.size) # doctest: +ELLIPSIS
'0x...000'
"""
@@ -1506,3 +1592,4 @@ def version():
"""Returns rthe platform version as a tuple."""
prop = getprop('ro.build.version.release')
return [int(v) for v in prop.split('.')]
+2 -1
View File
@@ -4,6 +4,7 @@ from __future__ import division
import ctypes
import io
import os
import six
import sys
from pwnlib.log import getLogger
@@ -64,7 +65,7 @@ class BootloaderImage(object):
Returns:
Contents of the image.
"""
if isinstance(index_or_name, int):
if isinstance(index_or_name, six.integer_types):
index = index_or_name
else:
for i in range(len(self.img_info)):
-2
View File
@@ -1,5 +1,3 @@
#!/usr/bin/env python2
"""
Pwntools exposes several magic command-line arguments and environment
variables when operating in `from pwn import *` mode.
+62 -27
View File
@@ -167,6 +167,9 @@ def which_binutils(util):
'i386': ['x86_64', 'amd64'],
'i686': ['x86_64', 'amd64'],
'amd64': ['x86_64', 'i386'],
'mips64': ['mips'],
'powerpc64': ['powerpc'],
'sparc64': ['sparc'],
}.get(arch, [])
# If one of the candidate architectures matches the native
@@ -190,16 +193,20 @@ def which_binutils(util):
for gutil in utils:
# e.g. objdump
if arch is None:
pattern = gutil
patterns = [gutil]
# e.g. aarch64-linux-gnu-objdump
# e.g. aarch64-linux-gnu-objdump, avr-objdump
else:
pattern = '%s*linux*-%s' % (arch,gutil)
patterns = ['%s*linux*-%s' % (arch, gutil),
'%s*-elf-%s' % (arch, gutil),
'%s-none*-%s' % (arch, gutil),
'%s-%s' % (arch, gutil)]
for dir in environ['PATH'].split(':'):
res = sorted(glob(path.join(dir, pattern)))
if res:
return res[0]
for pattern in patterns:
for dir in environ['PATH'].split(':'):
res = sorted(glob(path.join(dir, pattern)))
if res:
return res[0]
# No dice!
print_binutils_instructions(util, context)
@@ -243,11 +250,15 @@ def _assembler():
checked_assembler_version[gas] = True
result = subprocess.check_output([gas, '--version','/dev/null'],
stderr=subprocess.STDOUT, universal_newlines=True)
version = re.search(r' (\d\.\d+)', result).group(1)
if version < '2.19':
log.warn_once('Your binutils version is too old and may not work!\n' + \
'Try updating with: https://docs.pwntools.com/en/stable/install/binutils.html\n' + \
'Reported Version: %r' % result.strip())
version = re.search(r' (\d+\.\d+)', result).group(1)
if 'clang' in result:
log.warn_once('Your binutils is clang version and may not work!\n'
'Try install with: https://docs.pwntools.com/en/stable/install/binutils.html\n'
'Reported Version: %r', result.strip())
elif version < '2.19':
log.warn_once('Your binutils version is too old and may not work!\n'
'Try updating with: https://docs.pwntools.com/en/stable/install/binutils.html\n'
'Reported Version: %r', result.strip())
return assembler
@@ -294,6 +305,7 @@ def _arch_header():
prefix = ['.section .shellcode,"awx"',
'.global _start',
'.global __start',
'.p2align 2',
'_start:',
'__start:']
headers = {
@@ -322,15 +334,19 @@ def _bfdname():
'amd64' : 'elf64-x86-64',
'arm' : 'elf32-%sarm' % E,
'thumb' : 'elf32-%sarm' % E,
'avr' : 'elf32-avr',
'mips' : 'elf32-trad%smips' % E,
'mips64' : 'elf64-trad%smips' % E,
'alpha' : 'elf64-alpha',
'cris' : 'elf32-cris',
'ia64' : 'elf64-ia64-%s' % E,
'm68k' : 'elf32-m68k',
'msp430' : 'elf32-msp430',
'powerpc' : 'elf32-powerpc',
'powerpc64' : 'elf64-powerpc',
'riscv' : 'elf%d-%sriscv' % (context.bits, E),
'vax' : 'elf32-vax',
's390' : 'elf%d-s390' % context.bits,
'sparc' : 'elf32-sparc',
'sparc64' : 'elf64-sparc',
}
@@ -344,10 +360,13 @@ def _bfdname():
def _bfdarch():
arch = context.arch
convert = {
'i386': 'i386',
'amd64': 'i386:x86-64',
'thumb': 'arm',
'ia64': 'ia64-elf64'
'amd64': 'i386:x86-64',
'i386': 'i386',
'ia64': 'ia64-elf64',
'mips64': 'mips',
'powerpc64': 'powerpc',
'sparc64': 'sparc',
'thumb': 'arm',
}
if arch in convert:
@@ -356,7 +375,7 @@ def _bfdarch():
return arch
def _run(cmd, stdin = None):
log.debug(subprocess.list2cmdline(cmd))
log.debug('%s', subprocess.list2cmdline(cmd))
try:
proc = subprocess.Popen(
cmd,
@@ -369,17 +388,20 @@ def _run(cmd, stdin = None):
exitcode = proc.wait()
except OSError as e:
if e.errno == errno.ENOENT:
log.exception('Could not run %r the program' % cmd[0])
log.exception('Could not run %r the program', cmd[0])
else:
raise
if (exitcode, stderr) != (0, ''):
msg = 'There was an error running %s:\n' % repr(cmd)
msg = 'There was an error running %r:\n'
args = cmd,
if exitcode != 0:
msg += 'It had the exitcode %d.\n' % exitcode
msg += 'It had the exitcode %d.\n'
args += exitcode,
if stderr != '':
msg += 'It had this on stdout:\n%s\n' % stderr
log.error(msg)
msg += 'It had this on stdout:\n%s\n'
args += stderr,
log.error(msg, *args)
return stdout
@@ -481,9 +503,7 @@ def make_elf_from_assembly(assembly,
>>> file_b = make_elf_from_assembly('nop', extract=True)
>>> file_a[:4] == file_b[:4]
True
>>> len(file_a) < 0x200
True
>>> len(file_b) > 0x1000
>>> len(file_a) < len(file_b)
True
"""
if shared and vma:
@@ -637,6 +657,10 @@ def asm(shellcode, vma = 0, extract = True, shared = False):
b'H\xc7\xc0\x17\x00\x00\x00'
>>> asm("mov r0, #SYS_select", arch = 'arm', os = 'linux', bits=32)
b'R\x00\xa0\xe3'
>>> asm("mov #42, r0", arch = 'msp430')
b'0@*\x00'
>>> asm("la %r0, 42", arch = 's390', bits=64)
b'A\x00\x00*'
"""
result = ''
@@ -749,6 +773,17 @@ def disasm(data, vma = 0, byte = True, offset = True, instructions = True):
>>> print(disasm(unhex('656664676665400F18A4000000000051'), byte=0, arch='amd64'))
0: gs data16 fs data16 rex nop/reserved BYTE PTR gs:[eax+eax*1+0x0]
f: push rcx
>>> print(disasm(unhex('01000000'), arch='sparc64'))
0: 01 00 00 00 nop
>>> print(disasm(unhex('60000000'), arch='powerpc64'))
0: 60 00 00 00 nop
>>> print(disasm(unhex('00000000'), arch='mips64'))
0: 00000000 nop
>>> print(disasm(unhex('48b84141414141414100c3'), arch='amd64'))
0: 48 b8 41 41 41 41 41 41 41 00 movabs rax, 0x41414141414141
a: c3 ret
>>> print(disasm(unhex('00000000'), vma=0x80000000, arch='mips'))
80000000: 00000000 nop
"""
result = ''
@@ -760,7 +795,7 @@ def disasm(data, vma = 0, byte = True, offset = True, instructions = True):
bfdarch = _bfdarch()
bfdname = _bfdname()
objdump = _objdump() + ['-d', '--adjust-vma', str(vma), '-b', bfdname]
objdump = _objdump() + ['-w', '-d', '--adjust-vma', str(vma), '-b', bfdname]
objcopy = _objcopy() + [
'-I', 'binary',
'-O', bfdname,
@@ -785,7 +820,7 @@ def disasm(data, vma = 0, byte = True, offset = True, instructions = True):
_run(objcopy + [step1, step2])
output0 = _run(objdump + [step2])
output1 = output0.split('<.text>:\n')
output1 = re.split(r'<\.text(?:\+0x0)?>:\n', output0, flags=re.MULTILINE)
if len(output1) != 2:
log.error('Could not find .text in objdump output:\n%s' % output0)
+6 -1
View File
@@ -13,6 +13,7 @@ from __future__ import division
import sys
import threading
import traceback
import atexit as std_atexit
from pwnlib.context import context
@@ -95,4 +96,8 @@ def _run_handlers():
if hasattr(sys, "exitfunc"):
register(sys.exitfunc)
sys.exitfunc = _run_handlers
if sys.version_info[0] < 3:
sys.exitfunc = _run_handlers
else:
std_atexit.register(_run_handlers)
+2 -1
View File
@@ -18,5 +18,6 @@ __all__ = [
'scramble',
'shellcraft',
'unhex',
'update'
'update',
'version'
]
+3 -2
View File
@@ -5,7 +5,7 @@ from __future__ import division
import argparse
import sys
import pwnlib
import pwnlib.args
pwnlib.args.free_form = False
from pwn import *
@@ -13,7 +13,8 @@ from pwnlib.commandline import common
parser = common.parser_commands.add_parser(
'asm',
help = 'Assemble shellcode into bytes'
help = 'Assemble shellcode into bytes',
description = 'Assemble shellcode into bytes',
)
parser.add_argument(
+2 -1
View File
@@ -10,7 +10,8 @@ from pwnlib.commandline import common
parser = common.parser_commands.add_parser(
'checksec',
help = 'Check binary security settings'
help = 'Check binary security settings',
description = 'Check binary security settings',
)
parser.add_argument(
'elf',
Regular → Executable
+14 -25
View File
@@ -4,10 +4,9 @@ from __future__ import division
import argparse
import functools
import os
import re
import pwnlib
import pwnlib.args
pwnlib.args.free_form = False
from pwn import *
@@ -16,28 +15,26 @@ from pwnlib.commandline import common
p = common.parser_commands.add_parser(
'constgrep',
help = "Looking up constants from header files.\n\nExample: constgrep -c freebsd -m ^PROT_ '3 + 4'",
description = "Looking up constants from header files.\n\nExample: constgrep -c freebsd -m ^PROT_ '3 + 4'",
formatter_class = argparse.RawDescriptionHelpFormatter,
)
group = p.add_mutually_exclusive_group()
group.add_argument(
p.add_argument(
'-e', '--exact',
metavar = 'constant',
# nargs = 1,
default = None,
help = 'Do an exact match for a constant instead of searching for a regex',
action='store_true',
help='Do an exact match for a constant instead of searching for a regex',
)
group.add_argument(
p.add_argument(
'regex',
nargs = '?',
default = '',
help = 'The regex matching constant you want to find',
help='The regex matching constant you want to find',
)
p.add_argument(
'constant',
nargs = '?',
default = None,
type = safeeval.expr,
help = 'The constant to find',
)
@@ -65,7 +62,7 @@ p.add_argument(
def main(args):
if args.exact:
# This is the simple case
print(cpp(args.exact).strip())
print(cpp(args.regex).strip())
else:
# New we search in the right module.
# But first: We find the right module
@@ -80,20 +77,12 @@ def main(args):
else:
matcher = re.compile(args.regex)
# Evaluate the given constant
if args.constant:
try:
constant = safeeval.expr(args.constant)
except:
log.error("Could not evaluate constant %r" % args.constant)
else:
constant = None
# The found matching constants and the length of the longest string
out = []
maxlen = 0
constant = args.constant
for k in dir(mod):
# No python stuff
if k.endswith('__') and k.startswith('__'):
@@ -104,7 +93,7 @@ def main(args):
continue
# Check the constant
if constant != None:
if constant is not None:
val = getattr(mod, k)
if args.mask_mode:
if constant & val != val:
@@ -124,7 +113,7 @@ def main(args):
# If we are in match_mode, then try to find a combination of
# constants that yield the exact given value
# We do not want to find combinations using the value 0.
if not (constant == None or constant == 0) and args.mask_mode:
if constant and args.mask_mode:
mask = constant
good = []
out = [(v, k) for v, k in out if v != 0]
+8 -4
View File
@@ -7,7 +7,7 @@ import six
import string
import sys
import pwnlib
import pwnlib.args
pwnlib.args.free_form = False
from pwn import *
@@ -15,14 +15,15 @@ from pwnlib.commandline import common
parser = common.parser_commands.add_parser(
'cyclic',
help = "Cyclic pattern creator/finder"
help = "Cyclic pattern creator/finder",
description = "Cyclic pattern creator/finder"
)
parser.add_argument(
'-a', '--alphabet',
metavar = 'alphabet',
default = string.ascii_lowercase.encode(),
type = six.ensure_binary,
type = packing._encode,
help = 'The alphabet to use in the cyclic pattern (defaults to all lower case letters)',
)
@@ -66,11 +67,14 @@ def main(args):
if args.lookup:
pat = args.lookup
if six.PY3:
pat = bytes(pat, encoding='utf-8')
try:
pat = int(pat, 0)
except ValueError:
pass
pat = flat(pat)
pat = flat(pat, bytes=args.length)
if len(pat) != subsize:
log.critical('Subpattern must be %d bytes' % subsize)
+2 -1
View File
@@ -10,7 +10,8 @@ from pwnlib.commandline import common
parser = common.parser_commands.add_parser(
'debug',
help = 'Debug a binary in GDB'
help = 'Debug a binary in GDB',
description = 'Debug a binary in GDB'
)
parser.add_argument(
'-x', metavar='GDBSCRIPT',
+2 -1
View File
@@ -8,7 +8,8 @@ from pwnlib.commandline import common
parser = common.parser_commands.add_parser(
'disablenx',
help = 'Disable NX for an ELF binary'
help = 'Disable NX for an ELF binary',
description = 'Disable NX for an ELF binary'
)
parser.add_argument(
'elf',
+3 -2
View File
@@ -7,7 +7,7 @@ import argparse
import string
import sys
import pwnlib
import pwnlib.args
pwnlib.args.free_form = False
from pwn import *
@@ -15,7 +15,8 @@ from pwnlib.commandline import common
parser = common.parser_commands.add_parser(
'disasm',
help = 'Disassemble bytes into text format'
help = 'Disassemble bytes into text format',
description = 'Disassemble bytes into text format'
)
parser.add_argument(
+3 -2
View File
@@ -8,7 +8,7 @@ from subprocess import CalledProcessError
from subprocess import check_output
from tempfile import NamedTemporaryFile
import pwnlib
import pwnlib.args
pwnlib.args.free_form = False
from pwn import *
@@ -29,7 +29,8 @@ def diff(a,b):
p = common.parser_commands.add_parser(
'elfdiff',
help = 'Compare two ELF files'
help = 'Compare two ELF files',
description = 'Compare two ELF files'
)
p.add_argument('a')
+3 -2
View File
@@ -4,7 +4,7 @@ from __future__ import division
import sys
import pwnlib
import pwnlib.args
pwnlib.args.free_form = False
from pwn import *
@@ -12,7 +12,8 @@ from pwnlib.commandline import common
p = common.parser_commands.add_parser(
'elfpatch',
help = 'Patch an ELF file'
help = 'Patch an ELF file',
description = 'Patch an ELF file'
)
p.add_argument('elf',help="File to patch")
+2 -1
View File
@@ -8,7 +8,8 @@ from pwnlib.commandline import common
parser = common.parser_commands.add_parser(
'errno',
help = 'Prints out error messages'
help = 'Prints out error messages',
description = 'Prints out error messages'
)
parser.add_argument(
+3 -3
View File
@@ -10,9 +10,9 @@ from pwnlib.util.fiddling import enhex
parser = common.parser_commands.add_parser(
'hex',
help = '''
Hex-encodes data provided on the command line or stdin
''')
help = 'Hex-encodes data provided on the command line or stdin',
description = 'Hex-encodes data provided on the command line or stdin')
parser.add_argument('data', nargs='*',
help='Data to convert into hex')
+2
View File
@@ -21,6 +21,7 @@ from pwnlib.commandline import shellcraft
from pwnlib.commandline import template
from pwnlib.commandline import unhex
from pwnlib.commandline import update
from pwnlib.commandline import version
from pwnlib.commandline.common import parser
from pwnlib.context import context
@@ -43,6 +44,7 @@ commands = {
'template': template.main,
'unhex': unhex.main,
'update': update.main,
'version': version.main,
}
def main():
+6 -2
View File
@@ -4,10 +4,11 @@ from __future__ import division
import argparse
import os
import signal
import sys
import io
import pwnlib
import pwnlib.args
pwnlib.args.free_form = False
from pwn import *
@@ -15,7 +16,8 @@ from pwnlib.commandline import common
parser = common.parser_commands.add_parser(
'phd',
help = 'Pwnlib HexDump'
help = 'Pretty hex dump',
description = 'Pretty hex dump'
)
parser.add_argument(
@@ -99,6 +101,8 @@ def main(args):
for h in hs.split(','):
hl.append(asint(h))
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
try:
for line in hexdump_iter(infile, width, highlight = hl, begin = offset + skip):
print(line)
+2 -1
View File
@@ -3,7 +3,7 @@ from __future__ import division
import argparse
import pwnlib
import pwnlib.args
pwnlib.args.free_form = False
from pwn import *
@@ -12,6 +12,7 @@ from pwnlib.commandline import common
p = common.parser_commands.add_parser(
'pwnstrip',
help = 'Strip binaries for CTF usage',
description = 'Strip binaries for CTF usage'
)
g = p.add_argument_group("actions")
+3 -2
View File
@@ -4,7 +4,7 @@ from __future__ import division
import argparse
import sys
import pwnlib
import pwnlib.args
pwnlib.args.free_form = False
from pwn import *
@@ -12,7 +12,8 @@ from pwnlib.commandline import common
parser = common.parser_commands.add_parser(
'scramble',
help = 'Shellcode encoder'
help = 'Shellcode encoder',
description = 'Shellcode encoder'
)
parser.add_argument(
+6 -5
View File
@@ -8,7 +8,7 @@ import six
import sys
import types
import pwnlib
import pwnlib.args
pwnlib.args.free_form = False
from pwn import *
@@ -35,6 +35,7 @@ def _string(s):
p = common.parser_commands.add_parser(
'shellcraft',
help = 'Microwave shellcode -- Easy, fast and delicious',
description = 'Microwave shellcode -- Easy, fast and delicious',
)
@@ -198,11 +199,11 @@ def main(args):
common.parser.print_usage()
exit()
if args.shellcode not in shellcraft.templates:
try:
func = get_template(args.shellcode)
except AttributeError:
log.error("Unknown shellcraft template %r. Use --list to see available shellcodes." % args.shellcode)
func = get_template(args.shellcode)
if args.show:
# remove doctests
doc = []
@@ -295,7 +296,7 @@ def main(args):
vma = args.address
if vma:
vma = eval(vma)
vma = pwnlib.util.safeeval.expr(vma)
if args.format in ['e','elf']:
args.format = 'default'
Regular → Executable
+21 -11
View File
@@ -2,8 +2,6 @@
from __future__ import absolute_import
from __future__ import division
import re
from pwn import *
from pwnlib.commandline import common
@@ -11,26 +9,23 @@ from mako.lookup import TemplateLookup
parser = common.parser_commands.add_parser(
'template',
help = 'Generate an exploit template'
help = 'Generate an exploit template',
description = 'Generate an exploit template'
)
parser.add_argument('exe', nargs='?', help='Target binary')
parser.add_argument('--host', help='Remote host / SSH server')
parser.add_argument('--port', help='Remote port / SSH port', type=int)
parser.add_argument('--user', help='SSH Username')
parser.add_argument('--pass', help='SSH Password', dest='password')
parser.add_argument('--pass', '--password', help='SSH Password', dest='password')
parser.add_argument('--path', help='Remote path of file on SSH server')
parser.add_argument('--quiet', help='Less verbose template comments', action='store_true')
parser.add_argument('--color', help='Print the output in color', choices=['never', 'always', 'auto'], default='auto')
def main(args):
cache = None
if cache:
cache = os.path.join(context.cache_dir, 'mako')
lookup = TemplateLookup(
directories = [os.path.join(pwnlib.data.path, 'templates')],
module_directory = cache
module_directory = None
)
# For the SSH scenario, check that the binary is at the
@@ -40,7 +35,14 @@ def main(args):
log.error("Must specify --path or a exe")
s = ssh(args.user, args.host, args.port or 22, args.password or None)
s.download(args.path or args.exe)
try:
remote_file = args.path or args.exe
s.download(remote_file)
except Exception:
log.warning("Could not download file %r, opening a shell", remote_file)
s.interactive()
return
if not args.exe:
args.exe = os.path.basename(args.path)
@@ -57,8 +59,16 @@ def main(args):
# Fix Mako formatting bs
output = re.sub('\n\n\n', '\n\n', output)
# Colorize the output if it's a TTY
if args.color == 'always' or (args.color == 'auto' and sys.stdout.isatty()):
from pygments import highlight
from pygments.formatters import TerminalFormatter
from pygments.lexers.python import PythonLexer
output = highlight(output, PythonLexer(), TerminalFormatter())
print(output)
# If redirected to a file, make the resulting script executable
if not sys.stdout.isatty():
try: os.fchmod(sys.stdout.fileno(), 0o700)
except OSError: pass
+4 -3
View File
@@ -11,9 +11,9 @@ from pwnlib.util.fiddling import unhex
parser = common.parser_commands.add_parser(
'unhex',
help = '''
Decodes hex-encoded data provided on the command line or via stdin.
''')
help = 'Decodes hex-encoded data provided on the command line or via stdin.',
description = 'Decodes hex-encoded data provided on the command line or via stdin.'
)
parser.add_argument('hex', nargs='*',
help='Hex bytes to decode')
@@ -28,6 +28,7 @@ def main(args):
o.write(unhex(''.join(args.hex)))
except TypeError as e:
sys.stderr.write(str(e) + '\n')
raise
if __name__ == '__main__':
common.main(__file__)
+3 -2
View File
@@ -4,7 +4,7 @@ from __future__ import division
import subprocess
import pwnlib
import pwnlib.args
pwnlib.args.free_form = False
from pwn import *
@@ -12,7 +12,8 @@ from pwnlib.commandline import common
p = common.parser_commands.add_parser(
'update',
help = 'Check for pwntools updates'
help = 'Check for pwntools updates',
description = 'Check for pwntools updates'
)
p.add_argument('--install', action='store_true', help='''
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/env python
from __future__ import absolute_import
from __future__ import division
import os
import subprocess
import pwnlib.args
pwnlib.args.free_form = False
from pwn import *
from pwnlib.commandline import common
parser = common.parser_commands.add_parser(
'version',
help = 'Pwntools version',
description = 'Pwntools version'
)
def main(a):
version = pwnlib.version
git_root = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
if os.path.exists(os.path.join(git_root, '.git')):
gitver = subprocess.check_output(['git', '-C', git_root, 'log', '-1', '--format=%h (%cr)'])
branch = subprocess.check_output(['git', '-C', git_root, 'rev-parse', '--abbrev-ref', 'HEAD'])
version = '%s-%s-%s' % (version, branch.decode().strip(), gitver.decode())
log.info("Pwntools v%s" % version)
if __name__ == '__main__':
pwnlib.commandline.common.main(__file__)
+10 -3
View File
@@ -5,7 +5,9 @@ The list of configurable options includes all of the logging symbols
and colors, as well as all of the default values on the global context
object.
The configuration file is read from ``~/.pwn.conf`` and ``/etc/pwn.conf``.
The configuration file is read from ``~/.pwn.conf``, ``$XDG_CONFIG_HOME/pwn.conf``
(``$XDG_CONFIG_HOME`` defaults to ``~/.config``, per XDG Base Directory Specification),
and ``/etc/pwn.conf``.
The configuration file is only read in ``from pwn import *`` mode, and not
when used in library mode (``import pwnlib``). To read the configuration
@@ -53,12 +55,17 @@ def initialize():
from pwnlib.log import getLogger
log = getLogger(__name__)
xdg_config_home = os.environ.get('XDG_CONFIG_HOME',
os.path.expanduser("~/.config"))
c = configparser.ConfigParser()
c.read(['/etc/pwn.conf', os.path.expanduser('~/.pwn.conf')])
c.read(['/etc/pwn.conf',
os.path.join(xdg_config_home, 'pwn.conf'),
os.path.expanduser('~/.pwn.conf')])
for section in c.sections():
if section not in registered_configs:
log.warn("Unknown configuration section %r" % section)
log.warn("Unknown configuration section %r", section)
continue
settings = dict(c.items(section))
registered_configs[section](settings)
+8 -2
View File
@@ -92,7 +92,7 @@ class ConstantsModule(ModuleType):
# Special case for __all__, we want to return the contextually
# relevant module.
if key == '__all__':
return self.guess().__dict__.keys()
return list(self.guess().__dict__.keys())
# Special case for all other special properties which aren't defined
if key.endswith('__'):
@@ -145,7 +145,13 @@ class ConstantsModule(ModuleType):
if key not in self._env_store:
self._env_store[key] = {key: getattr(self, key) for key in dir(self) if not key.endswith('__')}
return Constant('(%s)' % string, safeeval.values(string, self._env_store[key]))
val = safeeval.values(string, self._env_store[key])
# if the expression is not assembly-safe, it is not so vital to preserve it
if set(string) & (set(bytearray(range(32)).decode()) | set('"#$\',.;@[\\]`{}')):
string = val
return Constant('(%s)' % string, val)
# To prevent garbage collection
+6 -1
View File
@@ -1,4 +1,9 @@
class Constant(int):
try:
base = long # workaround for py2
except NameError:
base = int
class Constant(base):
def __new__(cls, s, i):
obj = super(Constant, cls).__new__(cls, i)
obj.s = s
-1
View File
@@ -1,5 +1,4 @@
from pwnlib.constants.constant import Constant
STDIN_FILENO = Constant('STDIN_FILENO',0)
STDOUT_FILENO = Constant('STDOUT_FILENO',1)
STDERR_FILENO = Constant('STDERR_FILENO',2)
+374 -92
View File
@@ -1,4 +1,5 @@
from pwnlib.constants.constant import Constant
_AARCH64_SYSCALL_H = Constant('_AARCH64_SYSCALL_H',1)
__NR_io_setup = Constant('__NR_io_setup',0)
__NR_io_destroy = Constant('__NR_io_destroy',1)
__NR_io_submit = Constant('__NR_io_submit',2)
@@ -78,12 +79,13 @@ __NR_vmsplice = Constant('__NR_vmsplice',75)
__NR_splice = Constant('__NR_splice',76)
__NR_tee = Constant('__NR_tee',77)
__NR_readlinkat = Constant('__NR_readlinkat',78)
__NR_fstatat64 = Constant('__NR_fstatat64',79)
__NR_fstatat = Constant('__NR_fstatat',79)
__NR_newfstatat = Constant('__NR_newfstatat',79)
__NR_fstat = Constant('__NR_fstat',80)
__NR_sync = Constant('__NR_sync',81)
__NR_fsync = Constant('__NR_fsync',82)
__NR_fdatasync = Constant('__NR_fdatasync',83)
__NR_sync_file_range2 = Constant('__NR_sync_file_range2',84)
__NR_sync_file_range = Constant('__NR_sync_file_range',84)
__NR_timerfd_create = Constant('__NR_timerfd_create',85)
__NR_timerfd_settime = Constant('__NR_timerfd_settime',86)
__NR_timerfd_gettime = Constant('__NR_timerfd_gettime',87)
@@ -258,6 +260,39 @@ __NR_process_vm_readv = Constant('__NR_process_vm_readv',270)
__NR_process_vm_writev = Constant('__NR_process_vm_writev',271)
__NR_kcmp = Constant('__NR_kcmp',272)
__NR_finit_module = Constant('__NR_finit_module',273)
__NR_sched_setattr = Constant('__NR_sched_setattr',274)
__NR_sched_getattr = Constant('__NR_sched_getattr',275)
__NR_renameat2 = Constant('__NR_renameat2',276)
__NR_seccomp = Constant('__NR_seccomp',277)
__NR_getrandom = Constant('__NR_getrandom',278)
__NR_memfd_create = Constant('__NR_memfd_create',279)
__NR_bpf = Constant('__NR_bpf',280)
__NR_execveat = Constant('__NR_execveat',281)
__NR_userfaultfd = Constant('__NR_userfaultfd',282)
__NR_membarrier = Constant('__NR_membarrier',283)
__NR_mlock2 = Constant('__NR_mlock2',284)
__NR_copy_file_range = Constant('__NR_copy_file_range',285)
__NR_preadv2 = Constant('__NR_preadv2',286)
__NR_pwritev2 = Constant('__NR_pwritev2',287)
__NR_pkey_mprotect = Constant('__NR_pkey_mprotect',288)
__NR_pkey_alloc = Constant('__NR_pkey_alloc',289)
__NR_pkey_free = Constant('__NR_pkey_free',290)
__NR_statx = Constant('__NR_statx',291)
__NR_io_pgetevents = Constant('__NR_io_pgetevents',292)
__NR_rseq = Constant('__NR_rseq',293)
__NR_kexec_file_load = Constant('__NR_kexec_file_load',294)
__NR_pidfd_send_signal = Constant('__NR_pidfd_send_signal',424)
__NR_io_uring_setup = Constant('__NR_io_uring_setup',425)
__NR_io_uring_enter = Constant('__NR_io_uring_enter',426)
__NR_io_uring_register = Constant('__NR_io_uring_register',427)
__NR_open_tree = Constant('__NR_open_tree',428)
__NR_move_mount = Constant('__NR_move_mount',429)
__NR_fsopen = Constant('__NR_fsopen',430)
__NR_fsconfig = Constant('__NR_fsconfig',431)
__NR_fsmount = Constant('__NR_fsmount',432)
__NR_fspick = Constant('__NR_fspick',433)
__NR_pidfd_open = Constant('__NR_pidfd_open',434)
__NR_clone3 = Constant('__NR_clone3',435)
MAP_32BIT = Constant('MAP_32BIT',0x40)
INADDR_ANY = Constant('INADDR_ANY',0)
INADDR_BROADCAST = Constant('INADDR_BROADCAST',0xffffffff)
@@ -393,18 +428,71 @@ ENOKEY = Constant('ENOKEY',126)
EKEYEXPIRED = Constant('EKEYEXPIRED',127)
EKEYREVOKED = Constant('EKEYREVOKED',128)
EKEYREJECTED = Constant('EKEYREJECTED',129)
__SYS_NERR = Constant('__SYS_NERR',((129) + 1))
EOWNERDEAD = Constant('EOWNERDEAD',130)
ENOTRECOVERABLE = Constant('ENOTRECOVERABLE',131)
ERFKILL = Constant('ERFKILL',132)
EHWPOISON = Constant('EHWPOISON',133)
__SYS_NERR = Constant('__SYS_NERR',((133) + 1))
__LITTLE_ENDIAN = Constant('__LITTLE_ENDIAN',1234)
__BIG_ENDIAN = Constant('__BIG_ENDIAN',4321)
__BYTE_ORDER = Constant('__BYTE_ORDER',1234)
__FLOAT_WORD_ORDER = Constant('__FLOAT_WORD_ORDER',1234)
__BYTE_ORDER = Constant('__BYTE_ORDER',1234)
__FLOAT_WORD_ORDER = Constant('__FLOAT_WORD_ORDER',1234)
LITTLE_ENDIAN = Constant('LITTLE_ENDIAN',1234)
BIG_ENDIAN = Constant('BIG_ENDIAN',4321)
BYTE_ORDER = Constant('BYTE_ORDER',1234)
__WORDSIZE = Constant('__WORDSIZE',32)
__WORDSIZE = Constant('__WORDSIZE',64)
__WORDSIZE_COMPAT32 = Constant('__WORDSIZE_COMPAT32',1)
INT8_MAX = Constant('INT8_MAX',(127))
INT16_MAX = Constant('INT16_MAX',(32767))
INT32_MAX = Constant('INT32_MAX',(2147483647))
INT64_MAX = Constant('INT64_MAX',(9223372036854775807))
INT8_MIN = Constant('INT8_MIN',(-1 - (127)))
INT16_MIN = Constant('INT16_MIN',(-1 - (32767)))
INT32_MIN = Constant('INT32_MIN',(-1 - (2147483647)))
INT64_MIN = Constant('INT64_MIN',(-1 - (9223372036854775807)))
INT_LEAST8_MAX = Constant('INT_LEAST8_MAX',(127))
INT_LEAST8_MIN = Constant('INT_LEAST8_MIN',(-1 - (127)))
INT_LEAST16_MAX = Constant('INT_LEAST16_MAX',(32767))
INT_LEAST16_MIN = Constant('INT_LEAST16_MIN',(-1 - (32767)))
INT_LEAST32_MAX = Constant('INT_LEAST32_MAX',(2147483647))
INT_LEAST32_MIN = Constant('INT_LEAST32_MIN',(-1 - (2147483647)))
INT_LEAST64_MAX = Constant('INT_LEAST64_MAX',(9223372036854775807))
INT_LEAST64_MIN = Constant('INT_LEAST64_MIN',(-1 - (9223372036854775807)))
UINT8_MAX = Constant('UINT8_MAX',0xff)
UINT16_MAX = Constant('UINT16_MAX',0xffff)
UINT32_MAX = Constant('UINT32_MAX',0xffffffff)
UINT64_MAX = Constant('UINT64_MAX',0xffffffffffffffff)
UINT_LEAST8_MAX = Constant('UINT_LEAST8_MAX',0xff)
UINT_LEAST16_MAX = Constant('UINT_LEAST16_MAX',0xffff)
UINT_LEAST32_MAX = Constant('UINT_LEAST32_MAX',0xffffffff)
UINT_LEAST64_MAX = Constant('UINT_LEAST64_MAX',0xffffffffffffffff)
INTPTR_MIN = Constant('INTPTR_MIN',(-1 - (9223372036854775807)))
INTPTR_MAX = Constant('INTPTR_MAX',(9223372036854775807))
UINTPTR_MAX = Constant('UINTPTR_MAX',0xffffffffffffffff)
SIZE_MAX = Constant('SIZE_MAX',0xffffffffffffffff)
PTRDIFF_MIN = Constant('PTRDIFF_MIN',(-1 - (9223372036854775807)))
PTRDIFF_MAX = Constant('PTRDIFF_MAX',(9223372036854775807))
INTMAX_MIN = Constant('INTMAX_MIN',(-1 - (9223372036854775807)))
INTMAX_MAX = Constant('INTMAX_MAX',(9223372036854775807))
UINTMAX_MAX = Constant('UINTMAX_MAX',0xffffffffffffffff)
INT_FAST8_MIN = Constant('INT_FAST8_MIN',(-1 - (127)))
INT_FAST8_MAX = Constant('INT_FAST8_MAX',(127))
INT_FAST64_MIN = Constant('INT_FAST64_MIN',(-1 - (9223372036854775807)))
INT_FAST64_MAX = Constant('INT_FAST64_MAX',(9223372036854775807))
UINT_FAST8_MAX = Constant('UINT_FAST8_MAX',0xff)
UINT_FAST64_MAX = Constant('UINT_FAST64_MAX',0xffffffffffffffff)
INT_FAST16_MIN = Constant('INT_FAST16_MIN',(-1 - (9223372036854775807)))
INT_FAST16_MAX = Constant('INT_FAST16_MAX',(9223372036854775807))
UINT_FAST16_MAX = Constant('UINT_FAST16_MAX',0xffffffffffffffff)
INT_FAST32_MIN = Constant('INT_FAST32_MIN',(-1 - (9223372036854775807)))
INT_FAST32_MAX = Constant('INT_FAST32_MAX',(9223372036854775807))
UINT_FAST32_MAX = Constant('UINT_FAST32_MAX',0xffffffffffffffff)
WINT_MIN = Constant('WINT_MIN',0)
__FSUID_H = Constant('__FSUID_H',1)
NSIG = Constant('NSIG',32)
_NSIG = Constant('_NSIG',64)
_NSIG = Constant('_NSIG',65)
SIGHUP = Constant('SIGHUP',1)
SIGINT = Constant('SIGINT',2)
SIGQUIT = Constant('SIGQUIT',3)
@@ -442,7 +530,7 @@ SIGCLD = Constant('SIGCLD',17)
SIGPOLL = Constant('SIGPOLL',29)
SIGLOST = Constant('SIGLOST',30)
SIGRTMIN = Constant('SIGRTMIN',32)
SIGRTMAX = Constant('SIGRTMAX',(64-1))
SIGRTMAX = Constant('SIGRTMAX',(65-1))
SA_NOCLDSTOP = Constant('SA_NOCLDSTOP',0x00000001)
SA_NOCLDWAIT = Constant('SA_NOCLDWAIT',0x00000002)
SA_SIGINFO = Constant('SA_SIGINFO',0x00000004)
@@ -492,6 +580,8 @@ _SC_PAGESIZE = Constant('_SC_PAGESIZE',5)
_SC_NPROCESSORS_ONLN = Constant('_SC_NPROCESSORS_ONLN',6)
_SC_NPROCESSORS_CONF = Constant('_SC_NPROCESSORS_CONF',6)
_SC_PHYS_PAGES = Constant('_SC_PHYS_PAGES',7)
_SC_GETPW_R_SIZE_MAX = Constant('_SC_GETPW_R_SIZE_MAX',8)
_SC_GETGR_R_SIZE_MAX = Constant('_SC_GETGR_R_SIZE_MAX',9)
_PC_PATH_MAX = Constant('_PC_PATH_MAX',1)
_PC_VDISABLE = Constant('_PC_VDISABLE',2)
L_cuserid = Constant('L_cuserid',17)
@@ -500,6 +590,7 @@ F_ULOCK = Constant('F_ULOCK',0)
F_LOCK = Constant('F_LOCK',1)
F_TLOCK = Constant('F_TLOCK',2)
F_TEST = Constant('F_TEST',3)
_POSIX_MAPPED_FILES = Constant('_POSIX_MAPPED_FILES',200809)
STAT64_HAS_BROKEN_ST_INO = Constant('STAT64_HAS_BROKEN_ST_INO',1)
S_IFMT = Constant('S_IFMT',0o0170000)
S_IFSOCK = Constant('S_IFSOCK',0o140000)
@@ -527,84 +618,7 @@ S_IXOTH = Constant('S_IXOTH',0o0001)
S_IREAD = Constant('S_IREAD',0o0400)
S_IWRITE = Constant('S_IWRITE',0o0200)
S_IEXEC = Constant('S_IEXEC',0o0100)
F_LINUX_SPECIFIC_BASE = Constant('F_LINUX_SPECIFIC_BASE',1024)
O_ACCMODE = Constant('O_ACCMODE',0o003)
O_RDONLY = Constant('O_RDONLY',0o0)
O_WRONLY = Constant('O_WRONLY',0o1)
O_RDWR = Constant('O_RDWR',0o2)
O_CREAT = Constant('O_CREAT',0o100)
O_EXCL = Constant('O_EXCL',0o200)
O_NOCTTY = Constant('O_NOCTTY',0o400)
O_TRUNC = Constant('O_TRUNC',0o1000)
O_APPEND = Constant('O_APPEND',0o2000)
O_NONBLOCK = Constant('O_NONBLOCK',0o4000)
O_NDELAY = Constant('O_NDELAY',0o4000)
O_SYNC = Constant('O_SYNC',0o10000)
FASYNC = Constant('FASYNC',0o20000)
O_DIRECTORY = Constant('O_DIRECTORY',0o40000)
O_NOFOLLOW = Constant('O_NOFOLLOW',0o100000)
O_DIRECT = Constant('O_DIRECT',0o200000)
O_LARGEFILE = Constant('O_LARGEFILE',0o400000)
O_NOATIME = Constant('O_NOATIME',0o1000000)
F_DUPFD = Constant('F_DUPFD',0)
F_GETFD = Constant('F_GETFD',1)
F_SETFD = Constant('F_SETFD',2)
F_GETFL = Constant('F_GETFL',3)
F_SETFL = Constant('F_SETFL',4)
F_GETLK = Constant('F_GETLK',5)
F_SETLK = Constant('F_SETLK',6)
F_SETLKW = Constant('F_SETLKW',7)
F_SETOWN = Constant('F_SETOWN',8)
F_GETOWN = Constant('F_GETOWN',9)
F_SETSIG = Constant('F_SETSIG',10)
F_GETSIG = Constant('F_GETSIG',11)
F_GETLK64 = Constant('F_GETLK64',12)
F_SETLK64 = Constant('F_SETLK64',13)
F_SETLKW64 = Constant('F_SETLKW64',14)
FD_CLOEXEC = Constant('FD_CLOEXEC',1)
F_RDLCK = Constant('F_RDLCK',0)
F_WRLCK = Constant('F_WRLCK',1)
F_UNLCK = Constant('F_UNLCK',2)
F_EXLCK = Constant('F_EXLCK',4)
F_SHLCK = Constant('F_SHLCK',8)
F_INPROGRESS = Constant('F_INPROGRESS',16)
LOCK_SH = Constant('LOCK_SH',1)
LOCK_EX = Constant('LOCK_EX',2)
LOCK_NB = Constant('LOCK_NB',4)
LOCK_UN = Constant('LOCK_UN',8)
LOCK_MAND = Constant('LOCK_MAND',32)
LOCK_READ = Constant('LOCK_READ',64)
LOCK_WRITE = Constant('LOCK_WRITE',128)
LOCK_RW = Constant('LOCK_RW',192)
O_ASYNC = Constant('O_ASYNC',0o20000)
MREMAP_MAYMOVE = Constant('MREMAP_MAYMOVE',1)
MREMAP_FIXED = Constant('MREMAP_FIXED',2)
PROT_READ = Constant('PROT_READ',0x1)
PROT_WRITE = Constant('PROT_WRITE',0x2)
PROT_EXEC = Constant('PROT_EXEC',0x4)
PROT_NONE = Constant('PROT_NONE',0x0)
MAP_SHARED = Constant('MAP_SHARED',0x01)
MAP_PRIVATE = Constant('MAP_PRIVATE',0x02)
MAP_FIXED = Constant('MAP_FIXED',0x10)
MAP_ANONYMOUS = Constant('MAP_ANONYMOUS',0x20)
MAP_GROWSDOWN = Constant('MAP_GROWSDOWN',0x0100)
MAP_DENYWRITE = Constant('MAP_DENYWRITE',0x0800)
MAP_EXECUTABLE = Constant('MAP_EXECUTABLE',0x1000)
MAP_LOCKED = Constant('MAP_LOCKED',0x2000)
MAP_NORESERVE = Constant('MAP_NORESERVE',0x4000)
MAP_POPULATE = Constant('MAP_POPULATE',0x8000)
MS_ASYNC = Constant('MS_ASYNC',1)
MS_INVALIDATE = Constant('MS_INVALIDATE',2)
MS_SYNC = Constant('MS_SYNC',4)
MCL_CURRENT = Constant('MCL_CURRENT',1)
MCL_FUTURE = Constant('MCL_FUTURE',2)
MADV_NORMAL = Constant('MADV_NORMAL',0x0)
MADV_RANDOM = Constant('MADV_RANDOM',0x1)
MADV_SEQUENTIAL = Constant('MADV_SEQUENTIAL',0x2)
MADV_WILLNEED = Constant('MADV_WILLNEED',0x3)
MADV_DONTNEED = Constant('MADV_DONTNEED',0x4)
MAP_ANON = Constant('MAP_ANON',0x20)
MAP_FILE = Constant('MAP_FILE',0)
_SYS_UIO = Constant('_SYS_UIO',1)
SOL_SOCKET = Constant('SOL_SOCKET',1)
SO_DEBUG = Constant('SO_DEBUG',1)
SO_REUSEADDR = Constant('SO_REUSEADDR',2)
@@ -620,29 +634,64 @@ SO_NO_CHECK = Constant('SO_NO_CHECK',11)
SO_PRIORITY = Constant('SO_PRIORITY',12)
SO_LINGER = Constant('SO_LINGER',13)
SO_BSDCOMPAT = Constant('SO_BSDCOMPAT',14)
SO_REUSEPORT = Constant('SO_REUSEPORT',15)
SO_PASSCRED = Constant('SO_PASSCRED',16)
SO_PEERCRED = Constant('SO_PEERCRED',17)
SO_RCVLOWAT = Constant('SO_RCVLOWAT',18)
SO_SNDLOWAT = Constant('SO_SNDLOWAT',19)
SO_RCVTIMEO = Constant('SO_RCVTIMEO',20)
SO_SNDTIMEO = Constant('SO_SNDTIMEO',21)
SO_ACCEPTCONN = Constant('SO_ACCEPTCONN',30)
SO_SNDBUFFORCE = Constant('SO_SNDBUFFORCE',32)
SO_RCVBUFFORCE = Constant('SO_RCVBUFFORCE',33)
SO_SECURITY_AUTHENTICATION = Constant('SO_SECURITY_AUTHENTICATION',22)
SO_SECURITY_ENCRYPTION_TRANSPORT = Constant('SO_SECURITY_ENCRYPTION_TRANSPORT',23)
SO_SECURITY_ENCRYPTION_NETWORK = Constant('SO_SECURITY_ENCRYPTION_NETWORK',24)
SO_BINDTODEVICE = Constant('SO_BINDTODEVICE',25)
SO_ATTACH_FILTER = Constant('SO_ATTACH_FILTER',26)
SO_DETACH_FILTER = Constant('SO_DETACH_FILTER',27)
SO_GET_FILTER = Constant('SO_GET_FILTER',26)
SO_PEERNAME = Constant('SO_PEERNAME',28)
SO_TIMESTAMP = Constant('SO_TIMESTAMP',29)
SCM_TIMESTAMP = Constant('SCM_TIMESTAMP',29)
SO_ACCEPTCONN = Constant('SO_ACCEPTCONN',30)
SO_PEERSEC = Constant('SO_PEERSEC',31)
SO_SNDBUFFORCE = Constant('SO_SNDBUFFORCE',32)
SO_RCVBUFFORCE = Constant('SO_RCVBUFFORCE',33)
SO_PASSSEC = Constant('SO_PASSSEC',34)
SO_TIMESTAMPNS = Constant('SO_TIMESTAMPNS',35)
SCM_TIMESTAMPNS = Constant('SCM_TIMESTAMPNS',35)
SO_MARK = Constant('SO_MARK',36)
SO_TIMESTAMPING = Constant('SO_TIMESTAMPING',37)
SCM_TIMESTAMPING = Constant('SCM_TIMESTAMPING',37)
SO_PROTOCOL = Constant('SO_PROTOCOL',38)
SO_DOMAIN = Constant('SO_DOMAIN',39)
SO_RXQ_OVFL = Constant('SO_RXQ_OVFL',40)
SO_WIFI_STATUS = Constant('SO_WIFI_STATUS',41)
SCM_WIFI_STATUS = Constant('SCM_WIFI_STATUS',41)
SO_PEEK_OFF = Constant('SO_PEEK_OFF',42)
SO_NOFCS = Constant('SO_NOFCS',43)
SO_LOCK_FILTER = Constant('SO_LOCK_FILTER',44)
SO_SELECT_ERR_QUEUE = Constant('SO_SELECT_ERR_QUEUE',45)
SO_BUSY_POLL = Constant('SO_BUSY_POLL',46)
SO_MAX_PACING_RATE = Constant('SO_MAX_PACING_RATE',47)
SO_BPF_EXTENSIONS = Constant('SO_BPF_EXTENSIONS',48)
SO_INCOMING_CPU = Constant('SO_INCOMING_CPU',49)
SO_ATTACH_BPF = Constant('SO_ATTACH_BPF',50)
SO_DETACH_BPF = Constant('SO_DETACH_BPF',27)
SO_ATTACH_REUSEPORT_CBPF = Constant('SO_ATTACH_REUSEPORT_CBPF',51)
SO_ATTACH_REUSEPORT_EBPF = Constant('SO_ATTACH_REUSEPORT_EBPF',52)
SO_CNX_ADVICE = Constant('SO_CNX_ADVICE',53)
SCM_TIMESTAMPING_OPT_STATS = Constant('SCM_TIMESTAMPING_OPT_STATS',54)
SO_MEMINFO = Constant('SO_MEMINFO',55)
SO_INCOMING_NAPI_ID = Constant('SO_INCOMING_NAPI_ID',56)
SO_COOKIE = Constant('SO_COOKIE',57)
SCM_TIMESTAMPING_PKTINFO = Constant('SCM_TIMESTAMPING_PKTINFO',58)
SO_PEERGROUPS = Constant('SO_PEERGROUPS',59)
SO_ZEROCOPY = Constant('SO_ZEROCOPY',60)
SOCK_STREAM = Constant('SOCK_STREAM',1)
SOCK_DGRAM = Constant('SOCK_DGRAM',2)
SOCK_RAW = Constant('SOCK_RAW',3)
SOCK_RDM = Constant('SOCK_RDM',4)
SOCK_SEQPACKET = Constant('SOCK_SEQPACKET',5)
SOCK_DCCP = Constant('SOCK_DCCP',6)
SOCK_PACKET = Constant('SOCK_PACKET',10)
UIO_FASTIOV = Constant('UIO_FASTIOV',8)
UIO_MAXIOV = Constant('UIO_MAXIOV',1024)
@@ -676,7 +725,25 @@ AF_SNA = Constant('AF_SNA',22)
AF_IRDA = Constant('AF_IRDA',23)
AF_PPPOX = Constant('AF_PPPOX',24)
AF_WANPIPE = Constant('AF_WANPIPE',25)
AF_MAX = Constant('AF_MAX',32)
AF_LLC = Constant('AF_LLC',26)
AF_IB = Constant('AF_IB',27)
AF_MPLS = Constant('AF_MPLS',28)
AF_CAN = Constant('AF_CAN',29)
AF_TIPC = Constant('AF_TIPC',30)
AF_BLUETOOTH = Constant('AF_BLUETOOTH',31)
AF_IUCV = Constant('AF_IUCV',32)
AF_RXRPC = Constant('AF_RXRPC',33)
AF_ISDN = Constant('AF_ISDN',34)
AF_PHONET = Constant('AF_PHONET',35)
AF_IEEE802154 = Constant('AF_IEEE802154',36)
AF_CAIF = Constant('AF_CAIF',37)
AF_ALG = Constant('AF_ALG',38)
AF_NFC = Constant('AF_NFC',39)
AF_VSOCK = Constant('AF_VSOCK',40)
AF_KCM = Constant('AF_KCM',41)
AF_QIPCRTR = Constant('AF_QIPCRTR',42)
AF_SMC = Constant('AF_SMC',43)
AF_MAX = Constant('AF_MAX',44)
PF_UNSPEC = Constant('PF_UNSPEC',0)
PF_UNIX = Constant('PF_UNIX',1)
PF_LOCAL = Constant('PF_LOCAL',1)
@@ -704,7 +771,25 @@ PF_SNA = Constant('PF_SNA',22)
PF_IRDA = Constant('PF_IRDA',23)
PF_PPPOX = Constant('PF_PPPOX',24)
PF_WANPIPE = Constant('PF_WANPIPE',25)
PF_MAX = Constant('PF_MAX',32)
PF_LLC = Constant('PF_LLC',26)
PF_IB = Constant('PF_IB',27)
PF_MPLS = Constant('PF_MPLS',28)
PF_CAN = Constant('PF_CAN',29)
PF_TIPC = Constant('PF_TIPC',30)
PF_BLUETOOTH = Constant('PF_BLUETOOTH',31)
PF_IUCV = Constant('PF_IUCV',32)
PF_RXRPC = Constant('PF_RXRPC',33)
PF_ISDN = Constant('PF_ISDN',34)
PF_PHONET = Constant('PF_PHONET',35)
PF_IEEE802154 = Constant('PF_IEEE802154',36)
PF_CAIF = Constant('PF_CAIF',37)
PF_ALG = Constant('PF_ALG',38)
PF_NFC = Constant('PF_NFC',39)
PF_VSOCK = Constant('PF_VSOCK',40)
PF_KCM = Constant('PF_KCM',41)
PF_QIPCRTR = Constant('PF_QIPCRTR',42)
PF_SMC = Constant('PF_SMC',43)
PF_MAX = Constant('PF_MAX',44)
SOMAXCONN = Constant('SOMAXCONN',128)
MSG_OOB = Constant('MSG_OOB',1)
MSG_PEEK = Constant('MSG_PEEK',2)
@@ -717,18 +802,26 @@ MSG_DONTWAIT = Constant('MSG_DONTWAIT',0x40)
MSG_EOR = Constant('MSG_EOR',0x80)
MSG_WAITALL = Constant('MSG_WAITALL',0x100)
MSG_FIN = Constant('MSG_FIN',0x200)
MSG_EOF = Constant('MSG_EOF',0x200)
MSG_SYN = Constant('MSG_SYN',0x400)
MSG_CONFIRM = Constant('MSG_CONFIRM',0x800)
MSG_RST = Constant('MSG_RST',0x1000)
MSG_ERRQUEUE = Constant('MSG_ERRQUEUE',0x2000)
MSG_NOSIGNAL = Constant('MSG_NOSIGNAL',0x4000)
MSG_MORE = Constant('MSG_MORE',0x8000)
MSG_WAITFORONE = Constant('MSG_WAITFORONE',0x10000)
MSG_SENDPAGE_NOTLAST = Constant('MSG_SENDPAGE_NOTLAST',0x20000)
MSG_BATCH = Constant('MSG_BATCH',0x40000)
MSG_EOF = Constant('MSG_EOF',0x200)
MSG_ZEROCOPY = Constant('MSG_ZEROCOPY',0x4000000)
MSG_FASTOPEN = Constant('MSG_FASTOPEN',0x20000000)
MSG_CMSG_CLOEXEC = Constant('MSG_CMSG_CLOEXEC',0x40000000)
SOL_IP = Constant('SOL_IP',0)
SOL_TCP = Constant('SOL_TCP',6)
SOL_UDP = Constant('SOL_UDP',17)
SOL_IPV6 = Constant('SOL_IPV6',41)
SOL_ICMPV6 = Constant('SOL_ICMPV6',58)
SOL_SCTP = Constant('SOL_SCTP',132)
SOL_UDPLITE = Constant('SOL_UDPLITE',136)
SOL_RAW = Constant('SOL_RAW',255)
SOL_IPX = Constant('SOL_IPX',256)
SOL_AX25 = Constant('SOL_AX25',257)
@@ -741,6 +834,22 @@ SOL_PACKET = Constant('SOL_PACKET',263)
SOL_ATM = Constant('SOL_ATM',264)
SOL_AAL = Constant('SOL_AAL',265)
SOL_IRDA = Constant('SOL_IRDA',266)
SOL_NETBEUI = Constant('SOL_NETBEUI',267)
SOL_LLC = Constant('SOL_LLC',268)
SOL_DCCP = Constant('SOL_DCCP',269)
SOL_NETLINK = Constant('SOL_NETLINK',270)
SOL_TIPC = Constant('SOL_TIPC',271)
SOL_RXRPC = Constant('SOL_RXRPC',272)
SOL_PPPOL2TP = Constant('SOL_PPPOL2TP',273)
SOL_BLUETOOTH = Constant('SOL_BLUETOOTH',274)
SOL_PNPIPE = Constant('SOL_PNPIPE',275)
SOL_RDS = Constant('SOL_RDS',276)
SOL_IUCV = Constant('SOL_IUCV',277)
SOL_CAIF = Constant('SOL_CAIF',278)
SOL_ALG = Constant('SOL_ALG',279)
SOL_NFC = Constant('SOL_NFC',280)
SOL_KCM = Constant('SOL_KCM',281)
SOL_TLS = Constant('SOL_TLS',282)
IPX_TYPE = Constant('IPX_TYPE',1)
SHUT_RD = Constant('SHUT_RD',0)
SHUT_WR = Constant('SHUT_WR',1)
@@ -764,6 +873,10 @@ EAI_SYSTEM = Constant('EAI_SYSTEM',-11)
AI_NUMERICHOST = Constant('AI_NUMERICHOST',1)
AI_CANONNAME = Constant('AI_CANONNAME',2)
AI_PASSIVE = Constant('AI_PASSIVE',4)
AI_NUMERICSERV = Constant('AI_NUMERICSERV',8)
AI_ADDRCONFIG = Constant('AI_ADDRCONFIG',16)
AI_V4MAPPED = Constant('AI_V4MAPPED',32)
AI_ALL = Constant('AI_ALL',64)
SIOCADDRT = Constant('SIOCADDRT',0x890B)
SIOCDELRT = Constant('SIOCDELRT',0x890C)
SIOCRTMSG = Constant('SIOCRTMSG',0x890D)
@@ -820,6 +933,130 @@ SIOCSIFMAP = Constant('SIOCSIFMAP',0x8971)
SIOCADDDLCI = Constant('SIOCADDDLCI',0x8980)
SIOCDELDLCI = Constant('SIOCDELDLCI',0x8981)
SIOCDEVPRIVATE = Constant('SIOCDEVPRIVATE',0x89F0)
F_LINUX_SPECIFIC_BASE = Constant('F_LINUX_SPECIFIC_BASE',1024)
O_ACCMODE = Constant('O_ACCMODE',0o003)
O_RDONLY = Constant('O_RDONLY',0o0)
O_WRONLY = Constant('O_WRONLY',0o1)
O_RDWR = Constant('O_RDWR',0o2)
O_CREAT = Constant('O_CREAT',0o100)
O_EXCL = Constant('O_EXCL',0o200)
O_NOCTTY = Constant('O_NOCTTY',0o400)
O_TRUNC = Constant('O_TRUNC',0o1000)
O_APPEND = Constant('O_APPEND',0o2000)
O_NONBLOCK = Constant('O_NONBLOCK',0o4000)
O_NDELAY = Constant('O_NDELAY',0o4000)
O_DSYNC = Constant('O_DSYNC',0o10000)
FASYNC = Constant('FASYNC',0o20000)
O_DIRECTORY = Constant('O_DIRECTORY',0o40000)
O_NOFOLLOW = Constant('O_NOFOLLOW',0o100000)
O_DIRECT = Constant('O_DIRECT',0o200000)
O_LARGEFILE = Constant('O_LARGEFILE',0)
O_NOATIME = Constant('O_NOATIME',0o1000000)
O_CLOEXEC = Constant('O_CLOEXEC',0o2000000)
O_SYNC = Constant('O_SYNC',(0o10000|0o4000000))
O_PATH = Constant('O_PATH',0o10000000)
__O_TMPFILE = Constant('__O_TMPFILE',0o20000000)
F_DUPFD = Constant('F_DUPFD',0)
F_GETFD = Constant('F_GETFD',1)
F_SETFD = Constant('F_SETFD',2)
F_GETFL = Constant('F_GETFL',3)
F_SETFL = Constant('F_SETFL',4)
F_GETLK = Constant('F_GETLK',5)
F_SETLK = Constant('F_SETLK',6)
F_SETLKW = Constant('F_SETLKW',7)
F_SETOWN = Constant('F_SETOWN',8)
F_GETOWN = Constant('F_GETOWN',9)
F_SETSIG = Constant('F_SETSIG',10)
F_GETSIG = Constant('F_GETSIG',11)
F_GETLK64 = Constant('F_GETLK64',12)
F_SETLK64 = Constant('F_SETLK64',13)
F_SETLKW64 = Constant('F_SETLKW64',14)
FD_CLOEXEC = Constant('FD_CLOEXEC',1)
F_RDLCK = Constant('F_RDLCK',0)
F_WRLCK = Constant('F_WRLCK',1)
F_UNLCK = Constant('F_UNLCK',2)
F_EXLCK = Constant('F_EXLCK',4)
F_SHLCK = Constant('F_SHLCK',8)
F_INPROGRESS = Constant('F_INPROGRESS',16)
LOCK_SH = Constant('LOCK_SH',1)
LOCK_EX = Constant('LOCK_EX',2)
LOCK_NB = Constant('LOCK_NB',4)
LOCK_UN = Constant('LOCK_UN',8)
LOCK_MAND = Constant('LOCK_MAND',32)
LOCK_READ = Constant('LOCK_READ',64)
LOCK_WRITE = Constant('LOCK_WRITE',128)
LOCK_RW = Constant('LOCK_RW',192)
O_TMPFILE = Constant('O_TMPFILE',(0o20000000 | 0o40000))
O_ASYNC = Constant('O_ASYNC',0o20000)
F_SETOWN_EX = Constant('F_SETOWN_EX',15)
F_GETOWN_EX = Constant('F_GETOWN_EX',16)
F_GETOWNER_UIDS = Constant('F_GETOWNER_UIDS',17)
F_OFD_GETLK = Constant('F_OFD_GETLK',36)
F_OFD_SETLK = Constant('F_OFD_SETLK',37)
F_OFD_SETLKW = Constant('F_OFD_SETLKW',38)
F_OWNER_TID = Constant('F_OWNER_TID',0)
F_OWNER_PID = Constant('F_OWNER_PID',1)
F_OWNER_PGRP = Constant('F_OWNER_PGRP',2)
AT_FDCWD = Constant('AT_FDCWD',-100)
AT_SYMLINK_NOFOLLOW = Constant('AT_SYMLINK_NOFOLLOW',0x100)
AT_REMOVEDIR = Constant('AT_REMOVEDIR',0x200)
AT_SYMLINK_FOLLOW = Constant('AT_SYMLINK_FOLLOW',0x400)
AT_NO_AUTOMOUNT = Constant('AT_NO_AUTOMOUNT',0x800)
AT_EMPTY_PATH = Constant('AT_EMPTY_PATH',0x1000)
AT_EACCESS = Constant('AT_EACCESS',0x200)
MREMAP_MAYMOVE = Constant('MREMAP_MAYMOVE',1)
MREMAP_FIXED = Constant('MREMAP_FIXED',2)
PROT_READ = Constant('PROT_READ',0x1)
PROT_WRITE = Constant('PROT_WRITE',0x2)
PROT_EXEC = Constant('PROT_EXEC',0x4)
PROT_SEM = Constant('PROT_SEM',0x8)
PROT_NONE = Constant('PROT_NONE',0x0)
PROT_GROWSDOWN = Constant('PROT_GROWSDOWN',0x01000000)
PROT_GROWSUP = Constant('PROT_GROWSUP',0x02000000)
MAP_SHARED = Constant('MAP_SHARED',0x01)
MAP_PRIVATE = Constant('MAP_PRIVATE',0x02)
MAP_TYPE = Constant('MAP_TYPE',0xf)
MADV_REMOVE = Constant('MADV_REMOVE',9)
MADV_DONTFORK = Constant('MADV_DONTFORK',10)
MADV_DOFORK = Constant('MADV_DOFORK',11)
MADV_MERGEABLE = Constant('MADV_MERGEABLE',12)
MADV_UNMERGEABLE = Constant('MADV_UNMERGEABLE',13)
MADV_HUGEPAGE = Constant('MADV_HUGEPAGE',14)
MADV_NOHUGEPAGE = Constant('MADV_NOHUGEPAGE',15)
MADV_DONTDUMP = Constant('MADV_DONTDUMP',16)
MADV_DODUMP = Constant('MADV_DODUMP',17)
MADV_HWPOISON = Constant('MADV_HWPOISON',100)
MADV_SOFT_OFFLINE = Constant('MADV_SOFT_OFFLINE',101)
MLOCK_ONFAULT = Constant('MLOCK_ONFAULT',1)
MAP_FIXED = Constant('MAP_FIXED',0x10)
MAP_ANONYMOUS = Constant('MAP_ANONYMOUS',0x20)
MAP_GROWSDOWN = Constant('MAP_GROWSDOWN',0x0100)
MAP_DENYWRITE = Constant('MAP_DENYWRITE',0x0800)
MAP_EXECUTABLE = Constant('MAP_EXECUTABLE',0x1000)
MAP_LOCKED = Constant('MAP_LOCKED',0x2000)
MAP_NORESERVE = Constant('MAP_NORESERVE',0x4000)
MAP_POPULATE = Constant('MAP_POPULATE',0x8000)
MAP_NONBLOCK = Constant('MAP_NONBLOCK',0x10000)
MAP_STACK = Constant('MAP_STACK',0x20000)
MAP_HUGETLB = Constant('MAP_HUGETLB',0x40000)
MS_ASYNC = Constant('MS_ASYNC',1)
MS_INVALIDATE = Constant('MS_INVALIDATE',2)
MS_SYNC = Constant('MS_SYNC',4)
MCL_CURRENT = Constant('MCL_CURRENT',1)
MCL_FUTURE = Constant('MCL_FUTURE',2)
MCL_ONFAULT = Constant('MCL_ONFAULT',4)
MADV_NORMAL = Constant('MADV_NORMAL',0x0)
MADV_RANDOM = Constant('MADV_RANDOM',0x1)
MADV_SEQUENTIAL = Constant('MADV_SEQUENTIAL',0x2)
MADV_WILLNEED = Constant('MADV_WILLNEED',0x3)
MADV_DONTNEED = Constant('MADV_DONTNEED',0x4)
MAP_ANON = Constant('MAP_ANON',0x20)
MAP_FILE = Constant('MAP_FILE',0)
POSIX_MADV_NORMAL = Constant('POSIX_MADV_NORMAL',0x0)
POSIX_MADV_SEQUENTIAL = Constant('POSIX_MADV_SEQUENTIAL',0x2)
POSIX_MADV_RANDOM = Constant('POSIX_MADV_RANDOM',0x1)
POSIX_MADV_WILLNEED = Constant('POSIX_MADV_WILLNEED',0x3)
POSIX_MADV_DONTNEED = Constant('POSIX_MADV_DONTNEED',0x4)
PTRACE_TRACEME = Constant('PTRACE_TRACEME',0)
PTRACE_PEEKTEXT = Constant('PTRACE_PEEKTEXT',1)
PTRACE_PEEKDATA = Constant('PTRACE_PEEKDATA',2)
@@ -889,19 +1126,24 @@ SYS_accept4 = Constant('SYS_accept4',242)
SYS_acct = Constant('SYS_acct',89)
SYS_add_key = Constant('SYS_add_key',217)
SYS_adjtimex = Constant('SYS_adjtimex',171)
SYS_arch_specific_syscall = Constant('SYS_arch_specific_syscall',244)
SYS_bind = Constant('SYS_bind',200)
SYS_bpf = Constant('SYS_bpf',280)
SYS_brk = Constant('SYS_brk',214)
SYS_capget = Constant('SYS_capget',90)
SYS_capset = Constant('SYS_capset',91)
SYS_chdir = Constant('SYS_chdir',49)
SYS_chroot = Constant('SYS_chroot',51)
SYS_clock_adjtime = Constant('SYS_clock_adjtime',266)
SYS_clock_getres = Constant('SYS_clock_getres',114)
SYS_clock_gettime = Constant('SYS_clock_gettime',113)
SYS_clock_nanosleep = Constant('SYS_clock_nanosleep',115)
SYS_clock_settime = Constant('SYS_clock_settime',112)
SYS_clone = Constant('SYS_clone',220)
SYS_clone3 = Constant('SYS_clone3',435)
SYS_close = Constant('SYS_close',57)
SYS_connect = Constant('SYS_connect',203)
SYS_copy_file_range = Constant('SYS_copy_file_range',285)
SYS_delete_module = Constant('SYS_delete_module',106)
SYS_dup = Constant('SYS_dup',23)
SYS_dup3 = Constant('SYS_dup3',24)
@@ -910,6 +1152,7 @@ SYS_epoll_ctl = Constant('SYS_epoll_ctl',21)
SYS_epoll_pwait = Constant('SYS_epoll_pwait',22)
SYS_eventfd2 = Constant('SYS_eventfd2',19)
SYS_execve = Constant('SYS_execve',221)
SYS_execveat = Constant('SYS_execveat',281)
SYS_exit = Constant('SYS_exit',93)
SYS_exit_group = Constant('SYS_exit_group',94)
SYS_faccessat = Constant('SYS_faccessat',48)
@@ -925,12 +1168,17 @@ SYS_fchownat = Constant('SYS_fchownat',54)
SYS_fcntl = Constant('SYS_fcntl',25)
SYS_fdatasync = Constant('SYS_fdatasync',83)
SYS_fgetxattr = Constant('SYS_fgetxattr',10)
SYS_finit_module = Constant('SYS_finit_module',273)
SYS_flistxattr = Constant('SYS_flistxattr',13)
SYS_flock = Constant('SYS_flock',32)
SYS_fremovexattr = Constant('SYS_fremovexattr',16)
SYS_fsconfig = Constant('SYS_fsconfig',431)
SYS_fsetxattr = Constant('SYS_fsetxattr',7)
SYS_fsmount = Constant('SYS_fsmount',432)
SYS_fsopen = Constant('SYS_fsopen',430)
SYS_fspick = Constant('SYS_fspick',433)
SYS_fstat = Constant('SYS_fstat',80)
SYS_fstatat64 = Constant('SYS_fstatat64',79)
SYS_fstatat = Constant('SYS_fstatat',79)
SYS_fstatfs = Constant('SYS_fstatfs',44)
SYS_fsync = Constant('SYS_fsync',82)
SYS_ftruncate = Constant('SYS_ftruncate',46)
@@ -949,6 +1197,7 @@ SYS_getpgid = Constant('SYS_getpgid',155)
SYS_getpid = Constant('SYS_getpid',172)
SYS_getppid = Constant('SYS_getppid',173)
SYS_getpriority = Constant('SYS_getpriority',141)
SYS_getrandom = Constant('SYS_getrandom',278)
SYS_getresgid = Constant('SYS_getresgid',150)
SYS_getresuid = Constant('SYS_getresuid',148)
SYS_getrlimit = Constant('SYS_getrlimit',163)
@@ -969,10 +1218,16 @@ SYS_io_cancel = Constant('SYS_io_cancel',3)
SYS_ioctl = Constant('SYS_ioctl',29)
SYS_io_destroy = Constant('SYS_io_destroy',1)
SYS_io_getevents = Constant('SYS_io_getevents',4)
SYS_io_pgetevents = Constant('SYS_io_pgetevents',292)
SYS_ioprio_get = Constant('SYS_ioprio_get',31)
SYS_ioprio_set = Constant('SYS_ioprio_set',30)
SYS_io_setup = Constant('SYS_io_setup',0)
SYS_io_submit = Constant('SYS_io_submit',2)
SYS_io_uring_enter = Constant('SYS_io_uring_enter',426)
SYS_io_uring_register = Constant('SYS_io_uring_register',427)
SYS_io_uring_setup = Constant('SYS_io_uring_setup',425)
SYS_kcmp = Constant('SYS_kcmp',272)
SYS_kexec_file_load = Constant('SYS_kexec_file_load',294)
SYS_kexec_load = Constant('SYS_kexec_load',104)
SYS_keyctl = Constant('SYS_keyctl',219)
SYS_kill = Constant('SYS_kill',129)
@@ -987,14 +1242,18 @@ SYS_lseek = Constant('SYS_lseek',62)
SYS_lsetxattr = Constant('SYS_lsetxattr',6)
SYS_madvise = Constant('SYS_madvise',233)
SYS_mbind = Constant('SYS_mbind',235)
SYS_membarrier = Constant('SYS_membarrier',283)
SYS_memfd_create = Constant('SYS_memfd_create',279)
SYS_migrate_pages = Constant('SYS_migrate_pages',238)
SYS_mincore = Constant('SYS_mincore',232)
SYS_mkdirat = Constant('SYS_mkdirat',34)
SYS_mknodat = Constant('SYS_mknodat',33)
SYS_mlock = Constant('SYS_mlock',228)
SYS_mlock2 = Constant('SYS_mlock2',284)
SYS_mlockall = Constant('SYS_mlockall',230)
SYS_mmap = Constant('SYS_mmap',222)
SYS_mount = Constant('SYS_mount',40)
SYS_move_mount = Constant('SYS_move_mount',429)
SYS_move_pages = Constant('SYS_move_pages',239)
SYS_mprotect = Constant('SYS_mprotect',226)
SYS_mq_getsetattr = Constant('SYS_mq_getsetattr',185)
@@ -1012,22 +1271,35 @@ SYS_msync = Constant('SYS_msync',227)
SYS_munlock = Constant('SYS_munlock',229)
SYS_munlockall = Constant('SYS_munlockall',231)
SYS_munmap = Constant('SYS_munmap',215)
SYS_name_to_handle_at = Constant('SYS_name_to_handle_at',264)
SYS_nanosleep = Constant('SYS_nanosleep',101)
SYS_newfstatat = Constant('SYS_newfstatat',79)
SYS_nfsservctl = Constant('SYS_nfsservctl',42)
SYS_openat = Constant('SYS_openat',56)
SYS_open_by_handle_at = Constant('SYS_open_by_handle_at',265)
SYS_open_tree = Constant('SYS_open_tree',428)
SYS_perf_event_open = Constant('SYS_perf_event_open',241)
SYS_personality = Constant('SYS_personality',92)
SYS_pidfd_open = Constant('SYS_pidfd_open',434)
SYS_pidfd_send_signal = Constant('SYS_pidfd_send_signal',424)
SYS_pipe2 = Constant('SYS_pipe2',59)
SYS_pivot_root = Constant('SYS_pivot_root',41)
SYS_pkey_alloc = Constant('SYS_pkey_alloc',289)
SYS_pkey_free = Constant('SYS_pkey_free',290)
SYS_pkey_mprotect = Constant('SYS_pkey_mprotect',288)
SYS_ppoll = Constant('SYS_ppoll',73)
SYS_prctl = Constant('SYS_prctl',167)
SYS_pread64 = Constant('SYS_pread64',67)
SYS_preadv = Constant('SYS_preadv',69)
SYS_preadv2 = Constant('SYS_preadv2',286)
SYS_prlimit64 = Constant('SYS_prlimit64',261)
SYS_process_vm_readv = Constant('SYS_process_vm_readv',270)
SYS_process_vm_writev = Constant('SYS_process_vm_writev',271)
SYS_pselect6 = Constant('SYS_pselect6',72)
SYS_ptrace = Constant('SYS_ptrace',117)
SYS_pwrite64 = Constant('SYS_pwrite64',68)
SYS_pwritev = Constant('SYS_pwritev',70)
SYS_pwritev2 = Constant('SYS_pwritev2',287)
SYS_quotactl = Constant('SYS_quotactl',60)
SYS_read = Constant('SYS_read',63)
SYS_readahead = Constant('SYS_readahead',213)
@@ -1040,8 +1312,10 @@ SYS_recvmsg = Constant('SYS_recvmsg',212)
SYS_remap_file_pages = Constant('SYS_remap_file_pages',234)
SYS_removexattr = Constant('SYS_removexattr',14)
SYS_renameat = Constant('SYS_renameat',38)
SYS_renameat2 = Constant('SYS_renameat2',276)
SYS_request_key = Constant('SYS_request_key',218)
SYS_restart_syscall = Constant('SYS_restart_syscall',128)
SYS_rseq = Constant('SYS_rseq',293)
SYS_rt_sigaction = Constant('SYS_rt_sigaction',134)
SYS_rt_sigpending = Constant('SYS_rt_sigpending',136)
SYS_rt_sigprocmask = Constant('SYS_rt_sigprocmask',135)
@@ -1051,20 +1325,24 @@ SYS_rt_sigsuspend = Constant('SYS_rt_sigsuspend',133)
SYS_rt_sigtimedwait = Constant('SYS_rt_sigtimedwait',137)
SYS_rt_tgsigqueueinfo = Constant('SYS_rt_tgsigqueueinfo',240)
SYS_sched_getaffinity = Constant('SYS_sched_getaffinity',123)
SYS_sched_getattr = Constant('SYS_sched_getattr',275)
SYS_sched_getparam = Constant('SYS_sched_getparam',121)
SYS_sched_get_priority_max = Constant('SYS_sched_get_priority_max',125)
SYS_sched_get_priority_min = Constant('SYS_sched_get_priority_min',126)
SYS_sched_getscheduler = Constant('SYS_sched_getscheduler',120)
SYS_sched_rr_get_interval = Constant('SYS_sched_rr_get_interval',127)
SYS_sched_setaffinity = Constant('SYS_sched_setaffinity',122)
SYS_sched_setattr = Constant('SYS_sched_setattr',274)
SYS_sched_setparam = Constant('SYS_sched_setparam',118)
SYS_sched_setscheduler = Constant('SYS_sched_setscheduler',119)
SYS_sched_yield = Constant('SYS_sched_yield',124)
SYS_seccomp = Constant('SYS_seccomp',277)
SYS_semctl = Constant('SYS_semctl',191)
SYS_semget = Constant('SYS_semget',190)
SYS_semop = Constant('SYS_semop',193)
SYS_semtimedop = Constant('SYS_semtimedop',192)
SYS_sendfile = Constant('SYS_sendfile',71)
SYS_sendmmsg = Constant('SYS_sendmmsg',269)
SYS_sendmsg = Constant('SYS_sendmsg',211)
SYS_sendto = Constant('SYS_sendto',206)
SYS_setdomainname = Constant('SYS_setdomainname',162)
@@ -1075,6 +1353,7 @@ SYS_setgroups = Constant('SYS_setgroups',159)
SYS_sethostname = Constant('SYS_sethostname',161)
SYS_setitimer = Constant('SYS_setitimer',103)
SYS_set_mempolicy = Constant('SYS_set_mempolicy',237)
SYS_setns = Constant('SYS_setns',268)
SYS_setpgid = Constant('SYS_setpgid',154)
SYS_setpriority = Constant('SYS_setpriority',140)
SYS_setregid = Constant('SYS_setregid',143)
@@ -1100,11 +1379,13 @@ SYS_socket = Constant('SYS_socket',198)
SYS_socketpair = Constant('SYS_socketpair',199)
SYS_splice = Constant('SYS_splice',76)
SYS_statfs = Constant('SYS_statfs',43)
SYS_statx = Constant('SYS_statx',291)
SYS_swapoff = Constant('SYS_swapoff',225)
SYS_swapon = Constant('SYS_swapon',224)
SYS_symlinkat = Constant('SYS_symlinkat',36)
SYS_sync = Constant('SYS_sync',81)
SYS_sync_file_range2 = Constant('SYS_sync_file_range2',84)
SYS_sync_file_range = Constant('SYS_sync_file_range',84)
SYS_syncfs = Constant('SYS_syncfs',267)
SYS_sysinfo = Constant('SYS_sysinfo',179)
SYS_syslog = Constant('SYS_syslog',116)
SYS_tee = Constant('SYS_tee',77)
@@ -1125,6 +1406,7 @@ SYS_umount2 = Constant('SYS_umount2',39)
SYS_uname = Constant('SYS_uname',160)
SYS_unlinkat = Constant('SYS_unlinkat',35)
SYS_unshare = Constant('SYS_unshare',97)
SYS_userfaultfd = Constant('SYS_userfaultfd',282)
SYS_utimensat = Constant('SYS_utimensat',88)
SYS_vhangup = Constant('SYS_vhangup',58)
SYS_vmsplice = Constant('SYS_vmsplice',75)
+435 -99
View File
@@ -1,5 +1,4 @@
from pwnlib.constants.constant import Constant
__NR_osf_syscall = Constant('__NR_osf_syscall',0)
__NR_exit = Constant('__NR_exit',1)
__NR_fork = Constant('__NR_fork',2)
@@ -218,6 +217,7 @@ __NR_osf_afs_syscall = Constant('__NR_osf_afs_syscall',258)
__NR_osf_swapctl = Constant('__NR_osf_swapctl',259)
__NR_osf_memcntl = Constant('__NR_osf_memcntl',260)
__NR_osf_fdatasync = Constant('__NR_osf_fdatasync',261)
__NR_umount_with_flags = Constant('__NR_umount_with_flags',22)
__NR_bdflush = Constant('__NR_bdflush',300)
__NR_sethae = Constant('__NR_sethae',301)
__NR_mount = Constant('__NR_mount',302)
@@ -393,6 +393,73 @@ __NR_utimensat = Constant('__NR_utimensat',475)
__NR_signalfd = Constant('__NR_signalfd',476)
__NR_timerfd = Constant('__NR_timerfd',477)
__NR_eventfd = Constant('__NR_eventfd',478)
__NR_recvmmsg = Constant('__NR_recvmmsg',479)
__NR_fallocate = Constant('__NR_fallocate',480)
__NR_timerfd_create = Constant('__NR_timerfd_create',481)
__NR_timerfd_settime = Constant('__NR_timerfd_settime',482)
__NR_timerfd_gettime = Constant('__NR_timerfd_gettime',483)
__NR_signalfd4 = Constant('__NR_signalfd4',484)
__NR_eventfd2 = Constant('__NR_eventfd2',485)
__NR_epoll_create1 = Constant('__NR_epoll_create1',486)
__NR_dup3 = Constant('__NR_dup3',487)
__NR_pipe2 = Constant('__NR_pipe2',488)
__NR_inotify_init1 = Constant('__NR_inotify_init1',489)
__NR_preadv = Constant('__NR_preadv',490)
__NR_pwritev = Constant('__NR_pwritev',491)
__NR_rt_tgsigqueueinfo = Constant('__NR_rt_tgsigqueueinfo',492)
__NR_perf_event_open = Constant('__NR_perf_event_open',493)
__NR_fanotify_init = Constant('__NR_fanotify_init',494)
__NR_fanotify_mark = Constant('__NR_fanotify_mark',495)
__NR_prlimit64 = Constant('__NR_prlimit64',496)
__NR_name_to_handle_at = Constant('__NR_name_to_handle_at',497)
__NR_open_by_handle_at = Constant('__NR_open_by_handle_at',498)
__NR_clock_adjtime = Constant('__NR_clock_adjtime',499)
__NR_syncfs = Constant('__NR_syncfs',500)
__NR_setns = Constant('__NR_setns',501)
__NR_accept4 = Constant('__NR_accept4',502)
__NR_sendmmsg = Constant('__NR_sendmmsg',503)
__NR_process_vm_readv = Constant('__NR_process_vm_readv',504)
__NR_process_vm_writev = Constant('__NR_process_vm_writev',505)
__NR_kcmp = Constant('__NR_kcmp',506)
__NR_finit_module = Constant('__NR_finit_module',507)
__NR_sched_setattr = Constant('__NR_sched_setattr',508)
__NR_sched_getattr = Constant('__NR_sched_getattr',509)
__NR_renameat2 = Constant('__NR_renameat2',510)
__NR_getrandom = Constant('__NR_getrandom',511)
__NR_memfd_create = Constant('__NR_memfd_create',512)
__NR_execveat = Constant('__NR_execveat',513)
__NR_seccomp = Constant('__NR_seccomp',514)
__NR_bpf = Constant('__NR_bpf',515)
__NR_userfaultfd = Constant('__NR_userfaultfd',516)
__NR_membarrier = Constant('__NR_membarrier',517)
__NR_mlock2 = Constant('__NR_mlock2',518)
__NR_copy_file_range = Constant('__NR_copy_file_range',519)
__NR_preadv2 = Constant('__NR_preadv2',520)
__NR_pwritev2 = Constant('__NR_pwritev2',521)
__NR_statx = Constant('__NR_statx',522)
__NR_io_pgetevents = Constant('__NR_io_pgetevents',523)
__NR_pkey_mprotect = Constant('__NR_pkey_mprotect',524)
__NR_pkey_alloc = Constant('__NR_pkey_alloc',525)
__NR_pkey_free = Constant('__NR_pkey_free',526)
__NR_rseq = Constant('__NR_rseq',527)
__NR_statfs64 = Constant('__NR_statfs64',528)
__NR_fstatfs64 = Constant('__NR_fstatfs64',529)
__NR_getegid = Constant('__NR_getegid',530)
__NR_geteuid = Constant('__NR_geteuid',531)
__NR_getppid = Constant('__NR_getppid',532)
__NR_pidfd_send_signal = Constant('__NR_pidfd_send_signal',534)
__NR_io_uring_setup = Constant('__NR_io_uring_setup',535)
__NR_io_uring_enter = Constant('__NR_io_uring_enter',536)
__NR_io_uring_register = Constant('__NR_io_uring_register',537)
__NR_open_tree = Constant('__NR_open_tree',538)
__NR_move_mount = Constant('__NR_move_mount',539)
__NR_fsopen = Constant('__NR_fsopen',540)
__NR_fsconfig = Constant('__NR_fsconfig',541)
__NR_fsmount = Constant('__NR_fsmount',542)
__NR_fspick = Constant('__NR_fspick',543)
__NR_pidfd_open = Constant('__NR_pidfd_open',544)
__NR_openat2 = Constant('__NR_openat2',547)
__NR_pidfd_getfd = Constant('__NR_pidfd_getfd',548)
MAP_32BIT = Constant('MAP_32BIT',0x40)
INADDR_ANY = Constant('INADDR_ANY',0)
INADDR_BROADCAST = Constant('INADDR_BROADCAST',0xffffffff)
@@ -528,7 +595,11 @@ ENOKEY = Constant('ENOKEY',132)
EKEYEXPIRED = Constant('EKEYEXPIRED',133)
EKEYREVOKED = Constant('EKEYREVOKED',134)
EKEYREJECTED = Constant('EKEYREJECTED',135)
__SYS_NERR = Constant('__SYS_NERR',((135) + 1))
EOWNERDEAD = Constant('EOWNERDEAD',136)
ENOTRECOVERABLE = Constant('ENOTRECOVERABLE',137)
ERFKILL = Constant('ERFKILL',138)
EHWPOISON = Constant('EHWPOISON',139)
__SYS_NERR = Constant('__SYS_NERR',((139) + 1))
__LITTLE_ENDIAN = Constant('__LITTLE_ENDIAN',1234)
__BIG_ENDIAN = Constant('__BIG_ENDIAN',4321)
__BYTE_ORDER = Constant('__BYTE_ORDER',1234)
@@ -537,9 +608,55 @@ LITTLE_ENDIAN = Constant('LITTLE_ENDIAN',1234)
BIG_ENDIAN = Constant('BIG_ENDIAN',4321)
BYTE_ORDER = Constant('BYTE_ORDER',1234)
__WORDSIZE = Constant('__WORDSIZE',64)
INT8_MAX = Constant('INT8_MAX',(127))
INT16_MAX = Constant('INT16_MAX',(32767))
INT32_MAX = Constant('INT32_MAX',(2147483647))
INT64_MAX = Constant('INT64_MAX',(9223372036854775807))
INT8_MIN = Constant('INT8_MIN',(-1 - (127)))
INT16_MIN = Constant('INT16_MIN',(-1 - (32767)))
INT32_MIN = Constant('INT32_MIN',(-1 - (2147483647)))
INT64_MIN = Constant('INT64_MIN',(-1 - (9223372036854775807)))
INT_LEAST8_MAX = Constant('INT_LEAST8_MAX',(127))
INT_LEAST8_MIN = Constant('INT_LEAST8_MIN',(-1 - (127)))
INT_LEAST16_MAX = Constant('INT_LEAST16_MAX',(32767))
INT_LEAST16_MIN = Constant('INT_LEAST16_MIN',(-1 - (32767)))
INT_LEAST32_MAX = Constant('INT_LEAST32_MAX',(2147483647))
INT_LEAST32_MIN = Constant('INT_LEAST32_MIN',(-1 - (2147483647)))
INT_LEAST64_MAX = Constant('INT_LEAST64_MAX',(9223372036854775807))
INT_LEAST64_MIN = Constant('INT_LEAST64_MIN',(-1 - (9223372036854775807)))
UINT8_MAX = Constant('UINT8_MAX',0xff)
UINT16_MAX = Constant('UINT16_MAX',0xffff)
UINT32_MAX = Constant('UINT32_MAX',0xffffffff)
UINT64_MAX = Constant('UINT64_MAX',0xffffffffffffffff)
UINT_LEAST8_MAX = Constant('UINT_LEAST8_MAX',0xff)
UINT_LEAST16_MAX = Constant('UINT_LEAST16_MAX',0xffff)
UINT_LEAST32_MAX = Constant('UINT_LEAST32_MAX',0xffffffff)
UINT_LEAST64_MAX = Constant('UINT_LEAST64_MAX',0xffffffffffffffff)
INTPTR_MIN = Constant('INTPTR_MIN',(-1 - (9223372036854775807)))
INTPTR_MAX = Constant('INTPTR_MAX',(9223372036854775807))
UINTPTR_MAX = Constant('UINTPTR_MAX',0xffffffffffffffff)
SIZE_MAX = Constant('SIZE_MAX',0xffffffffffffffff)
PTRDIFF_MIN = Constant('PTRDIFF_MIN',(-1 - (9223372036854775807)))
PTRDIFF_MAX = Constant('PTRDIFF_MAX',(9223372036854775807))
INTMAX_MIN = Constant('INTMAX_MIN',(-1 - (9223372036854775807)))
INTMAX_MAX = Constant('INTMAX_MAX',(9223372036854775807))
UINTMAX_MAX = Constant('UINTMAX_MAX',0xffffffffffffffff)
INT_FAST8_MIN = Constant('INT_FAST8_MIN',(-1 - (127)))
INT_FAST8_MAX = Constant('INT_FAST8_MAX',(127))
INT_FAST64_MIN = Constant('INT_FAST64_MIN',(-1 - (9223372036854775807)))
INT_FAST64_MAX = Constant('INT_FAST64_MAX',(9223372036854775807))
UINT_FAST8_MAX = Constant('UINT_FAST8_MAX',0xff)
UINT_FAST64_MAX = Constant('UINT_FAST64_MAX',0xffffffffffffffff)
INT_FAST16_MIN = Constant('INT_FAST16_MIN',(-1 - (9223372036854775807)))
INT_FAST16_MAX = Constant('INT_FAST16_MAX',(9223372036854775807))
UINT_FAST16_MAX = Constant('UINT_FAST16_MAX',0xffffffffffffffff)
INT_FAST32_MIN = Constant('INT_FAST32_MIN',(-1 - (9223372036854775807)))
INT_FAST32_MAX = Constant('INT_FAST32_MAX',(9223372036854775807))
UINT_FAST32_MAX = Constant('UINT_FAST32_MAX',0xffffffffffffffff)
WINT_MIN = Constant('WINT_MIN',0)
__FSUID_H = Constant('__FSUID_H',1)
NSIG = Constant('NSIG',32)
_NSIG = Constant('_NSIG',64)
_NSIG = Constant('_NSIG',65)
SIGHUP = Constant('SIGHUP',1)
SIGINT = Constant('SIGINT',2)
SIGQUIT = Constant('SIGQUIT',3)
@@ -578,7 +695,7 @@ SIGCLD = Constant('SIGCLD',20)
SIGPOLL = Constant('SIGPOLL',23)
SIGLOST = Constant('SIGLOST',29)
SIGRTMIN = Constant('SIGRTMIN',32)
SIGRTMAX = Constant('SIGRTMAX',(64-1))
SIGRTMAX = Constant('SIGRTMAX',(65-1))
SA_ONSTACK = Constant('SA_ONSTACK',0x00000001)
SA_RESTART = Constant('SA_RESTART',0x00000002)
SA_NOCLDSTOP = Constant('SA_NOCLDSTOP',0x00000004)
@@ -626,6 +743,8 @@ _SC_PAGESIZE = Constant('_SC_PAGESIZE',5)
_SC_NPROCESSORS_ONLN = Constant('_SC_NPROCESSORS_ONLN',6)
_SC_NPROCESSORS_CONF = Constant('_SC_NPROCESSORS_CONF',6)
_SC_PHYS_PAGES = Constant('_SC_PHYS_PAGES',7)
_SC_GETPW_R_SIZE_MAX = Constant('_SC_GETPW_R_SIZE_MAX',8)
_SC_GETGR_R_SIZE_MAX = Constant('_SC_GETGR_R_SIZE_MAX',9)
_PC_PATH_MAX = Constant('_PC_PATH_MAX',1)
_PC_VDISABLE = Constant('_PC_VDISABLE',2)
L_cuserid = Constant('L_cuserid',17)
@@ -634,6 +753,7 @@ F_ULOCK = Constant('F_ULOCK',0)
F_LOCK = Constant('F_LOCK',1)
F_TLOCK = Constant('F_TLOCK',2)
F_TEST = Constant('F_TEST',3)
_POSIX_MAPPED_FILES = Constant('_POSIX_MAPPED_FILES',200809)
S_IFMT = Constant('S_IFMT',0o0170000)
S_IFSOCK = Constant('S_IFSOCK',0o140000)
S_IFLNK = Constant('S_IFLNK',0o120000)
@@ -660,121 +780,82 @@ S_IXOTH = Constant('S_IXOTH',0o0001)
S_IREAD = Constant('S_IREAD',0o0400)
S_IWRITE = Constant('S_IWRITE',0o0200)
S_IEXEC = Constant('S_IEXEC',0o0100)
F_LINUX_SPECIFIC_BASE = Constant('F_LINUX_SPECIFIC_BASE',1024)
O_ACCMODE = Constant('O_ACCMODE',0o003)
O_RDONLY = Constant('O_RDONLY',0o0)
O_WRONLY = Constant('O_WRONLY',0o1)
O_RDWR = Constant('O_RDWR',0o2)
O_CREAT = Constant('O_CREAT',0o1000)
O_TRUNC = Constant('O_TRUNC',0o2000)
O_EXCL = Constant('O_EXCL',0o4000)
O_NOCTTY = Constant('O_NOCTTY',0o10000)
O_NONBLOCK = Constant('O_NONBLOCK',0o0004)
O_APPEND = Constant('O_APPEND',0o0010)
O_NDELAY = Constant('O_NDELAY',0o0004)
O_SYNC = Constant('O_SYNC',0o40000)
FASYNC = Constant('FASYNC',0o20000)
O_DIRECTORY = Constant('O_DIRECTORY',0o100000)
O_NOFOLLOW = Constant('O_NOFOLLOW',0o200000)
O_LARGEFILE = Constant('O_LARGEFILE',0o400000)
O_DIRECT = Constant('O_DIRECT',0o2000000)
O_NOATIME = Constant('O_NOATIME',0o4000000)
F_DUPFD = Constant('F_DUPFD',0)
F_GETFD = Constant('F_GETFD',1)
F_SETFD = Constant('F_SETFD',2)
F_GETFL = Constant('F_GETFL',3)
F_SETFL = Constant('F_SETFL',4)
F_GETLK = Constant('F_GETLK',7)
F_SETLK = Constant('F_SETLK',8)
F_SETLKW = Constant('F_SETLKW',9)
F_SETOWN = Constant('F_SETOWN',5)
F_GETOWN = Constant('F_GETOWN',6)
F_SETSIG = Constant('F_SETSIG',10)
F_GETSIG = Constant('F_GETSIG',11)
FD_CLOEXEC = Constant('FD_CLOEXEC',1)
F_RDLCK = Constant('F_RDLCK',1)
F_WRLCK = Constant('F_WRLCK',2)
F_UNLCK = Constant('F_UNLCK',8)
F_EXLCK = Constant('F_EXLCK',16)
F_SHLCK = Constant('F_SHLCK',32)
F_INPROGRESS = Constant('F_INPROGRESS',64)
LOCK_SH = Constant('LOCK_SH',1)
LOCK_EX = Constant('LOCK_EX',2)
LOCK_NB = Constant('LOCK_NB',4)
LOCK_UN = Constant('LOCK_UN',8)
LOCK_MAND = Constant('LOCK_MAND',32)
LOCK_READ = Constant('LOCK_READ',64)
LOCK_WRITE = Constant('LOCK_WRITE',128)
LOCK_RW = Constant('LOCK_RW',192)
O_ASYNC = Constant('O_ASYNC',0o20000)
MREMAP_MAYMOVE = Constant('MREMAP_MAYMOVE',1)
MREMAP_FIXED = Constant('MREMAP_FIXED',2)
PROT_READ = Constant('PROT_READ',0x1)
PROT_WRITE = Constant('PROT_WRITE',0x2)
PROT_EXEC = Constant('PROT_EXEC',0x4)
PROT_NONE = Constant('PROT_NONE',0x0)
MAP_SHARED = Constant('MAP_SHARED',0x01)
MAP_PRIVATE = Constant('MAP_PRIVATE',0x02)
MAP_FIXED = Constant('MAP_FIXED',0x100)
MAP_ANONYMOUS = Constant('MAP_ANONYMOUS',0x10)
MAP_GROWSDOWN = Constant('MAP_GROWSDOWN',0x1000)
MAP_DENYWRITE = Constant('MAP_DENYWRITE',0x2000)
MAP_EXECUTABLE = Constant('MAP_EXECUTABLE',0x4000)
MAP_LOCKED = Constant('MAP_LOCKED',0x8000)
MAP_NORESERVE = Constant('MAP_NORESERVE',0x10000)
MAP_POPULATE = Constant('MAP_POPULATE',0x20000)
MS_ASYNC = Constant('MS_ASYNC',1)
MS_SYNC = Constant('MS_SYNC',2)
MS_INVALIDATE = Constant('MS_INVALIDATE',4)
MCL_CURRENT = Constant('MCL_CURRENT',8192)
MCL_FUTURE = Constant('MCL_FUTURE',16384)
MADV_NORMAL = Constant('MADV_NORMAL',0)
MADV_RANDOM = Constant('MADV_RANDOM',1)
MADV_SEQUENTIAL = Constant('MADV_SEQUENTIAL',2)
MADV_WILLNEED = Constant('MADV_WILLNEED',3)
MADV_SPACEAVAIL = Constant('MADV_SPACEAVAIL',5)
MADV_DONTNEED = Constant('MADV_DONTNEED',6)
MAP_ANON = Constant('MAP_ANON',0x10)
MAP_FILE = Constant('MAP_FILE',0)
_SYS_UIO = Constant('_SYS_UIO',1)
SOL_SOCKET = Constant('SOL_SOCKET',0xffff)
SO_DEBUG = Constant('SO_DEBUG',0x0001)
SO_REUSEADDR = Constant('SO_REUSEADDR',0x0004)
SO_TYPE = Constant('SO_TYPE',0x1008)
SO_ERROR = Constant('SO_ERROR',0x1007)
SO_KEEPALIVE = Constant('SO_KEEPALIVE',0x0008)
SO_DONTROUTE = Constant('SO_DONTROUTE',0x0010)
SO_BROADCAST = Constant('SO_BROADCAST',0x0020)
SO_LINGER = Constant('SO_LINGER',0x0080)
SO_OOBINLINE = Constant('SO_OOBINLINE',0x0100)
SO_REUSEPORT = Constant('SO_REUSEPORT',0x0200)
SO_TYPE = Constant('SO_TYPE',0x1008)
SO_ERROR = Constant('SO_ERROR',0x1007)
SO_SNDBUF = Constant('SO_SNDBUF',0x1001)
SO_RCVBUF = Constant('SO_RCVBUF',0x1002)
SO_KEEPALIVE = Constant('SO_KEEPALIVE',0x0008)
SO_OOBINLINE = Constant('SO_OOBINLINE',0x0100)
SO_NO_CHECK = Constant('SO_NO_CHECK',11)
SO_PRIORITY = Constant('SO_PRIORITY',12)
SO_LINGER = Constant('SO_LINGER',0x0080)
SO_BSDCOMPAT = Constant('SO_BSDCOMPAT',14)
SO_PASSCRED = Constant('SO_PASSCRED',17)
SO_PEERCRED = Constant('SO_PEERCRED',18)
SO_RCVLOWAT = Constant('SO_RCVLOWAT',0x1004)
SO_SNDLOWAT = Constant('SO_SNDLOWAT',0x1003)
SO_RCVTIMEO = Constant('SO_RCVTIMEO',0x1006)
SO_SNDTIMEO = Constant('SO_SNDTIMEO',0x1005)
SO_ACCEPTCONN = Constant('SO_ACCEPTCONN',0x1009)
SO_SNDBUFFORCE = Constant('SO_SNDBUFFORCE',0x100a)
SO_RCVBUFFORCE = Constant('SO_RCVBUFFORCE',0x100b)
SO_STYLE = Constant('SO_STYLE',0x1008)
SO_SECURITY_AUTHENTICATION = Constant('SO_SECURITY_AUTHENTICATION',22)
SO_SECURITY_ENCRYPTION_TRANSPORT = Constant('SO_SECURITY_ENCRYPTION_TRANSPORT',23)
SO_SECURITY_ENCRYPTION_NETWORK = Constant('SO_SECURITY_ENCRYPTION_NETWORK',24)
SO_SECURITY_AUTHENTICATION = Constant('SO_SECURITY_AUTHENTICATION',19)
SO_SECURITY_ENCRYPTION_TRANSPORT = Constant('SO_SECURITY_ENCRYPTION_TRANSPORT',20)
SO_SECURITY_ENCRYPTION_NETWORK = Constant('SO_SECURITY_ENCRYPTION_NETWORK',21)
SO_BINDTODEVICE = Constant('SO_BINDTODEVICE',25)
SO_ATTACH_FILTER = Constant('SO_ATTACH_FILTER',26)
SO_DETACH_FILTER = Constant('SO_DETACH_FILTER',27)
SO_GET_FILTER = Constant('SO_GET_FILTER',26)
SO_PEERNAME = Constant('SO_PEERNAME',28)
SO_TIMESTAMP = Constant('SO_TIMESTAMP',29)
SCM_TIMESTAMP = Constant('SCM_TIMESTAMP',29)
SO_PEERSEC = Constant('SO_PEERSEC',30)
SO_PASSSEC = Constant('SO_PASSSEC',34)
SO_TIMESTAMPNS = Constant('SO_TIMESTAMPNS',35)
SCM_TIMESTAMPNS = Constant('SCM_TIMESTAMPNS',35)
SO_MARK = Constant('SO_MARK',36)
SO_TIMESTAMPING = Constant('SO_TIMESTAMPING',37)
SCM_TIMESTAMPING = Constant('SCM_TIMESTAMPING',37)
SO_RXQ_OVFL = Constant('SO_RXQ_OVFL',40)
SO_WIFI_STATUS = Constant('SO_WIFI_STATUS',41)
SCM_WIFI_STATUS = Constant('SCM_WIFI_STATUS',41)
SO_PEEK_OFF = Constant('SO_PEEK_OFF',42)
SO_NOFCS = Constant('SO_NOFCS',43)
SO_LOCK_FILTER = Constant('SO_LOCK_FILTER',44)
SO_SELECT_ERR_QUEUE = Constant('SO_SELECT_ERR_QUEUE',45)
SO_BUSY_POLL = Constant('SO_BUSY_POLL',46)
SO_MAX_PACING_RATE = Constant('SO_MAX_PACING_RATE',47)
SO_BPF_EXTENSIONS = Constant('SO_BPF_EXTENSIONS',48)
SO_INCOMING_CPU = Constant('SO_INCOMING_CPU',49)
SO_ATTACH_BPF = Constant('SO_ATTACH_BPF',50)
SO_DETACH_BPF = Constant('SO_DETACH_BPF',27)
SO_ATTACH_REUSEPORT_CBPF = Constant('SO_ATTACH_REUSEPORT_CBPF',51)
SO_ATTACH_REUSEPORT_EBPF = Constant('SO_ATTACH_REUSEPORT_EBPF',52)
SO_CNX_ADVICE = Constant('SO_CNX_ADVICE',53)
SCM_TIMESTAMPING_OPT_STATS = Constant('SCM_TIMESTAMPING_OPT_STATS',54)
SO_MEMINFO = Constant('SO_MEMINFO',55)
SO_INCOMING_NAPI_ID = Constant('SO_INCOMING_NAPI_ID',56)
SO_COOKIE = Constant('SO_COOKIE',57)
SCM_TIMESTAMPING_PKTINFO = Constant('SCM_TIMESTAMPING_PKTINFO',58)
SO_PEERGROUPS = Constant('SO_PEERGROUPS',59)
SO_ZEROCOPY = Constant('SO_ZEROCOPY',60)
SO_SNDBUFFORCE = Constant('SO_SNDBUFFORCE',0x100a)
SO_RCVBUFFORCE = Constant('SO_RCVBUFFORCE',0x100b)
SO_RCVLOWAT = Constant('SO_RCVLOWAT',0x1010)
SO_SNDLOWAT = Constant('SO_SNDLOWAT',0x1011)
SO_RCVTIMEO = Constant('SO_RCVTIMEO',0x1012)
SO_SNDTIMEO = Constant('SO_SNDTIMEO',0x1013)
SO_ACCEPTCONN = Constant('SO_ACCEPTCONN',0x1014)
SO_PROTOCOL = Constant('SO_PROTOCOL',0x1028)
SO_DOMAIN = Constant('SO_DOMAIN',0x1029)
SO_STYLE = Constant('SO_STYLE',0x1008)
SOCK_NONBLOCK = Constant('SOCK_NONBLOCK',0x40000000)
SOCK_STREAM = Constant('SOCK_STREAM',1)
SOCK_DGRAM = Constant('SOCK_DGRAM',2)
SOCK_RAW = Constant('SOCK_RAW',3)
SOCK_RDM = Constant('SOCK_RDM',4)
SOCK_SEQPACKET = Constant('SOCK_SEQPACKET',5)
SOCK_DCCP = Constant('SOCK_DCCP',6)
SOCK_PACKET = Constant('SOCK_PACKET',10)
UIO_FASTIOV = Constant('UIO_FASTIOV',8)
UIO_MAXIOV = Constant('UIO_MAXIOV',1024)
@@ -808,7 +889,25 @@ AF_SNA = Constant('AF_SNA',22)
AF_IRDA = Constant('AF_IRDA',23)
AF_PPPOX = Constant('AF_PPPOX',24)
AF_WANPIPE = Constant('AF_WANPIPE',25)
AF_MAX = Constant('AF_MAX',32)
AF_LLC = Constant('AF_LLC',26)
AF_IB = Constant('AF_IB',27)
AF_MPLS = Constant('AF_MPLS',28)
AF_CAN = Constant('AF_CAN',29)
AF_TIPC = Constant('AF_TIPC',30)
AF_BLUETOOTH = Constant('AF_BLUETOOTH',31)
AF_IUCV = Constant('AF_IUCV',32)
AF_RXRPC = Constant('AF_RXRPC',33)
AF_ISDN = Constant('AF_ISDN',34)
AF_PHONET = Constant('AF_PHONET',35)
AF_IEEE802154 = Constant('AF_IEEE802154',36)
AF_CAIF = Constant('AF_CAIF',37)
AF_ALG = Constant('AF_ALG',38)
AF_NFC = Constant('AF_NFC',39)
AF_VSOCK = Constant('AF_VSOCK',40)
AF_KCM = Constant('AF_KCM',41)
AF_QIPCRTR = Constant('AF_QIPCRTR',42)
AF_SMC = Constant('AF_SMC',43)
AF_MAX = Constant('AF_MAX',44)
PF_UNSPEC = Constant('PF_UNSPEC',0)
PF_UNIX = Constant('PF_UNIX',1)
PF_LOCAL = Constant('PF_LOCAL',1)
@@ -836,7 +935,25 @@ PF_SNA = Constant('PF_SNA',22)
PF_IRDA = Constant('PF_IRDA',23)
PF_PPPOX = Constant('PF_PPPOX',24)
PF_WANPIPE = Constant('PF_WANPIPE',25)
PF_MAX = Constant('PF_MAX',32)
PF_LLC = Constant('PF_LLC',26)
PF_IB = Constant('PF_IB',27)
PF_MPLS = Constant('PF_MPLS',28)
PF_CAN = Constant('PF_CAN',29)
PF_TIPC = Constant('PF_TIPC',30)
PF_BLUETOOTH = Constant('PF_BLUETOOTH',31)
PF_IUCV = Constant('PF_IUCV',32)
PF_RXRPC = Constant('PF_RXRPC',33)
PF_ISDN = Constant('PF_ISDN',34)
PF_PHONET = Constant('PF_PHONET',35)
PF_IEEE802154 = Constant('PF_IEEE802154',36)
PF_CAIF = Constant('PF_CAIF',37)
PF_ALG = Constant('PF_ALG',38)
PF_NFC = Constant('PF_NFC',39)
PF_VSOCK = Constant('PF_VSOCK',40)
PF_KCM = Constant('PF_KCM',41)
PF_QIPCRTR = Constant('PF_QIPCRTR',42)
PF_SMC = Constant('PF_SMC',43)
PF_MAX = Constant('PF_MAX',44)
SOMAXCONN = Constant('SOMAXCONN',128)
MSG_OOB = Constant('MSG_OOB',1)
MSG_PEEK = Constant('MSG_PEEK',2)
@@ -849,18 +966,26 @@ MSG_DONTWAIT = Constant('MSG_DONTWAIT',0x40)
MSG_EOR = Constant('MSG_EOR',0x80)
MSG_WAITALL = Constant('MSG_WAITALL',0x100)
MSG_FIN = Constant('MSG_FIN',0x200)
MSG_EOF = Constant('MSG_EOF',0x200)
MSG_SYN = Constant('MSG_SYN',0x400)
MSG_CONFIRM = Constant('MSG_CONFIRM',0x800)
MSG_RST = Constant('MSG_RST',0x1000)
MSG_ERRQUEUE = Constant('MSG_ERRQUEUE',0x2000)
MSG_NOSIGNAL = Constant('MSG_NOSIGNAL',0x4000)
MSG_MORE = Constant('MSG_MORE',0x8000)
MSG_WAITFORONE = Constant('MSG_WAITFORONE',0x10000)
MSG_SENDPAGE_NOTLAST = Constant('MSG_SENDPAGE_NOTLAST',0x20000)
MSG_BATCH = Constant('MSG_BATCH',0x40000)
MSG_EOF = Constant('MSG_EOF',0x200)
MSG_ZEROCOPY = Constant('MSG_ZEROCOPY',0x4000000)
MSG_FASTOPEN = Constant('MSG_FASTOPEN',0x20000000)
MSG_CMSG_CLOEXEC = Constant('MSG_CMSG_CLOEXEC',0x40000000)
SOL_IP = Constant('SOL_IP',0)
SOL_TCP = Constant('SOL_TCP',6)
SOL_UDP = Constant('SOL_UDP',17)
SOL_IPV6 = Constant('SOL_IPV6',41)
SOL_ICMPV6 = Constant('SOL_ICMPV6',58)
SOL_SCTP = Constant('SOL_SCTP',132)
SOL_UDPLITE = Constant('SOL_UDPLITE',136)
SOL_RAW = Constant('SOL_RAW',255)
SOL_IPX = Constant('SOL_IPX',256)
SOL_AX25 = Constant('SOL_AX25',257)
@@ -873,6 +998,22 @@ SOL_PACKET = Constant('SOL_PACKET',263)
SOL_ATM = Constant('SOL_ATM',264)
SOL_AAL = Constant('SOL_AAL',265)
SOL_IRDA = Constant('SOL_IRDA',266)
SOL_NETBEUI = Constant('SOL_NETBEUI',267)
SOL_LLC = Constant('SOL_LLC',268)
SOL_DCCP = Constant('SOL_DCCP',269)
SOL_NETLINK = Constant('SOL_NETLINK',270)
SOL_TIPC = Constant('SOL_TIPC',271)
SOL_RXRPC = Constant('SOL_RXRPC',272)
SOL_PPPOL2TP = Constant('SOL_PPPOL2TP',273)
SOL_BLUETOOTH = Constant('SOL_BLUETOOTH',274)
SOL_PNPIPE = Constant('SOL_PNPIPE',275)
SOL_RDS = Constant('SOL_RDS',276)
SOL_IUCV = Constant('SOL_IUCV',277)
SOL_CAIF = Constant('SOL_CAIF',278)
SOL_ALG = Constant('SOL_ALG',279)
SOL_NFC = Constant('SOL_NFC',280)
SOL_KCM = Constant('SOL_KCM',281)
SOL_TLS = Constant('SOL_TLS',282)
IPX_TYPE = Constant('IPX_TYPE',1)
SHUT_RD = Constant('SHUT_RD',0)
SHUT_WR = Constant('SHUT_WR',1)
@@ -896,6 +1037,10 @@ EAI_SYSTEM = Constant('EAI_SYSTEM',-11)
AI_NUMERICHOST = Constant('AI_NUMERICHOST',1)
AI_CANONNAME = Constant('AI_CANONNAME',2)
AI_PASSIVE = Constant('AI_PASSIVE',4)
AI_NUMERICSERV = Constant('AI_NUMERICSERV',8)
AI_ADDRCONFIG = Constant('AI_ADDRCONFIG',16)
AI_V4MAPPED = Constant('AI_V4MAPPED',32)
AI_ALL = Constant('AI_ALL',64)
SIOCADDRT = Constant('SIOCADDRT',0x890B)
SIOCDELRT = Constant('SIOCDELRT',0x890C)
SIOCRTMSG = Constant('SIOCRTMSG',0x890D)
@@ -952,6 +1097,128 @@ SIOCSIFMAP = Constant('SIOCSIFMAP',0x8971)
SIOCADDDLCI = Constant('SIOCADDDLCI',0x8980)
SIOCDELDLCI = Constant('SIOCDELDLCI',0x8981)
SIOCDEVPRIVATE = Constant('SIOCDEVPRIVATE',0x89F0)
F_LINUX_SPECIFIC_BASE = Constant('F_LINUX_SPECIFIC_BASE',1024)
O_ACCMODE = Constant('O_ACCMODE',0o003)
O_RDONLY = Constant('O_RDONLY',0o0)
O_WRONLY = Constant('O_WRONLY',0o1)
O_RDWR = Constant('O_RDWR',0o2)
O_CREAT = Constant('O_CREAT',0o1000)
O_TRUNC = Constant('O_TRUNC',0o2000)
O_EXCL = Constant('O_EXCL',0o4000)
O_NOCTTY = Constant('O_NOCTTY',0o10000)
O_NONBLOCK = Constant('O_NONBLOCK',0o0004)
O_APPEND = Constant('O_APPEND',0o0010)
O_NDELAY = Constant('O_NDELAY',0o0004)
O_DSYNC = Constant('O_DSYNC',0o40000)
FASYNC = Constant('FASYNC',0o20000)
O_DIRECTORY = Constant('O_DIRECTORY',0o100000)
O_NOFOLLOW = Constant('O_NOFOLLOW',0o200000)
O_LARGEFILE = Constant('O_LARGEFILE',0o400000)
O_DIRECT = Constant('O_DIRECT',0o2000000)
O_NOATIME = Constant('O_NOATIME',0o4000000)
O_CLOEXEC = Constant('O_CLOEXEC',0o10000000)
O_SYNC = Constant('O_SYNC',(0o20000000|0o40000))
O_PATH = Constant('O_PATH',0o40000000)
__O_TMPFILE = Constant('__O_TMPFILE',0o100000000)
F_DUPFD = Constant('F_DUPFD',0)
F_GETFD = Constant('F_GETFD',1)
F_SETFD = Constant('F_SETFD',2)
F_GETFL = Constant('F_GETFL',3)
F_SETFL = Constant('F_SETFL',4)
F_GETLK = Constant('F_GETLK',7)
F_SETLK = Constant('F_SETLK',8)
F_SETLKW = Constant('F_SETLKW',9)
F_SETOWN = Constant('F_SETOWN',5)
F_GETOWN = Constant('F_GETOWN',6)
F_SETSIG = Constant('F_SETSIG',10)
F_GETSIG = Constant('F_GETSIG',11)
FD_CLOEXEC = Constant('FD_CLOEXEC',1)
F_RDLCK = Constant('F_RDLCK',1)
F_WRLCK = Constant('F_WRLCK',2)
F_UNLCK = Constant('F_UNLCK',8)
F_EXLCK = Constant('F_EXLCK',16)
F_SHLCK = Constant('F_SHLCK',32)
F_INPROGRESS = Constant('F_INPROGRESS',64)
LOCK_SH = Constant('LOCK_SH',1)
LOCK_EX = Constant('LOCK_EX',2)
LOCK_NB = Constant('LOCK_NB',4)
LOCK_UN = Constant('LOCK_UN',8)
LOCK_MAND = Constant('LOCK_MAND',32)
LOCK_READ = Constant('LOCK_READ',64)
LOCK_WRITE = Constant('LOCK_WRITE',128)
LOCK_RW = Constant('LOCK_RW',192)
O_TMPFILE = Constant('O_TMPFILE',(0o100000000 | 0o100000))
O_ASYNC = Constant('O_ASYNC',0o20000)
F_SETOWN_EX = Constant('F_SETOWN_EX',15)
F_GETOWN_EX = Constant('F_GETOWN_EX',16)
F_GETOWNER_UIDS = Constant('F_GETOWNER_UIDS',17)
F_OFD_GETLK = Constant('F_OFD_GETLK',36)
F_OFD_SETLK = Constant('F_OFD_SETLK',37)
F_OFD_SETLKW = Constant('F_OFD_SETLKW',38)
F_OWNER_TID = Constant('F_OWNER_TID',0)
F_OWNER_PID = Constant('F_OWNER_PID',1)
F_OWNER_PGRP = Constant('F_OWNER_PGRP',2)
AT_FDCWD = Constant('AT_FDCWD',-100)
AT_SYMLINK_NOFOLLOW = Constant('AT_SYMLINK_NOFOLLOW',0x100)
AT_REMOVEDIR = Constant('AT_REMOVEDIR',0x200)
AT_SYMLINK_FOLLOW = Constant('AT_SYMLINK_FOLLOW',0x400)
AT_NO_AUTOMOUNT = Constant('AT_NO_AUTOMOUNT',0x800)
AT_EMPTY_PATH = Constant('AT_EMPTY_PATH',0x1000)
AT_EACCESS = Constant('AT_EACCESS',0x200)
MREMAP_MAYMOVE = Constant('MREMAP_MAYMOVE',1)
MREMAP_FIXED = Constant('MREMAP_FIXED',2)
PROT_READ = Constant('PROT_READ',0x1)
PROT_WRITE = Constant('PROT_WRITE',0x2)
PROT_EXEC = Constant('PROT_EXEC',0x4)
PROT_SEM = Constant('PROT_SEM',0x8)
PROT_NONE = Constant('PROT_NONE',0x0)
PROT_GROWSDOWN = Constant('PROT_GROWSDOWN',0x01000000)
PROT_GROWSUP = Constant('PROT_GROWSUP',0x02000000)
MAP_SHARED = Constant('MAP_SHARED',0x01)
MAP_PRIVATE = Constant('MAP_PRIVATE',0x02)
MAP_TYPE = Constant('MAP_TYPE',0xf)
MADV_REMOVE = Constant('MADV_REMOVE',9)
MADV_DONTFORK = Constant('MADV_DONTFORK',10)
MADV_DOFORK = Constant('MADV_DOFORK',11)
MADV_MERGEABLE = Constant('MADV_MERGEABLE',12)
MADV_UNMERGEABLE = Constant('MADV_UNMERGEABLE',13)
MADV_HUGEPAGE = Constant('MADV_HUGEPAGE',14)
MADV_NOHUGEPAGE = Constant('MADV_NOHUGEPAGE',15)
MADV_DONTDUMP = Constant('MADV_DONTDUMP',16)
MADV_DODUMP = Constant('MADV_DODUMP',17)
MADV_HWPOISON = Constant('MADV_HWPOISON',100)
MADV_SOFT_OFFLINE = Constant('MADV_SOFT_OFFLINE',101)
MLOCK_ONFAULT = Constant('MLOCK_ONFAULT',1)
MAP_FIXED = Constant('MAP_FIXED',0x100)
MAP_ANONYMOUS = Constant('MAP_ANONYMOUS',0x10)
MAP_GROWSDOWN = Constant('MAP_GROWSDOWN',0x1000)
MAP_DENYWRITE = Constant('MAP_DENYWRITE',0x2000)
MAP_EXECUTABLE = Constant('MAP_EXECUTABLE',0x4000)
MAP_LOCKED = Constant('MAP_LOCKED',0x8000)
MAP_NORESERVE = Constant('MAP_NORESERVE',0x10000)
MAP_POPULATE = Constant('MAP_POPULATE',0x20000)
MAP_NONBLOCK = Constant('MAP_NONBLOCK',0x40000)
MAP_STACK = Constant('MAP_STACK',0x80000)
MAP_HUGETLB = Constant('MAP_HUGETLB',0x100000)
MS_ASYNC = Constant('MS_ASYNC',1)
MS_SYNC = Constant('MS_SYNC',2)
MS_INVALIDATE = Constant('MS_INVALIDATE',4)
MCL_CURRENT = Constant('MCL_CURRENT',8192)
MCL_FUTURE = Constant('MCL_FUTURE',16384)
MCL_ONFAULT = Constant('MCL_ONFAULT',32768)
MADV_NORMAL = Constant('MADV_NORMAL',0)
MADV_RANDOM = Constant('MADV_RANDOM',1)
MADV_SEQUENTIAL = Constant('MADV_SEQUENTIAL',2)
MADV_WILLNEED = Constant('MADV_WILLNEED',3)
MADV_SPACEAVAIL = Constant('MADV_SPACEAVAIL',5)
MADV_DONTNEED = Constant('MADV_DONTNEED',6)
MAP_ANON = Constant('MAP_ANON',0x10)
MAP_FILE = Constant('MAP_FILE',0)
POSIX_MADV_NORMAL = Constant('POSIX_MADV_NORMAL',0)
POSIX_MADV_SEQUENTIAL = Constant('POSIX_MADV_SEQUENTIAL',2)
POSIX_MADV_RANDOM = Constant('POSIX_MADV_RANDOM',1)
POSIX_MADV_WILLNEED = Constant('POSIX_MADV_WILLNEED',3)
POSIX_MADV_DONTNEED = Constant('POSIX_MADV_DONTNEED',6)
PTRACE_TRACEME = Constant('PTRACE_TRACEME',0)
PTRACE_PEEKTEXT = Constant('PTRACE_PEEKTEXT',1)
PTRACE_PEEKDATA = Constant('PTRACE_PEEKDATA',2)
@@ -997,6 +1264,7 @@ PT_STEP = Constant('PT_STEP',9)
PT_ATTACH = Constant('PT_ATTACH',0x10)
PT_DETACH = Constant('PT_DETACH',0x11)
SYS_accept = Constant('SYS_accept',99)
SYS_accept4 = Constant('SYS_accept4',502)
SYS_access = Constant('SYS_access',33)
SYS_acct = Constant('SYS_acct',51)
SYS_add_key = Constant('SYS_add_key',439)
@@ -1004,6 +1272,7 @@ SYS_adjtimex = Constant('SYS_adjtimex',366)
SYS_afs_syscall = Constant('SYS_afs_syscall',338)
SYS_bdflush = Constant('SYS_bdflush',300)
SYS_bind = Constant('SYS_bind',104)
SYS_bpf = Constant('SYS_bpf',515)
SYS_brk = Constant('SYS_brk',17)
SYS_capget = Constant('SYS_capget',368)
SYS_capset = Constant('SYS_capset',369)
@@ -1011,6 +1280,7 @@ SYS_chdir = Constant('SYS_chdir',12)
SYS_chmod = Constant('SYS_chmod',15)
SYS_chown = Constant('SYS_chown',16)
SYS_chroot = Constant('SYS_chroot',61)
SYS_clock_adjtime = Constant('SYS_clock_adjtime',499)
SYS_clock_getres = Constant('SYS_clock_getres',421)
SYS_clock_gettime = Constant('SYS_clock_gettime',420)
SYS_clock_nanosleep = Constant('SYS_clock_nanosleep',422)
@@ -1018,19 +1288,27 @@ SYS_clock_settime = Constant('SYS_clock_settime',419)
SYS_clone = Constant('SYS_clone',312)
SYS_close = Constant('SYS_close',6)
SYS_connect = Constant('SYS_connect',98)
SYS_copy_file_range = Constant('SYS_copy_file_range',519)
SYS_create_module = Constant('SYS_create_module',306)
SYS_delete_module = Constant('SYS_delete_module',308)
SYS_dipc = Constant('SYS_dipc',373)
SYS_dup = Constant('SYS_dup',41)
SYS_dup2 = Constant('SYS_dup2',90)
SYS_dup3 = Constant('SYS_dup3',487)
SYS_epoll_create1 = Constant('SYS_epoll_create1',486)
SYS_epoll_pwait = Constant('SYS_epoll_pwait',474)
SYS_eventfd = Constant('SYS_eventfd',478)
SYS_eventfd2 = Constant('SYS_eventfd2',485)
SYS_execve = Constant('SYS_execve',59)
SYS_execveat = Constant('SYS_execveat',513)
SYS_exec_with_loader = Constant('SYS_exec_with_loader',25)
SYS_exit = Constant('SYS_exit',1)
SYS_exit_group = Constant('SYS_exit_group',405)
SYS_faccessat = Constant('SYS_faccessat',462)
SYS_fadvise64 = Constant('SYS_fadvise64',413)
SYS_fallocate = Constant('SYS_fallocate',480)
SYS_fanotify_init = Constant('SYS_fanotify_init',494)
SYS_fanotify_mark = Constant('SYS_fanotify_mark',495)
SYS_fchdir = Constant('SYS_fchdir',13)
SYS_fchmod = Constant('SYS_fchmod',124)
SYS_fchmodat = Constant('SYS_fchmodat',461)
@@ -1039,15 +1317,21 @@ SYS_fchownat = Constant('SYS_fchownat',453)
SYS_fcntl = Constant('SYS_fcntl',92)
SYS_fdatasync = Constant('SYS_fdatasync',447)
SYS_fgetxattr = Constant('SYS_fgetxattr',387)
SYS_finit_module = Constant('SYS_finit_module',507)
SYS_flistxattr = Constant('SYS_flistxattr',390)
SYS_flock = Constant('SYS_flock',131)
SYS_fork = Constant('SYS_fork',2)
SYS_fremovexattr = Constant('SYS_fremovexattr',393)
SYS_fsconfig = Constant('SYS_fsconfig',541)
SYS_fsetxattr = Constant('SYS_fsetxattr',384)
SYS_fsmount = Constant('SYS_fsmount',542)
SYS_fsopen = Constant('SYS_fsopen',540)
SYS_fspick = Constant('SYS_fspick',543)
SYS_fstat = Constant('SYS_fstat',91)
SYS_fstat64 = Constant('SYS_fstat64',427)
SYS_fstatat64 = Constant('SYS_fstatat64',455)
SYS_fstatfs = Constant('SYS_fstatfs',329)
SYS_fstatfs64 = Constant('SYS_fstatfs64',529)
SYS_fsync = Constant('SYS_fsync',95)
SYS_ftruncate = Constant('SYS_ftruncate',130)
SYS_futex = Constant('SYS_futex',394)
@@ -1057,6 +1341,8 @@ SYS_getcwd = Constant('SYS_getcwd',367)
SYS_getdents = Constant('SYS_getdents',305)
SYS_getdents64 = Constant('SYS_getdents64',377)
SYS_getdtablesize = Constant('SYS_getdtablesize',89)
SYS_getegid = Constant('SYS_getegid',530)
SYS_geteuid = Constant('SYS_geteuid',531)
SYS_getgroups = Constant('SYS_getgroups',79)
SYS_gethostname = Constant('SYS_gethostname',87)
SYS_getitimer = Constant('SYS_getitimer',361)
@@ -1066,7 +1352,9 @@ SYS_getpagesize = Constant('SYS_getpagesize',64)
SYS_getpeername = Constant('SYS_getpeername',141)
SYS_getpgid = Constant('SYS_getpgid',233)
SYS_getpgrp = Constant('SYS_getpgrp',63)
SYS_getppid = Constant('SYS_getppid',532)
SYS_getpriority = Constant('SYS_getpriority',100)
SYS_getrandom = Constant('SYS_getrandom',511)
SYS_getresgid = Constant('SYS_getresgid',372)
SYS_getresuid = Constant('SYS_getresuid',344)
SYS_getrlimit = Constant('SYS_getrlimit',144)
@@ -1084,15 +1372,21 @@ SYS_getxuid = Constant('SYS_getxuid',24)
SYS_init_module = Constant('SYS_init_module',307)
SYS_inotify_add_watch = Constant('SYS_inotify_add_watch',445)
SYS_inotify_init = Constant('SYS_inotify_init',444)
SYS_inotify_init1 = Constant('SYS_inotify_init1',489)
SYS_inotify_rm_watch = Constant('SYS_inotify_rm_watch',446)
SYS_io_cancel = Constant('SYS_io_cancel',402)
SYS_ioctl = Constant('SYS_ioctl',54)
SYS_io_destroy = Constant('SYS_io_destroy',399)
SYS_io_getevents = Constant('SYS_io_getevents',400)
SYS_io_pgetevents = Constant('SYS_io_pgetevents',523)
SYS_ioprio_get = Constant('SYS_ioprio_get',443)
SYS_ioprio_set = Constant('SYS_ioprio_set',442)
SYS_io_setup = Constant('SYS_io_setup',398)
SYS_io_submit = Constant('SYS_io_submit',401)
SYS_io_uring_enter = Constant('SYS_io_uring_enter',536)
SYS_io_uring_register = Constant('SYS_io_uring_register',537)
SYS_io_uring_setup = Constant('SYS_io_uring_setup',535)
SYS_kcmp = Constant('SYS_kcmp',506)
SYS_kexec_load = Constant('SYS_kexec_load',448)
SYS_keyctl = Constant('SYS_keyctl',441)
SYS_kill = Constant('SYS_kill',37)
@@ -1111,6 +1405,8 @@ SYS_lstat = Constant('SYS_lstat',68)
SYS_lstat64 = Constant('SYS_lstat64',426)
SYS_madvise = Constant('SYS_madvise',75)
SYS_mbind = Constant('SYS_mbind',429)
SYS_membarrier = Constant('SYS_membarrier',517)
SYS_memfd_create = Constant('SYS_memfd_create',512)
SYS_migrate_pages = Constant('SYS_migrate_pages',449)
SYS_mincore = Constant('SYS_mincore',375)
SYS_mkdir = Constant('SYS_mkdir',136)
@@ -1118,9 +1414,11 @@ SYS_mkdirat = Constant('SYS_mkdirat',451)
SYS_mknod = Constant('SYS_mknod',14)
SYS_mknodat = Constant('SYS_mknodat',452)
SYS_mlock = Constant('SYS_mlock',314)
SYS_mlock2 = Constant('SYS_mlock2',518)
SYS_mlockall = Constant('SYS_mlockall',316)
SYS_mmap = Constant('SYS_mmap',71)
SYS_mount = Constant('SYS_mount',302)
SYS_move_mount = Constant('SYS_move_mount',539)
SYS_move_pages = Constant('SYS_move_pages',472)
SYS_mprotect = Constant('SYS_mprotect',74)
SYS_mq_getsetattr = Constant('SYS_mq_getsetattr',437)
@@ -1138,12 +1436,16 @@ SYS_msync = Constant('SYS_msync',217)
SYS_munlock = Constant('SYS_munlock',315)
SYS_munlockall = Constant('SYS_munlockall',317)
SYS_munmap = Constant('SYS_munmap',73)
SYS_name_to_handle_at = Constant('SYS_name_to_handle_at',497)
SYS_nanosleep = Constant('SYS_nanosleep',340)
SYS_nfsservctl = Constant('SYS_nfsservctl',342)
SYS_old_adjtimex = Constant('SYS_old_adjtimex',303)
SYS_oldumount = Constant('SYS_oldumount',321)
SYS_open = Constant('SYS_open',45)
SYS_openat = Constant('SYS_openat',450)
SYS_openat2 = Constant('SYS_openat2',547)
SYS_open_by_handle_at = Constant('SYS_open_by_handle_at',498)
SYS_open_tree = Constant('SYS_open_tree',538)
SYS_osf_adjtime = Constant('SYS_osf_adjtime',140)
SYS_osf_afs_syscall = Constant('SYS_osf_afs_syscall',258)
SYS_osf_alt_plock = Constant('SYS_osf_alt_plock',181)
@@ -1252,16 +1554,31 @@ SYS_osf_waitid = Constant('SYS_osf_waitid',236)
SYS_pciconfig_iobase = Constant('SYS_pciconfig_iobase',376)
SYS_pciconfig_read = Constant('SYS_pciconfig_read',345)
SYS_pciconfig_write = Constant('SYS_pciconfig_write',346)
SYS_perf_event_open = Constant('SYS_perf_event_open',493)
SYS_personality = Constant('SYS_personality',324)
SYS_pidfd_getfd = Constant('SYS_pidfd_getfd',548)
SYS_pidfd_open = Constant('SYS_pidfd_open',544)
SYS_pidfd_send_signal = Constant('SYS_pidfd_send_signal',534)
SYS_pipe = Constant('SYS_pipe',42)
SYS_pipe2 = Constant('SYS_pipe2',488)
SYS_pivot_root = Constant('SYS_pivot_root',374)
SYS_pkey_alloc = Constant('SYS_pkey_alloc',525)
SYS_pkey_free = Constant('SYS_pkey_free',526)
SYS_pkey_mprotect = Constant('SYS_pkey_mprotect',524)
SYS_poll = Constant('SYS_poll',94)
SYS_ppoll = Constant('SYS_ppoll',464)
SYS_prctl = Constant('SYS_prctl',348)
SYS_pread = Constant('SYS_pread',349)
SYS_preadv = Constant('SYS_preadv',490)
SYS_preadv2 = Constant('SYS_preadv2',520)
SYS_prlimit64 = Constant('SYS_prlimit64',496)
SYS_process_vm_readv = Constant('SYS_process_vm_readv',504)
SYS_process_vm_writev = Constant('SYS_process_vm_writev',505)
SYS_pselect6 = Constant('SYS_pselect6',463)
SYS_ptrace = Constant('SYS_ptrace',26)
SYS_pwrite = Constant('SYS_pwrite',350)
SYS_pwritev = Constant('SYS_pwritev',491)
SYS_pwritev2 = Constant('SYS_pwritev2',521)
SYS_query_module = Constant('SYS_query_module',347)
SYS_quotactl = Constant('SYS_quotactl',148)
SYS_read = Constant('SYS_read',3)
@@ -1272,14 +1589,17 @@ SYS_readv = Constant('SYS_readv',120)
SYS_reboot = Constant('SYS_reboot',311)
SYS_recv = Constant('SYS_recv',102)
SYS_recvfrom = Constant('SYS_recvfrom',125)
SYS_recvmmsg = Constant('SYS_recvmmsg',479)
SYS_recvmsg = Constant('SYS_recvmsg',113)
SYS_remap_file_pages = Constant('SYS_remap_file_pages',410)
SYS_removexattr = Constant('SYS_removexattr',391)
SYS_rename = Constant('SYS_rename',128)
SYS_renameat = Constant('SYS_renameat',457)
SYS_renameat2 = Constant('SYS_renameat2',510)
SYS_request_key = Constant('SYS_request_key',440)
SYS_restart_syscall = Constant('SYS_restart_syscall',412)
SYS_rmdir = Constant('SYS_rmdir',137)
SYS_rseq = Constant('SYS_rseq',527)
SYS_rt_sigaction = Constant('SYS_rt_sigaction',352)
SYS_rt_sigpending = Constant('SYS_rt_sigpending',354)
SYS_rt_sigprocmask = Constant('SYS_rt_sigprocmask',353)
@@ -1287,16 +1607,20 @@ SYS_rt_sigqueueinfo = Constant('SYS_rt_sigqueueinfo',356)
SYS_rt_sigreturn = Constant('SYS_rt_sigreturn',351)
SYS_rt_sigsuspend = Constant('SYS_rt_sigsuspend',357)
SYS_rt_sigtimedwait = Constant('SYS_rt_sigtimedwait',355)
SYS_rt_tgsigqueueinfo = Constant('SYS_rt_tgsigqueueinfo',492)
SYS_sched_getaffinity = Constant('SYS_sched_getaffinity',396)
SYS_sched_getattr = Constant('SYS_sched_getattr',509)
SYS_sched_getparam = Constant('SYS_sched_getparam',331)
SYS_sched_get_priority_max = Constant('SYS_sched_get_priority_max',335)
SYS_sched_get_priority_min = Constant('SYS_sched_get_priority_min',336)
SYS_sched_getscheduler = Constant('SYS_sched_getscheduler',333)
SYS_sched_rr_get_interval = Constant('SYS_sched_rr_get_interval',337)
SYS_sched_setaffinity = Constant('SYS_sched_setaffinity',395)
SYS_sched_setattr = Constant('SYS_sched_setattr',508)
SYS_sched_setparam = Constant('SYS_sched_setparam',330)
SYS_sched_setscheduler = Constant('SYS_sched_setscheduler',332)
SYS_sched_yield = Constant('SYS_sched_yield',334)
SYS_seccomp = Constant('SYS_seccomp',514)
SYS_select = Constant('SYS_select',358)
SYS_semctl = Constant('SYS_semctl',204)
SYS_semget = Constant('SYS_semget',205)
@@ -1304,6 +1628,7 @@ SYS_semop = Constant('SYS_semop',206)
SYS_semtimedop = Constant('SYS_semtimedop',423)
SYS_send = Constant('SYS_send',101)
SYS_sendfile = Constant('SYS_sendfile',370)
SYS_sendmmsg = Constant('SYS_sendmmsg',503)
SYS_sendmsg = Constant('SYS_sendmsg',114)
SYS_sendto = Constant('SYS_sendto',133)
SYS_setdomainname = Constant('SYS_setdomainname',166)
@@ -1315,6 +1640,7 @@ SYS_sethae = Constant('SYS_sethae',301)
SYS_sethostname = Constant('SYS_sethostname',88)
SYS_setitimer = Constant('SYS_setitimer',362)
SYS_set_mempolicy = Constant('SYS_set_mempolicy',431)
SYS_setns = Constant('SYS_setns',501)
SYS_setpgid = Constant('SYS_setpgid',39)
SYS_setpgrp = Constant('SYS_setpgrp',82)
SYS_setpriority = Constant('SYS_setpriority',96)
@@ -1337,6 +1663,7 @@ SYS_shutdown = Constant('SYS_shutdown',134)
SYS_sigaction = Constant('SYS_sigaction',156)
SYS_sigaltstack = Constant('SYS_sigaltstack',235)
SYS_signalfd = Constant('SYS_signalfd',476)
SYS_signalfd4 = Constant('SYS_signalfd4',484)
SYS_sigpending = Constant('SYS_sigpending',52)
SYS_sigreturn = Constant('SYS_sigreturn',103)
SYS_sigsuspend = Constant('SYS_sigsuspend',111)
@@ -1346,12 +1673,15 @@ SYS_splice = Constant('SYS_splice',468)
SYS_stat = Constant('SYS_stat',67)
SYS_stat64 = Constant('SYS_stat64',425)
SYS_statfs = Constant('SYS_statfs',328)
SYS_statfs64 = Constant('SYS_statfs64',528)
SYS_statx = Constant('SYS_statx',522)
SYS_swapoff = Constant('SYS_swapoff',304)
SYS_swapon = Constant('SYS_swapon',322)
SYS_symlink = Constant('SYS_symlink',57)
SYS_symlinkat = Constant('SYS_symlinkat',459)
SYS_sync = Constant('SYS_sync',36)
SYS_sync_file_range = Constant('SYS_sync_file_range',469)
SYS_syncfs = Constant('SYS_syncfs',500)
SYS__sysctl = Constant('SYS__sysctl',319)
SYS_sys_epoll_create = Constant('SYS_sys_epoll_create',407)
SYS_sys_epoll_ctl = Constant('SYS_sys_epoll_ctl',408)
@@ -1364,6 +1694,9 @@ SYS_tgkill = Constant('SYS_tgkill',424)
SYS_timer_create = Constant('SYS_timer_create',414)
SYS_timer_delete = Constant('SYS_timer_delete',418)
SYS_timerfd = Constant('SYS_timerfd',477)
SYS_timerfd_create = Constant('SYS_timerfd_create',481)
SYS_timerfd_gettime = Constant('SYS_timerfd_gettime',483)
SYS_timerfd_settime = Constant('SYS_timerfd_settime',482)
SYS_timer_getoverrun = Constant('SYS_timer_getoverrun',417)
SYS_timer_gettime = Constant('SYS_timer_gettime',416)
SYS_timer_settime = Constant('SYS_timer_settime',415)
@@ -1373,11 +1706,14 @@ SYS_truncate = Constant('SYS_truncate',129)
SYS_tuxcall = Constant('SYS_tuxcall',397)
SYS_umask = Constant('SYS_umask',60)
SYS_umount = Constant('SYS_umount',22)
SYS_umount_with_flags = Constant('SYS_umount_with_flags',22)
SYS_umount_without_flags = Constant('SYS_umount_without_flags',321)
SYS_uname = Constant('SYS_uname',339)
SYS_unlink = Constant('SYS_unlink',10)
SYS_unlinkat = Constant('SYS_unlinkat',456)
SYS_unshare = Constant('SYS_unshare',465)
SYS_uselib = Constant('SYS_uselib',313)
SYS_userfaultfd = Constant('SYS_userfaultfd',516)
SYS_ustat = Constant('SYS_ustat',327)
SYS_utimensat = Constant('SYS_utimensat',475)
SYS_utimes = Constant('SYS_utimes',363)
+379 -88
View File
@@ -1,5 +1,4 @@
from pwnlib.constants.constant import Constant
__NR_read = Constant('__NR_read',0)
__NR_write = Constant('__NR_write',1)
__NR_open = Constant('__NR_open',2)
@@ -304,6 +303,52 @@ __NR_recvmmsg = Constant('__NR_recvmmsg',299)
__NR_fanotify_init = Constant('__NR_fanotify_init',300)
__NR_fanotify_mark = Constant('__NR_fanotify_mark',301)
__NR_prlimit64 = Constant('__NR_prlimit64',302)
__NR_name_to_handle_at = Constant('__NR_name_to_handle_at',303)
__NR_open_by_handle_at = Constant('__NR_open_by_handle_at',304)
__NR_clock_adjtime = Constant('__NR_clock_adjtime',305)
__NR_syncfs = Constant('__NR_syncfs',306)
__NR_sendmmsg = Constant('__NR_sendmmsg',307)
__NR_setns = Constant('__NR_setns',308)
__NR_getcpu = Constant('__NR_getcpu',309)
__NR_process_vm_readv = Constant('__NR_process_vm_readv',310)
__NR_process_vm_writev = Constant('__NR_process_vm_writev',311)
__NR_kcmp = Constant('__NR_kcmp',312)
__NR_finit_module = Constant('__NR_finit_module',313)
__NR_sched_setattr = Constant('__NR_sched_setattr',314)
__NR_sched_getattr = Constant('__NR_sched_getattr',315)
__NR_renameat2 = Constant('__NR_renameat2',316)
__NR_seccomp = Constant('__NR_seccomp',317)
__NR_getrandom = Constant('__NR_getrandom',318)
__NR_memfd_create = Constant('__NR_memfd_create',319)
__NR_kexec_file_load = Constant('__NR_kexec_file_load',320)
__NR_bpf = Constant('__NR_bpf',321)
__NR_execveat = Constant('__NR_execveat',322)
__NR_userfaultfd = Constant('__NR_userfaultfd',323)
__NR_membarrier = Constant('__NR_membarrier',324)
__NR_mlock2 = Constant('__NR_mlock2',325)
__NR_copy_file_range = Constant('__NR_copy_file_range',326)
__NR_preadv2 = Constant('__NR_preadv2',327)
__NR_pwritev2 = Constant('__NR_pwritev2',328)
__NR_pkey_mprotect = Constant('__NR_pkey_mprotect',329)
__NR_pkey_alloc = Constant('__NR_pkey_alloc',330)
__NR_pkey_free = Constant('__NR_pkey_free',331)
__NR_statx = Constant('__NR_statx',332)
__NR_io_pgetevents = Constant('__NR_io_pgetevents',333)
__NR_rseq = Constant('__NR_rseq',334)
__NR_pidfd_send_signal = Constant('__NR_pidfd_send_signal',424)
__NR_io_uring_setup = Constant('__NR_io_uring_setup',425)
__NR_io_uring_enter = Constant('__NR_io_uring_enter',426)
__NR_io_uring_register = Constant('__NR_io_uring_register',427)
__NR_open_tree = Constant('__NR_open_tree',428)
__NR_move_mount = Constant('__NR_move_mount',429)
__NR_fsopen = Constant('__NR_fsopen',430)
__NR_fsconfig = Constant('__NR_fsconfig',431)
__NR_fsmount = Constant('__NR_fsmount',432)
__NR_fspick = Constant('__NR_fspick',433)
__NR_pidfd_open = Constant('__NR_pidfd_open',434)
__NR_clone3 = Constant('__NR_clone3',435)
__NR_openat2 = Constant('__NR_openat2',437)
__NR_pidfd_getfd = Constant('__NR_pidfd_getfd',438)
SYS32_restart_syscall = Constant('SYS32_restart_syscall',0)
SYS32_exit = Constant('SYS32_exit',1)
SYS32_fork = Constant('SYS32_fork',2)
@@ -785,7 +830,11 @@ ENOKEY = Constant('ENOKEY',126)
EKEYEXPIRED = Constant('EKEYEXPIRED',127)
EKEYREVOKED = Constant('EKEYREVOKED',128)
EKEYREJECTED = Constant('EKEYREJECTED',129)
__SYS_NERR = Constant('__SYS_NERR',((129) + 1))
EOWNERDEAD = Constant('EOWNERDEAD',130)
ENOTRECOVERABLE = Constant('ENOTRECOVERABLE',131)
ERFKILL = Constant('ERFKILL',132)
EHWPOISON = Constant('EHWPOISON',133)
__SYS_NERR = Constant('__SYS_NERR',((133) + 1))
__LITTLE_ENDIAN = Constant('__LITTLE_ENDIAN',1234)
__BIG_ENDIAN = Constant('__BIG_ENDIAN',4321)
__BYTE_ORDER = Constant('__BYTE_ORDER',1234)
@@ -795,9 +844,56 @@ BIG_ENDIAN = Constant('BIG_ENDIAN',4321)
BYTE_ORDER = Constant('BYTE_ORDER',1234)
__WORDSIZE = Constant('__WORDSIZE',64)
__WORDSIZE_COMPAT32 = Constant('__WORDSIZE_COMPAT32',1)
__UNALIGNED_MEMORY_ACCESS_OK = Constant('__UNALIGNED_MEMORY_ACCESS_OK',1)
INT8_MAX = Constant('INT8_MAX',(127))
INT16_MAX = Constant('INT16_MAX',(32767))
INT32_MAX = Constant('INT32_MAX',(2147483647))
INT64_MAX = Constant('INT64_MAX',(9223372036854775807))
INT8_MIN = Constant('INT8_MIN',(-1 - (127)))
INT16_MIN = Constant('INT16_MIN',(-1 - (32767)))
INT32_MIN = Constant('INT32_MIN',(-1 - (2147483647)))
INT64_MIN = Constant('INT64_MIN',(-1 - (9223372036854775807)))
INT_LEAST8_MAX = Constant('INT_LEAST8_MAX',(127))
INT_LEAST8_MIN = Constant('INT_LEAST8_MIN',(-1 - (127)))
INT_LEAST16_MAX = Constant('INT_LEAST16_MAX',(32767))
INT_LEAST16_MIN = Constant('INT_LEAST16_MIN',(-1 - (32767)))
INT_LEAST32_MAX = Constant('INT_LEAST32_MAX',(2147483647))
INT_LEAST32_MIN = Constant('INT_LEAST32_MIN',(-1 - (2147483647)))
INT_LEAST64_MAX = Constant('INT_LEAST64_MAX',(9223372036854775807))
INT_LEAST64_MIN = Constant('INT_LEAST64_MIN',(-1 - (9223372036854775807)))
UINT8_MAX = Constant('UINT8_MAX',0xff)
UINT16_MAX = Constant('UINT16_MAX',0xffff)
UINT32_MAX = Constant('UINT32_MAX',0xffffffff)
UINT64_MAX = Constant('UINT64_MAX',0xffffffffffffffff)
UINT_LEAST8_MAX = Constant('UINT_LEAST8_MAX',0xff)
UINT_LEAST16_MAX = Constant('UINT_LEAST16_MAX',0xffff)
UINT_LEAST32_MAX = Constant('UINT_LEAST32_MAX',0xffffffff)
UINT_LEAST64_MAX = Constant('UINT_LEAST64_MAX',0xffffffffffffffff)
INTPTR_MIN = Constant('INTPTR_MIN',(-1 - (9223372036854775807)))
INTPTR_MAX = Constant('INTPTR_MAX',(9223372036854775807))
UINTPTR_MAX = Constant('UINTPTR_MAX',0xffffffffffffffff)
SIZE_MAX = Constant('SIZE_MAX',0xffffffffffffffff)
PTRDIFF_MIN = Constant('PTRDIFF_MIN',(-1 - (9223372036854775807)))
PTRDIFF_MAX = Constant('PTRDIFF_MAX',(9223372036854775807))
INTMAX_MIN = Constant('INTMAX_MIN',(-1 - (9223372036854775807)))
INTMAX_MAX = Constant('INTMAX_MAX',(9223372036854775807))
UINTMAX_MAX = Constant('UINTMAX_MAX',0xffffffffffffffff)
INT_FAST8_MIN = Constant('INT_FAST8_MIN',(-1 - (127)))
INT_FAST8_MAX = Constant('INT_FAST8_MAX',(127))
INT_FAST64_MIN = Constant('INT_FAST64_MIN',(-1 - (9223372036854775807)))
INT_FAST64_MAX = Constant('INT_FAST64_MAX',(9223372036854775807))
UINT_FAST8_MAX = Constant('UINT_FAST8_MAX',0xff)
UINT_FAST64_MAX = Constant('UINT_FAST64_MAX',0xffffffffffffffff)
INT_FAST16_MIN = Constant('INT_FAST16_MIN',(-1 - (9223372036854775807)))
INT_FAST16_MAX = Constant('INT_FAST16_MAX',(9223372036854775807))
UINT_FAST16_MAX = Constant('UINT_FAST16_MAX',0xffffffffffffffff)
INT_FAST32_MIN = Constant('INT_FAST32_MIN',(-1 - (9223372036854775807)))
INT_FAST32_MAX = Constant('INT_FAST32_MAX',(9223372036854775807))
UINT_FAST32_MAX = Constant('UINT_FAST32_MAX',0xffffffffffffffff)
WINT_MIN = Constant('WINT_MIN',0)
__FSUID_H = Constant('__FSUID_H',1)
NSIG = Constant('NSIG',32)
_NSIG = Constant('_NSIG',64)
_NSIG = Constant('_NSIG',65)
SIGHUP = Constant('SIGHUP',1)
SIGINT = Constant('SIGINT',2)
SIGQUIT = Constant('SIGQUIT',3)
@@ -835,7 +931,7 @@ SIGCLD = Constant('SIGCLD',17)
SIGPOLL = Constant('SIGPOLL',29)
SIGLOST = Constant('SIGLOST',30)
SIGRTMIN = Constant('SIGRTMIN',32)
SIGRTMAX = Constant('SIGRTMAX',(64-1))
SIGRTMAX = Constant('SIGRTMAX',(65-1))
SA_NOCLDSTOP = Constant('SA_NOCLDSTOP',0x00000001)
SA_NOCLDWAIT = Constant('SA_NOCLDWAIT',0x00000002)
SA_SIGINFO = Constant('SA_SIGINFO',0x00000004)
@@ -884,6 +980,8 @@ _SC_PAGESIZE = Constant('_SC_PAGESIZE',5)
_SC_NPROCESSORS_ONLN = Constant('_SC_NPROCESSORS_ONLN',6)
_SC_NPROCESSORS_CONF = Constant('_SC_NPROCESSORS_CONF',6)
_SC_PHYS_PAGES = Constant('_SC_PHYS_PAGES',7)
_SC_GETPW_R_SIZE_MAX = Constant('_SC_GETPW_R_SIZE_MAX',8)
_SC_GETGR_R_SIZE_MAX = Constant('_SC_GETGR_R_SIZE_MAX',9)
_PC_PATH_MAX = Constant('_PC_PATH_MAX',1)
_PC_VDISABLE = Constant('_PC_VDISABLE',2)
L_cuserid = Constant('L_cuserid',17)
@@ -892,6 +990,7 @@ F_ULOCK = Constant('F_ULOCK',0)
F_LOCK = Constant('F_LOCK',1)
F_TLOCK = Constant('F_TLOCK',2)
F_TEST = Constant('F_TEST',3)
_POSIX_MAPPED_FILES = Constant('_POSIX_MAPPED_FILES',200809)
S_IFMT = Constant('S_IFMT',0o0170000)
S_IFSOCK = Constant('S_IFSOCK',0o140000)
S_IFLNK = Constant('S_IFLNK',0o120000)
@@ -918,84 +1017,7 @@ S_IXOTH = Constant('S_IXOTH',0o0001)
S_IREAD = Constant('S_IREAD',0o0400)
S_IWRITE = Constant('S_IWRITE',0o0200)
S_IEXEC = Constant('S_IEXEC',0o0100)
F_LINUX_SPECIFIC_BASE = Constant('F_LINUX_SPECIFIC_BASE',1024)
O_ACCMODE = Constant('O_ACCMODE',0o003)
O_RDONLY = Constant('O_RDONLY',0o0)
O_WRONLY = Constant('O_WRONLY',0o1)
O_RDWR = Constant('O_RDWR',0o2)
O_CREAT = Constant('O_CREAT',0o100)
O_EXCL = Constant('O_EXCL',0o200)
O_NOCTTY = Constant('O_NOCTTY',0o400)
O_TRUNC = Constant('O_TRUNC',0o1000)
O_APPEND = Constant('O_APPEND',0o2000)
O_NONBLOCK = Constant('O_NONBLOCK',0o4000)
O_NDELAY = Constant('O_NDELAY',0o4000)
O_SYNC = Constant('O_SYNC',0o10000)
FASYNC = Constant('FASYNC',0o20000)
O_DIRECT = Constant('O_DIRECT',0o40000)
O_LARGEFILE = Constant('O_LARGEFILE',0o100000)
O_DIRECTORY = Constant('O_DIRECTORY',0o200000)
O_NOFOLLOW = Constant('O_NOFOLLOW',0o400000)
O_NOATIME = Constant('O_NOATIME',0o1000000)
F_DUPFD = Constant('F_DUPFD',0)
F_GETFD = Constant('F_GETFD',1)
F_SETFD = Constant('F_SETFD',2)
F_GETFL = Constant('F_GETFL',3)
F_SETFL = Constant('F_SETFL',4)
F_GETLK = Constant('F_GETLK',5)
F_SETLK = Constant('F_SETLK',6)
F_SETLKW = Constant('F_SETLKW',7)
F_SETOWN = Constant('F_SETOWN',8)
F_GETOWN = Constant('F_GETOWN',9)
F_SETSIG = Constant('F_SETSIG',10)
F_GETSIG = Constant('F_GETSIG',11)
F_GETLK64 = Constant('F_GETLK64',12)
F_SETLK64 = Constant('F_SETLK64',13)
F_SETLKW64 = Constant('F_SETLKW64',14)
FD_CLOEXEC = Constant('FD_CLOEXEC',1)
F_RDLCK = Constant('F_RDLCK',0)
F_WRLCK = Constant('F_WRLCK',1)
F_UNLCK = Constant('F_UNLCK',2)
F_EXLCK = Constant('F_EXLCK',4)
F_SHLCK = Constant('F_SHLCK',8)
F_INPROGRESS = Constant('F_INPROGRESS',16)
LOCK_SH = Constant('LOCK_SH',1)
LOCK_EX = Constant('LOCK_EX',2)
LOCK_NB = Constant('LOCK_NB',4)
LOCK_UN = Constant('LOCK_UN',8)
LOCK_MAND = Constant('LOCK_MAND',32)
LOCK_READ = Constant('LOCK_READ',64)
LOCK_WRITE = Constant('LOCK_WRITE',128)
LOCK_RW = Constant('LOCK_RW',192)
O_ASYNC = Constant('O_ASYNC',0o20000)
MREMAP_MAYMOVE = Constant('MREMAP_MAYMOVE',1)
MREMAP_FIXED = Constant('MREMAP_FIXED',2)
PROT_READ = Constant('PROT_READ',0x1)
PROT_WRITE = Constant('PROT_WRITE',0x2)
PROT_EXEC = Constant('PROT_EXEC',0x4)
PROT_NONE = Constant('PROT_NONE',0x0)
MAP_SHARED = Constant('MAP_SHARED',0x01)
MAP_PRIVATE = Constant('MAP_PRIVATE',0x02)
MAP_FIXED = Constant('MAP_FIXED',0x10)
MAP_ANONYMOUS = Constant('MAP_ANONYMOUS',0x20)
MAP_GROWSDOWN = Constant('MAP_GROWSDOWN',0x0100)
MAP_DENYWRITE = Constant('MAP_DENYWRITE',0x0800)
MAP_EXECUTABLE = Constant('MAP_EXECUTABLE',0x1000)
MAP_LOCKED = Constant('MAP_LOCKED',0x2000)
MAP_NORESERVE = Constant('MAP_NORESERVE',0x4000)
MAP_POPULATE = Constant('MAP_POPULATE',0x8000)
MS_ASYNC = Constant('MS_ASYNC',1)
MS_INVALIDATE = Constant('MS_INVALIDATE',2)
MS_SYNC = Constant('MS_SYNC',4)
MCL_CURRENT = Constant('MCL_CURRENT',1)
MCL_FUTURE = Constant('MCL_FUTURE',2)
MADV_NORMAL = Constant('MADV_NORMAL',0x0)
MADV_RANDOM = Constant('MADV_RANDOM',0x1)
MADV_SEQUENTIAL = Constant('MADV_SEQUENTIAL',0x2)
MADV_WILLNEED = Constant('MADV_WILLNEED',0x3)
MADV_DONTNEED = Constant('MADV_DONTNEED',0x4)
MAP_ANON = Constant('MAP_ANON',0x20)
MAP_FILE = Constant('MAP_FILE',0)
_SYS_UIO = Constant('_SYS_UIO',1)
SOL_SOCKET = Constant('SOL_SOCKET',1)
SO_DEBUG = Constant('SO_DEBUG',1)
SO_REUSEADDR = Constant('SO_REUSEADDR',2)
@@ -1011,29 +1033,64 @@ SO_NO_CHECK = Constant('SO_NO_CHECK',11)
SO_PRIORITY = Constant('SO_PRIORITY',12)
SO_LINGER = Constant('SO_LINGER',13)
SO_BSDCOMPAT = Constant('SO_BSDCOMPAT',14)
SO_REUSEPORT = Constant('SO_REUSEPORT',15)
SO_PASSCRED = Constant('SO_PASSCRED',16)
SO_PEERCRED = Constant('SO_PEERCRED',17)
SO_RCVLOWAT = Constant('SO_RCVLOWAT',18)
SO_SNDLOWAT = Constant('SO_SNDLOWAT',19)
SO_RCVTIMEO = Constant('SO_RCVTIMEO',20)
SO_SNDTIMEO = Constant('SO_SNDTIMEO',21)
SO_ACCEPTCONN = Constant('SO_ACCEPTCONN',30)
SO_SNDBUFFORCE = Constant('SO_SNDBUFFORCE',32)
SO_RCVBUFFORCE = Constant('SO_RCVBUFFORCE',33)
SO_SECURITY_AUTHENTICATION = Constant('SO_SECURITY_AUTHENTICATION',22)
SO_SECURITY_ENCRYPTION_TRANSPORT = Constant('SO_SECURITY_ENCRYPTION_TRANSPORT',23)
SO_SECURITY_ENCRYPTION_NETWORK = Constant('SO_SECURITY_ENCRYPTION_NETWORK',24)
SO_BINDTODEVICE = Constant('SO_BINDTODEVICE',25)
SO_ATTACH_FILTER = Constant('SO_ATTACH_FILTER',26)
SO_DETACH_FILTER = Constant('SO_DETACH_FILTER',27)
SO_GET_FILTER = Constant('SO_GET_FILTER',26)
SO_PEERNAME = Constant('SO_PEERNAME',28)
SO_TIMESTAMP = Constant('SO_TIMESTAMP',29)
SCM_TIMESTAMP = Constant('SCM_TIMESTAMP',29)
SO_ACCEPTCONN = Constant('SO_ACCEPTCONN',30)
SO_PEERSEC = Constant('SO_PEERSEC',31)
SO_SNDBUFFORCE = Constant('SO_SNDBUFFORCE',32)
SO_RCVBUFFORCE = Constant('SO_RCVBUFFORCE',33)
SO_PASSSEC = Constant('SO_PASSSEC',34)
SO_TIMESTAMPNS = Constant('SO_TIMESTAMPNS',35)
SCM_TIMESTAMPNS = Constant('SCM_TIMESTAMPNS',35)
SO_MARK = Constant('SO_MARK',36)
SO_TIMESTAMPING = Constant('SO_TIMESTAMPING',37)
SCM_TIMESTAMPING = Constant('SCM_TIMESTAMPING',37)
SO_PROTOCOL = Constant('SO_PROTOCOL',38)
SO_DOMAIN = Constant('SO_DOMAIN',39)
SO_RXQ_OVFL = Constant('SO_RXQ_OVFL',40)
SO_WIFI_STATUS = Constant('SO_WIFI_STATUS',41)
SCM_WIFI_STATUS = Constant('SCM_WIFI_STATUS',41)
SO_PEEK_OFF = Constant('SO_PEEK_OFF',42)
SO_NOFCS = Constant('SO_NOFCS',43)
SO_LOCK_FILTER = Constant('SO_LOCK_FILTER',44)
SO_SELECT_ERR_QUEUE = Constant('SO_SELECT_ERR_QUEUE',45)
SO_BUSY_POLL = Constant('SO_BUSY_POLL',46)
SO_MAX_PACING_RATE = Constant('SO_MAX_PACING_RATE',47)
SO_BPF_EXTENSIONS = Constant('SO_BPF_EXTENSIONS',48)
SO_INCOMING_CPU = Constant('SO_INCOMING_CPU',49)
SO_ATTACH_BPF = Constant('SO_ATTACH_BPF',50)
SO_DETACH_BPF = Constant('SO_DETACH_BPF',27)
SO_ATTACH_REUSEPORT_CBPF = Constant('SO_ATTACH_REUSEPORT_CBPF',51)
SO_ATTACH_REUSEPORT_EBPF = Constant('SO_ATTACH_REUSEPORT_EBPF',52)
SO_CNX_ADVICE = Constant('SO_CNX_ADVICE',53)
SCM_TIMESTAMPING_OPT_STATS = Constant('SCM_TIMESTAMPING_OPT_STATS',54)
SO_MEMINFO = Constant('SO_MEMINFO',55)
SO_INCOMING_NAPI_ID = Constant('SO_INCOMING_NAPI_ID',56)
SO_COOKIE = Constant('SO_COOKIE',57)
SCM_TIMESTAMPING_PKTINFO = Constant('SCM_TIMESTAMPING_PKTINFO',58)
SO_PEERGROUPS = Constant('SO_PEERGROUPS',59)
SO_ZEROCOPY = Constant('SO_ZEROCOPY',60)
SOCK_STREAM = Constant('SOCK_STREAM',1)
SOCK_DGRAM = Constant('SOCK_DGRAM',2)
SOCK_RAW = Constant('SOCK_RAW',3)
SOCK_RDM = Constant('SOCK_RDM',4)
SOCK_SEQPACKET = Constant('SOCK_SEQPACKET',5)
SOCK_DCCP = Constant('SOCK_DCCP',6)
SOCK_PACKET = Constant('SOCK_PACKET',10)
UIO_FASTIOV = Constant('UIO_FASTIOV',8)
UIO_MAXIOV = Constant('UIO_MAXIOV',1024)
@@ -1067,7 +1124,25 @@ AF_SNA = Constant('AF_SNA',22)
AF_IRDA = Constant('AF_IRDA',23)
AF_PPPOX = Constant('AF_PPPOX',24)
AF_WANPIPE = Constant('AF_WANPIPE',25)
AF_MAX = Constant('AF_MAX',32)
AF_LLC = Constant('AF_LLC',26)
AF_IB = Constant('AF_IB',27)
AF_MPLS = Constant('AF_MPLS',28)
AF_CAN = Constant('AF_CAN',29)
AF_TIPC = Constant('AF_TIPC',30)
AF_BLUETOOTH = Constant('AF_BLUETOOTH',31)
AF_IUCV = Constant('AF_IUCV',32)
AF_RXRPC = Constant('AF_RXRPC',33)
AF_ISDN = Constant('AF_ISDN',34)
AF_PHONET = Constant('AF_PHONET',35)
AF_IEEE802154 = Constant('AF_IEEE802154',36)
AF_CAIF = Constant('AF_CAIF',37)
AF_ALG = Constant('AF_ALG',38)
AF_NFC = Constant('AF_NFC',39)
AF_VSOCK = Constant('AF_VSOCK',40)
AF_KCM = Constant('AF_KCM',41)
AF_QIPCRTR = Constant('AF_QIPCRTR',42)
AF_SMC = Constant('AF_SMC',43)
AF_MAX = Constant('AF_MAX',44)
PF_UNSPEC = Constant('PF_UNSPEC',0)
PF_UNIX = Constant('PF_UNIX',1)
PF_LOCAL = Constant('PF_LOCAL',1)
@@ -1095,7 +1170,25 @@ PF_SNA = Constant('PF_SNA',22)
PF_IRDA = Constant('PF_IRDA',23)
PF_PPPOX = Constant('PF_PPPOX',24)
PF_WANPIPE = Constant('PF_WANPIPE',25)
PF_MAX = Constant('PF_MAX',32)
PF_LLC = Constant('PF_LLC',26)
PF_IB = Constant('PF_IB',27)
PF_MPLS = Constant('PF_MPLS',28)
PF_CAN = Constant('PF_CAN',29)
PF_TIPC = Constant('PF_TIPC',30)
PF_BLUETOOTH = Constant('PF_BLUETOOTH',31)
PF_IUCV = Constant('PF_IUCV',32)
PF_RXRPC = Constant('PF_RXRPC',33)
PF_ISDN = Constant('PF_ISDN',34)
PF_PHONET = Constant('PF_PHONET',35)
PF_IEEE802154 = Constant('PF_IEEE802154',36)
PF_CAIF = Constant('PF_CAIF',37)
PF_ALG = Constant('PF_ALG',38)
PF_NFC = Constant('PF_NFC',39)
PF_VSOCK = Constant('PF_VSOCK',40)
PF_KCM = Constant('PF_KCM',41)
PF_QIPCRTR = Constant('PF_QIPCRTR',42)
PF_SMC = Constant('PF_SMC',43)
PF_MAX = Constant('PF_MAX',44)
SOMAXCONN = Constant('SOMAXCONN',128)
MSG_OOB = Constant('MSG_OOB',1)
MSG_PEEK = Constant('MSG_PEEK',2)
@@ -1108,18 +1201,26 @@ MSG_DONTWAIT = Constant('MSG_DONTWAIT',0x40)
MSG_EOR = Constant('MSG_EOR',0x80)
MSG_WAITALL = Constant('MSG_WAITALL',0x100)
MSG_FIN = Constant('MSG_FIN',0x200)
MSG_EOF = Constant('MSG_EOF',0x200)
MSG_SYN = Constant('MSG_SYN',0x400)
MSG_CONFIRM = Constant('MSG_CONFIRM',0x800)
MSG_RST = Constant('MSG_RST',0x1000)
MSG_ERRQUEUE = Constant('MSG_ERRQUEUE',0x2000)
MSG_NOSIGNAL = Constant('MSG_NOSIGNAL',0x4000)
MSG_MORE = Constant('MSG_MORE',0x8000)
MSG_WAITFORONE = Constant('MSG_WAITFORONE',0x10000)
MSG_SENDPAGE_NOTLAST = Constant('MSG_SENDPAGE_NOTLAST',0x20000)
MSG_BATCH = Constant('MSG_BATCH',0x40000)
MSG_EOF = Constant('MSG_EOF',0x200)
MSG_ZEROCOPY = Constant('MSG_ZEROCOPY',0x4000000)
MSG_FASTOPEN = Constant('MSG_FASTOPEN',0x20000000)
MSG_CMSG_CLOEXEC = Constant('MSG_CMSG_CLOEXEC',0x40000000)
SOL_IP = Constant('SOL_IP',0)
SOL_TCP = Constant('SOL_TCP',6)
SOL_UDP = Constant('SOL_UDP',17)
SOL_IPV6 = Constant('SOL_IPV6',41)
SOL_ICMPV6 = Constant('SOL_ICMPV6',58)
SOL_SCTP = Constant('SOL_SCTP',132)
SOL_UDPLITE = Constant('SOL_UDPLITE',136)
SOL_RAW = Constant('SOL_RAW',255)
SOL_IPX = Constant('SOL_IPX',256)
SOL_AX25 = Constant('SOL_AX25',257)
@@ -1132,6 +1233,22 @@ SOL_PACKET = Constant('SOL_PACKET',263)
SOL_ATM = Constant('SOL_ATM',264)
SOL_AAL = Constant('SOL_AAL',265)
SOL_IRDA = Constant('SOL_IRDA',266)
SOL_NETBEUI = Constant('SOL_NETBEUI',267)
SOL_LLC = Constant('SOL_LLC',268)
SOL_DCCP = Constant('SOL_DCCP',269)
SOL_NETLINK = Constant('SOL_NETLINK',270)
SOL_TIPC = Constant('SOL_TIPC',271)
SOL_RXRPC = Constant('SOL_RXRPC',272)
SOL_PPPOL2TP = Constant('SOL_PPPOL2TP',273)
SOL_BLUETOOTH = Constant('SOL_BLUETOOTH',274)
SOL_PNPIPE = Constant('SOL_PNPIPE',275)
SOL_RDS = Constant('SOL_RDS',276)
SOL_IUCV = Constant('SOL_IUCV',277)
SOL_CAIF = Constant('SOL_CAIF',278)
SOL_ALG = Constant('SOL_ALG',279)
SOL_NFC = Constant('SOL_NFC',280)
SOL_KCM = Constant('SOL_KCM',281)
SOL_TLS = Constant('SOL_TLS',282)
IPX_TYPE = Constant('IPX_TYPE',1)
SHUT_RD = Constant('SHUT_RD',0)
SHUT_WR = Constant('SHUT_WR',1)
@@ -1155,6 +1272,10 @@ EAI_SYSTEM = Constant('EAI_SYSTEM',-11)
AI_NUMERICHOST = Constant('AI_NUMERICHOST',1)
AI_CANONNAME = Constant('AI_CANONNAME',2)
AI_PASSIVE = Constant('AI_PASSIVE',4)
AI_NUMERICSERV = Constant('AI_NUMERICSERV',8)
AI_ADDRCONFIG = Constant('AI_ADDRCONFIG',16)
AI_V4MAPPED = Constant('AI_V4MAPPED',32)
AI_ALL = Constant('AI_ALL',64)
SIOCADDRT = Constant('SIOCADDRT',0x890B)
SIOCDELRT = Constant('SIOCDELRT',0x890C)
SIOCRTMSG = Constant('SIOCRTMSG',0x890D)
@@ -1211,6 +1332,130 @@ SIOCSIFMAP = Constant('SIOCSIFMAP',0x8971)
SIOCADDDLCI = Constant('SIOCADDDLCI',0x8980)
SIOCDELDLCI = Constant('SIOCDELDLCI',0x8981)
SIOCDEVPRIVATE = Constant('SIOCDEVPRIVATE',0x89F0)
F_LINUX_SPECIFIC_BASE = Constant('F_LINUX_SPECIFIC_BASE',1024)
O_ACCMODE = Constant('O_ACCMODE',0o003)
O_RDONLY = Constant('O_RDONLY',0o0)
O_WRONLY = Constant('O_WRONLY',0o1)
O_RDWR = Constant('O_RDWR',0o2)
O_CREAT = Constant('O_CREAT',0o100)
O_EXCL = Constant('O_EXCL',0o200)
O_NOCTTY = Constant('O_NOCTTY',0o400)
O_TRUNC = Constant('O_TRUNC',0o1000)
O_APPEND = Constant('O_APPEND',0o2000)
O_NONBLOCK = Constant('O_NONBLOCK',0o4000)
O_NDELAY = Constant('O_NDELAY',0o4000)
O_DSYNC = Constant('O_DSYNC',0o10000)
FASYNC = Constant('FASYNC',0o20000)
O_DIRECT = Constant('O_DIRECT',0o40000)
O_LARGEFILE = Constant('O_LARGEFILE',0o100000)
O_DIRECTORY = Constant('O_DIRECTORY',0o200000)
O_NOFOLLOW = Constant('O_NOFOLLOW',0o400000)
O_NOATIME = Constant('O_NOATIME',0o1000000)
O_CLOEXEC = Constant('O_CLOEXEC',0o2000000)
O_SYNC = Constant('O_SYNC',(0o10000|0o4000000))
O_PATH = Constant('O_PATH',0o10000000)
__O_TMPFILE = Constant('__O_TMPFILE',0o20000000)
F_DUPFD = Constant('F_DUPFD',0)
F_GETFD = Constant('F_GETFD',1)
F_SETFD = Constant('F_SETFD',2)
F_GETFL = Constant('F_GETFL',3)
F_SETFL = Constant('F_SETFL',4)
F_GETLK = Constant('F_GETLK',5)
F_SETLK = Constant('F_SETLK',6)
F_SETLKW = Constant('F_SETLKW',7)
F_SETOWN = Constant('F_SETOWN',8)
F_GETOWN = Constant('F_GETOWN',9)
F_SETSIG = Constant('F_SETSIG',10)
F_GETSIG = Constant('F_GETSIG',11)
F_GETLK64 = Constant('F_GETLK64',12)
F_SETLK64 = Constant('F_SETLK64',13)
F_SETLKW64 = Constant('F_SETLKW64',14)
FD_CLOEXEC = Constant('FD_CLOEXEC',1)
F_RDLCK = Constant('F_RDLCK',0)
F_WRLCK = Constant('F_WRLCK',1)
F_UNLCK = Constant('F_UNLCK',2)
F_EXLCK = Constant('F_EXLCK',4)
F_SHLCK = Constant('F_SHLCK',8)
F_INPROGRESS = Constant('F_INPROGRESS',16)
LOCK_SH = Constant('LOCK_SH',1)
LOCK_EX = Constant('LOCK_EX',2)
LOCK_NB = Constant('LOCK_NB',4)
LOCK_UN = Constant('LOCK_UN',8)
LOCK_MAND = Constant('LOCK_MAND',32)
LOCK_READ = Constant('LOCK_READ',64)
LOCK_WRITE = Constant('LOCK_WRITE',128)
LOCK_RW = Constant('LOCK_RW',192)
O_TMPFILE = Constant('O_TMPFILE',(0o20000000 | 0o200000))
O_ASYNC = Constant('O_ASYNC',0o20000)
F_SETOWN_EX = Constant('F_SETOWN_EX',15)
F_GETOWN_EX = Constant('F_GETOWN_EX',16)
F_GETOWNER_UIDS = Constant('F_GETOWNER_UIDS',17)
F_OFD_GETLK = Constant('F_OFD_GETLK',36)
F_OFD_SETLK = Constant('F_OFD_SETLK',37)
F_OFD_SETLKW = Constant('F_OFD_SETLKW',38)
F_OWNER_TID = Constant('F_OWNER_TID',0)
F_OWNER_PID = Constant('F_OWNER_PID',1)
F_OWNER_PGRP = Constant('F_OWNER_PGRP',2)
AT_FDCWD = Constant('AT_FDCWD',-100)
AT_SYMLINK_NOFOLLOW = Constant('AT_SYMLINK_NOFOLLOW',0x100)
AT_REMOVEDIR = Constant('AT_REMOVEDIR',0x200)
AT_SYMLINK_FOLLOW = Constant('AT_SYMLINK_FOLLOW',0x400)
AT_NO_AUTOMOUNT = Constant('AT_NO_AUTOMOUNT',0x800)
AT_EMPTY_PATH = Constant('AT_EMPTY_PATH',0x1000)
AT_EACCESS = Constant('AT_EACCESS',0x200)
MREMAP_MAYMOVE = Constant('MREMAP_MAYMOVE',1)
MREMAP_FIXED = Constant('MREMAP_FIXED',2)
PROT_READ = Constant('PROT_READ',0x1)
PROT_WRITE = Constant('PROT_WRITE',0x2)
PROT_EXEC = Constant('PROT_EXEC',0x4)
PROT_SEM = Constant('PROT_SEM',0x8)
PROT_NONE = Constant('PROT_NONE',0x0)
PROT_GROWSDOWN = Constant('PROT_GROWSDOWN',0x01000000)
PROT_GROWSUP = Constant('PROT_GROWSUP',0x02000000)
MAP_SHARED = Constant('MAP_SHARED',0x01)
MAP_PRIVATE = Constant('MAP_PRIVATE',0x02)
MAP_TYPE = Constant('MAP_TYPE',0xf)
MADV_REMOVE = Constant('MADV_REMOVE',9)
MADV_DONTFORK = Constant('MADV_DONTFORK',10)
MADV_DOFORK = Constant('MADV_DOFORK',11)
MADV_MERGEABLE = Constant('MADV_MERGEABLE',12)
MADV_UNMERGEABLE = Constant('MADV_UNMERGEABLE',13)
MADV_HUGEPAGE = Constant('MADV_HUGEPAGE',14)
MADV_NOHUGEPAGE = Constant('MADV_NOHUGEPAGE',15)
MADV_DONTDUMP = Constant('MADV_DONTDUMP',16)
MADV_DODUMP = Constant('MADV_DODUMP',17)
MADV_HWPOISON = Constant('MADV_HWPOISON',100)
MADV_SOFT_OFFLINE = Constant('MADV_SOFT_OFFLINE',101)
MLOCK_ONFAULT = Constant('MLOCK_ONFAULT',1)
MAP_FIXED = Constant('MAP_FIXED',0x10)
MAP_ANONYMOUS = Constant('MAP_ANONYMOUS',0x20)
MAP_GROWSDOWN = Constant('MAP_GROWSDOWN',0x0100)
MAP_DENYWRITE = Constant('MAP_DENYWRITE',0x0800)
MAP_EXECUTABLE = Constant('MAP_EXECUTABLE',0x1000)
MAP_LOCKED = Constant('MAP_LOCKED',0x2000)
MAP_NORESERVE = Constant('MAP_NORESERVE',0x4000)
MAP_POPULATE = Constant('MAP_POPULATE',0x8000)
MAP_NONBLOCK = Constant('MAP_NONBLOCK',0x10000)
MAP_STACK = Constant('MAP_STACK',0x20000)
MAP_HUGETLB = Constant('MAP_HUGETLB',0x40000)
MS_ASYNC = Constant('MS_ASYNC',1)
MS_INVALIDATE = Constant('MS_INVALIDATE',2)
MS_SYNC = Constant('MS_SYNC',4)
MCL_CURRENT = Constant('MCL_CURRENT',1)
MCL_FUTURE = Constant('MCL_FUTURE',2)
MCL_ONFAULT = Constant('MCL_ONFAULT',4)
MADV_NORMAL = Constant('MADV_NORMAL',0x0)
MADV_RANDOM = Constant('MADV_RANDOM',0x1)
MADV_SEQUENTIAL = Constant('MADV_SEQUENTIAL',0x2)
MADV_WILLNEED = Constant('MADV_WILLNEED',0x3)
MADV_DONTNEED = Constant('MADV_DONTNEED',0x4)
MAP_ANON = Constant('MAP_ANON',0x20)
MAP_FILE = Constant('MAP_FILE',0)
POSIX_MADV_NORMAL = Constant('POSIX_MADV_NORMAL',0x0)
POSIX_MADV_SEQUENTIAL = Constant('POSIX_MADV_SEQUENTIAL',0x2)
POSIX_MADV_RANDOM = Constant('POSIX_MADV_RANDOM',0x1)
POSIX_MADV_WILLNEED = Constant('POSIX_MADV_WILLNEED',0x3)
POSIX_MADV_DONTNEED = Constant('POSIX_MADV_DONTNEED',0x4)
PTRACE_TRACEME = Constant('PTRACE_TRACEME',0)
PTRACE_PEEKTEXT = Constant('PTRACE_PEEKTEXT',1)
PTRACE_PEEKDATA = Constant('PTRACE_PEEKDATA',2)
@@ -1265,6 +1510,7 @@ SYS_afs_syscall = Constant('SYS_afs_syscall',183)
SYS_alarm = Constant('SYS_alarm',37)
SYS_arch_prctl = Constant('SYS_arch_prctl',158)
SYS_bind = Constant('SYS_bind',49)
SYS_bpf = Constant('SYS_bpf',321)
SYS_brk = Constant('SYS_brk',12)
SYS_capget = Constant('SYS_capget',125)
SYS_capset = Constant('SYS_capset',126)
@@ -1272,13 +1518,16 @@ SYS_chdir = Constant('SYS_chdir',80)
SYS_chmod = Constant('SYS_chmod',90)
SYS_chown = Constant('SYS_chown',92)
SYS_chroot = Constant('SYS_chroot',161)
SYS_clock_adjtime = Constant('SYS_clock_adjtime',305)
SYS_clock_getres = Constant('SYS_clock_getres',229)
SYS_clock_gettime = Constant('SYS_clock_gettime',228)
SYS_clock_nanosleep = Constant('SYS_clock_nanosleep',230)
SYS_clock_settime = Constant('SYS_clock_settime',227)
SYS_clone = Constant('SYS_clone',56)
SYS_clone3 = Constant('SYS_clone3',435)
SYS_close = Constant('SYS_close',3)
SYS_connect = Constant('SYS_connect',42)
SYS_copy_file_range = Constant('SYS_copy_file_range',326)
SYS_creat = Constant('SYS_creat',85)
SYS_create_module = Constant('SYS_create_module',174)
SYS_delete_module = Constant('SYS_delete_module',176)
@@ -1295,6 +1544,7 @@ SYS_epoll_wait_old = Constant('SYS_epoll_wait_old',215)
SYS_eventfd = Constant('SYS_eventfd',284)
SYS_eventfd2 = Constant('SYS_eventfd2',290)
SYS_execve = Constant('SYS_execve',59)
SYS_execveat = Constant('SYS_execveat',322)
SYS_exit = Constant('SYS_exit',60)
SYS_exit_group = Constant('SYS_exit_group',231)
SYS_faccessat = Constant('SYS_faccessat',269)
@@ -1310,17 +1560,23 @@ SYS_fchownat = Constant('SYS_fchownat',260)
SYS_fcntl = Constant('SYS_fcntl',72)
SYS_fdatasync = Constant('SYS_fdatasync',75)
SYS_fgetxattr = Constant('SYS_fgetxattr',193)
SYS_finit_module = Constant('SYS_finit_module',313)
SYS_flistxattr = Constant('SYS_flistxattr',196)
SYS_flock = Constant('SYS_flock',73)
SYS_fork = Constant('SYS_fork',57)
SYS_fremovexattr = Constant('SYS_fremovexattr',199)
SYS_fsconfig = Constant('SYS_fsconfig',431)
SYS_fsetxattr = Constant('SYS_fsetxattr',190)
SYS_fsmount = Constant('SYS_fsmount',432)
SYS_fsopen = Constant('SYS_fsopen',430)
SYS_fspick = Constant('SYS_fspick',433)
SYS_fstat = Constant('SYS_fstat',5)
SYS_fstatfs = Constant('SYS_fstatfs',138)
SYS_fsync = Constant('SYS_fsync',74)
SYS_ftruncate = Constant('SYS_ftruncate',77)
SYS_futex = Constant('SYS_futex',202)
SYS_futimesat = Constant('SYS_futimesat',261)
SYS_getcpu = Constant('SYS_getcpu',309)
SYS_getcwd = Constant('SYS_getcwd',79)
SYS_getdents = Constant('SYS_getdents',78)
SYS_getdents64 = Constant('SYS_getdents64',217)
@@ -1338,6 +1594,7 @@ SYS_getpid = Constant('SYS_getpid',39)
SYS_getpmsg = Constant('SYS_getpmsg',181)
SYS_getppid = Constant('SYS_getppid',110)
SYS_getpriority = Constant('SYS_getpriority',140)
SYS_getrandom = Constant('SYS_getrandom',318)
SYS_getresgid = Constant('SYS_getresgid',120)
SYS_getresuid = Constant('SYS_getresuid',118)
SYS_getrlimit = Constant('SYS_getrlimit',97)
@@ -1361,11 +1618,17 @@ SYS_ioctl = Constant('SYS_ioctl',16)
SYS_io_destroy = Constant('SYS_io_destroy',207)
SYS_io_getevents = Constant('SYS_io_getevents',208)
SYS_ioperm = Constant('SYS_ioperm',173)
SYS_io_pgetevents = Constant('SYS_io_pgetevents',333)
SYS_iopl = Constant('SYS_iopl',172)
SYS_ioprio_get = Constant('SYS_ioprio_get',252)
SYS_ioprio_set = Constant('SYS_ioprio_set',251)
SYS_io_setup = Constant('SYS_io_setup',206)
SYS_io_submit = Constant('SYS_io_submit',209)
SYS_io_uring_enter = Constant('SYS_io_uring_enter',426)
SYS_io_uring_register = Constant('SYS_io_uring_register',427)
SYS_io_uring_setup = Constant('SYS_io_uring_setup',425)
SYS_kcmp = Constant('SYS_kcmp',312)
SYS_kexec_file_load = Constant('SYS_kexec_file_load',320)
SYS_kexec_load = Constant('SYS_kexec_load',246)
SYS_keyctl = Constant('SYS_keyctl',250)
SYS_kill = Constant('SYS_kill',62)
@@ -1383,6 +1646,8 @@ SYS_lsetxattr = Constant('SYS_lsetxattr',189)
SYS_lstat = Constant('SYS_lstat',6)
SYS_madvise = Constant('SYS_madvise',28)
SYS_mbind = Constant('SYS_mbind',237)
SYS_membarrier = Constant('SYS_membarrier',324)
SYS_memfd_create = Constant('SYS_memfd_create',319)
SYS_migrate_pages = Constant('SYS_migrate_pages',256)
SYS_mincore = Constant('SYS_mincore',27)
SYS_mkdir = Constant('SYS_mkdir',83)
@@ -1390,10 +1655,12 @@ SYS_mkdirat = Constant('SYS_mkdirat',258)
SYS_mknod = Constant('SYS_mknod',133)
SYS_mknodat = Constant('SYS_mknodat',259)
SYS_mlock = Constant('SYS_mlock',149)
SYS_mlock2 = Constant('SYS_mlock2',325)
SYS_mlockall = Constant('SYS_mlockall',151)
SYS_mmap = Constant('SYS_mmap',9)
SYS_modify_ldt = Constant('SYS_modify_ldt',154)
SYS_mount = Constant('SYS_mount',165)
SYS_move_mount = Constant('SYS_move_mount',429)
SYS_move_pages = Constant('SYS_move_pages',279)
SYS_mprotect = Constant('SYS_mprotect',10)
SYS_mq_getsetattr = Constant('SYS_mq_getsetattr',245)
@@ -1411,28 +1678,42 @@ SYS_msync = Constant('SYS_msync',26)
SYS_munlock = Constant('SYS_munlock',150)
SYS_munlockall = Constant('SYS_munlockall',152)
SYS_munmap = Constant('SYS_munmap',11)
SYS_name_to_handle_at = Constant('SYS_name_to_handle_at',303)
SYS_nanosleep = Constant('SYS_nanosleep',35)
SYS_newfstatat = Constant('SYS_newfstatat',262)
SYS_nfsservctl = Constant('SYS_nfsservctl',180)
SYS_open = Constant('SYS_open',2)
SYS_openat = Constant('SYS_openat',257)
SYS_openat2 = Constant('SYS_openat2',437)
SYS_open_by_handle_at = Constant('SYS_open_by_handle_at',304)
SYS_open_tree = Constant('SYS_open_tree',428)
SYS_pause = Constant('SYS_pause',34)
SYS_perf_event_open = Constant('SYS_perf_event_open',298)
SYS_personality = Constant('SYS_personality',135)
SYS_pidfd_getfd = Constant('SYS_pidfd_getfd',438)
SYS_pidfd_open = Constant('SYS_pidfd_open',434)
SYS_pidfd_send_signal = Constant('SYS_pidfd_send_signal',424)
SYS_pipe = Constant('SYS_pipe',22)
SYS_pipe2 = Constant('SYS_pipe2',293)
SYS_pivot_root = Constant('SYS_pivot_root',155)
SYS_pkey_alloc = Constant('SYS_pkey_alloc',330)
SYS_pkey_free = Constant('SYS_pkey_free',331)
SYS_pkey_mprotect = Constant('SYS_pkey_mprotect',329)
SYS_poll = Constant('SYS_poll',7)
SYS_ppoll = Constant('SYS_ppoll',271)
SYS_prctl = Constant('SYS_prctl',157)
SYS_pread = Constant('SYS_pread',17)
SYS_preadv = Constant('SYS_preadv',295)
SYS_preadv2 = Constant('SYS_preadv2',327)
SYS_prlimit64 = Constant('SYS_prlimit64',302)
SYS_process_vm_readv = Constant('SYS_process_vm_readv',310)
SYS_process_vm_writev = Constant('SYS_process_vm_writev',311)
SYS_pselect6 = Constant('SYS_pselect6',270)
SYS_ptrace = Constant('SYS_ptrace',101)
SYS_putpmsg = Constant('SYS_putpmsg',182)
SYS_pwrite = Constant('SYS_pwrite',18)
SYS_pwritev = Constant('SYS_pwritev',296)
SYS_pwritev2 = Constant('SYS_pwritev2',328)
SYS_query_module = Constant('SYS_query_module',178)
SYS_quotactl = Constant('SYS_quotactl',179)
SYS_read = Constant('SYS_read',0)
@@ -1448,9 +1729,11 @@ SYS_remap_file_pages = Constant('SYS_remap_file_pages',216)
SYS_removexattr = Constant('SYS_removexattr',197)
SYS_rename = Constant('SYS_rename',82)
SYS_renameat = Constant('SYS_renameat',264)
SYS_renameat2 = Constant('SYS_renameat2',316)
SYS_request_key = Constant('SYS_request_key',249)
SYS_restart_syscall = Constant('SYS_restart_syscall',219)
SYS_rmdir = Constant('SYS_rmdir',84)
SYS_rseq = Constant('SYS_rseq',334)
SYS_rt_sigaction = Constant('SYS_rt_sigaction',13)
SYS_rt_sigpending = Constant('SYS_rt_sigpending',127)
SYS_rt_sigprocmask = Constant('SYS_rt_sigprocmask',14)
@@ -1460,15 +1743,18 @@ SYS_rt_sigsuspend = Constant('SYS_rt_sigsuspend',130)
SYS_rt_sigtimedwait = Constant('SYS_rt_sigtimedwait',128)
SYS_rt_tgsigqueueinfo = Constant('SYS_rt_tgsigqueueinfo',297)
SYS_sched_getaffinity = Constant('SYS_sched_getaffinity',204)
SYS_sched_getattr = Constant('SYS_sched_getattr',315)
SYS_sched_getparam = Constant('SYS_sched_getparam',143)
SYS_sched_get_priority_max = Constant('SYS_sched_get_priority_max',146)
SYS_sched_get_priority_min = Constant('SYS_sched_get_priority_min',147)
SYS_sched_getscheduler = Constant('SYS_sched_getscheduler',145)
SYS_sched_rr_get_interval = Constant('SYS_sched_rr_get_interval',148)
SYS_sched_setaffinity = Constant('SYS_sched_setaffinity',203)
SYS_sched_setattr = Constant('SYS_sched_setattr',314)
SYS_sched_setparam = Constant('SYS_sched_setparam',142)
SYS_sched_setscheduler = Constant('SYS_sched_setscheduler',144)
SYS_sched_yield = Constant('SYS_sched_yield',24)
SYS_seccomp = Constant('SYS_seccomp',317)
SYS_security = Constant('SYS_security',185)
SYS_select = Constant('SYS_select',23)
SYS_semctl = Constant('SYS_semctl',66)
@@ -1476,6 +1762,7 @@ SYS_semget = Constant('SYS_semget',64)
SYS_semop = Constant('SYS_semop',65)
SYS_semtimedop = Constant('SYS_semtimedop',220)
SYS_sendfile = Constant('SYS_sendfile',40)
SYS_sendmmsg = Constant('SYS_sendmmsg',307)
SYS_sendmsg = Constant('SYS_sendmsg',46)
SYS_sendto = Constant('SYS_sendto',44)
SYS_setdomainname = Constant('SYS_setdomainname',171)
@@ -1486,6 +1773,7 @@ SYS_setgroups = Constant('SYS_setgroups',116)
SYS_sethostname = Constant('SYS_sethostname',170)
SYS_setitimer = Constant('SYS_setitimer',38)
SYS_set_mempolicy = Constant('SYS_set_mempolicy',238)
SYS_setns = Constant('SYS_setns',308)
SYS_setpgid = Constant('SYS_setpgid',109)
SYS_setpriority = Constant('SYS_setpriority',141)
SYS_setregid = Constant('SYS_setregid',114)
@@ -1514,12 +1802,14 @@ SYS_socketpair = Constant('SYS_socketpair',53)
SYS_splice = Constant('SYS_splice',275)
SYS_stat = Constant('SYS_stat',4)
SYS_statfs = Constant('SYS_statfs',137)
SYS_statx = Constant('SYS_statx',332)
SYS_swapoff = Constant('SYS_swapoff',168)
SYS_swapon = Constant('SYS_swapon',167)
SYS_symlink = Constant('SYS_symlink',88)
SYS_symlinkat = Constant('SYS_symlinkat',266)
SYS_sync = Constant('SYS_sync',162)
SYS_sync_file_range = Constant('SYS_sync_file_range',277)
SYS_syncfs = Constant('SYS_syncfs',306)
SYS__sysctl = Constant('SYS__sysctl',156)
SYS_sysfs = Constant('SYS_sysfs',139)
SYS_sysinfo = Constant('SYS_sysinfo',99)
@@ -1546,6 +1836,7 @@ SYS_unlink = Constant('SYS_unlink',87)
SYS_unlinkat = Constant('SYS_unlinkat',263)
SYS_unshare = Constant('SYS_unshare',272)
SYS_uselib = Constant('SYS_uselib',134)
SYS_userfaultfd = Constant('SYS_userfaultfd',323)
SYS_ustat = Constant('SYS_ustat',136)
SYS_utime = Constant('SYS_utime',132)
SYS_utimensat = Constant('SYS_utimensat',280)
+475 -90
View File
@@ -1,5 +1,4 @@
from pwnlib.constants.constant import Constant
__ARM_EABI__ = Constant('__ARM_EABI__',1)
__KERNEL__ = Constant('__KERNEL__',1)
_ARM_SYSCALL_H = Constant('_ARM_SYSCALL_H',1)
@@ -324,6 +323,87 @@ __NR_eventfd = Constant('__NR_eventfd',(0+351))
__NR_fallocate = Constant('__NR_fallocate',(0+352))
__NR_timerfd_settime = Constant('__NR_timerfd_settime',(0+353))
__NR_timerfd_gettime = Constant('__NR_timerfd_gettime',(0+354))
__NR_signalfd4 = Constant('__NR_signalfd4',(0+355))
__NR_eventfd2 = Constant('__NR_eventfd2',(0+356))
__NR_epoll_create1 = Constant('__NR_epoll_create1',(0+357))
__NR_dup3 = Constant('__NR_dup3',(0+358))
__NR_pipe2 = Constant('__NR_pipe2',(0+359))
__NR_inotify_init1 = Constant('__NR_inotify_init1',(0+360))
__NR_preadv = Constant('__NR_preadv',(0+361))
__NR_pwritev = Constant('__NR_pwritev',(0+362))
__NR_rt_tgsigqueueinfo = Constant('__NR_rt_tgsigqueueinfo',(0+363))
__NR_perf_event_open = Constant('__NR_perf_event_open',(0+364))
__NR_recvmmsg = Constant('__NR_recvmmsg',(0+365))
__NR_accept4 = Constant('__NR_accept4',(0+366))
__NR_fanotify_init = Constant('__NR_fanotify_init',(0+367))
__NR_fanotify_mark = Constant('__NR_fanotify_mark',(0+368))
__NR_prlimit64 = Constant('__NR_prlimit64',(0+369))
__NR_name_to_handle_at = Constant('__NR_name_to_handle_at',(0+370))
__NR_open_by_handle_at = Constant('__NR_open_by_handle_at',(0+371))
__NR_clock_adjtime = Constant('__NR_clock_adjtime',(0+372))
__NR_syncfs = Constant('__NR_syncfs',(0+373))
__NR_sendmmsg = Constant('__NR_sendmmsg',(0+374))
__NR_setns = Constant('__NR_setns',(0+375))
__NR_process_vm_readv = Constant('__NR_process_vm_readv',(0+376))
__NR_process_vm_writev = Constant('__NR_process_vm_writev',(0+377))
__NR_kcmp = Constant('__NR_kcmp',(0+378))
__NR_finit_module = Constant('__NR_finit_module',(0+379))
__NR_sched_setattr = Constant('__NR_sched_setattr',(0+380))
__NR_sched_getattr = Constant('__NR_sched_getattr',(0+381))
__NR_renameat2 = Constant('__NR_renameat2',(0+382))
__NR_seccomp = Constant('__NR_seccomp',(0+383))
__NR_getrandom = Constant('__NR_getrandom',(0+384))
__NR_memfd_create = Constant('__NR_memfd_create',(0+385))
__NR_bpf = Constant('__NR_bpf',(0+386))
__NR_execveat = Constant('__NR_execveat',(0+387))
__NR_userfaultfd = Constant('__NR_userfaultfd',(0+388))
__NR_membarrier = Constant('__NR_membarrier',(0+389))
__NR_mlock2 = Constant('__NR_mlock2',(0+390))
__NR_copy_file_range = Constant('__NR_copy_file_range',(0+391))
__NR_preadv2 = Constant('__NR_preadv2',(0+392))
__NR_pwritev2 = Constant('__NR_pwritev2',(0+393))
__NR_pkey_mprotect = Constant('__NR_pkey_mprotect',(0 + 394))
__NR_pkey_alloc = Constant('__NR_pkey_alloc',(0 + 395))
__NR_pkey_free = Constant('__NR_pkey_free',(0 + 396))
__NR_statx = Constant('__NR_statx',(0 + 397))
__NR_rseq = Constant('__NR_rseq',(0 + 398))
__NR_io_pgetevents = Constant('__NR_io_pgetevents',(0 + 399))
__NR_migrate_pages = Constant('__NR_migrate_pages',(0 + 400))
__NR_kexec_file_load = Constant('__NR_kexec_file_load',(0 + 401))
__NR_clock_gettime64 = Constant('__NR_clock_gettime64',(0 + 403))
__NR_clock_settime64 = Constant('__NR_clock_settime64',(0 + 404))
__NR_clock_adjtime64 = Constant('__NR_clock_adjtime64',(0 + 405))
__NR_clock_getres_time64 = Constant('__NR_clock_getres_time64',(0 + 406))
__NR_clock_nanosleep_time64 = Constant('__NR_clock_nanosleep_time64',(0 + 407))
__NR_timer_gettime64 = Constant('__NR_timer_gettime64',(0 + 408))
__NR_timer_settime64 = Constant('__NR_timer_settime64',(0 + 409))
__NR_timerfd_gettime64 = Constant('__NR_timerfd_gettime64',(0 + 410))
__NR_timerfd_settime64 = Constant('__NR_timerfd_settime64',(0 + 411))
__NR_utimensat_time64 = Constant('__NR_utimensat_time64',(0 + 412))
__NR_pselect6_time64 = Constant('__NR_pselect6_time64',(0 + 413))
__NR_ppoll_time64 = Constant('__NR_ppoll_time64',(0 + 414))
__NR_io_pgetevents_time64 = Constant('__NR_io_pgetevents_time64',(0 + 416))
__NR_recvmmsg_time64 = Constant('__NR_recvmmsg_time64',(0 + 417))
__NR_mq_timedsend_time64 = Constant('__NR_mq_timedsend_time64',(0 + 418))
__NR_mq_timedreceive_time64 = Constant('__NR_mq_timedreceive_time64',(0 + 419))
__NR_semtimedop_time64 = Constant('__NR_semtimedop_time64',(0 + 420))
__NR_rt_sigtimedwait_time64 = Constant('__NR_rt_sigtimedwait_time64',(0 + 421))
__NR_futex_time64 = Constant('__NR_futex_time64',(0 + 422))
__NR_sched_rr_get_interval_time64 = Constant('__NR_sched_rr_get_interval_time64',(0 + 423))
__NR_pidfd_send_signal = Constant('__NR_pidfd_send_signal',(0 + 424))
__NR_io_uring_setup = Constant('__NR_io_uring_setup',(0 + 425))
__NR_io_uring_enter = Constant('__NR_io_uring_enter',(0 + 426))
__NR_io_uring_register = Constant('__NR_io_uring_register',(0 + 427))
__NR_open_tree = Constant('__NR_open_tree',(0 + 428))
__NR_move_mount = Constant('__NR_move_mount',(0 + 429))
__NR_fsopen = Constant('__NR_fsopen',(0 + 430))
__NR_fsconfig = Constant('__NR_fsconfig',(0 + 431))
__NR_fsmount = Constant('__NR_fsmount',(0 + 432))
__NR_fspick = Constant('__NR_fspick',(0 + 433))
__NR_pidfd_open = Constant('__NR_pidfd_open',(0 + 434))
__NR_clone3 = Constant('__NR_clone3',(0 + 435))
__NR_openat2 = Constant('__NR_openat2',(0 + 437))
__NR_pidfd_getfd = Constant('__NR_pidfd_getfd',(0 + 438))
__ARM_NR_BASE = Constant('__ARM_NR_BASE',(0+0x0f0000))
__ARM_NR_breakpoint = Constant('__ARM_NR_breakpoint',((0+0x0f0000)+1))
__ARM_NR_cacheflush = Constant('__ARM_NR_cacheflush',((0+0x0f0000)+2))
@@ -614,9 +694,9 @@ __ARGS_getsockname = Constant('__ARGS_getsockname',0)
__ARGS_getpeername = Constant('__ARGS_getpeername',0)
__ARGS_socketpair = Constant('__ARGS_socketpair',0)
__ARGS_send = Constant('__ARGS_send',0)
__ARGS_sendto = Constant('__ARGS_sendto',0)
__ARGS_sendto = Constant('__ARGS_sendto',1)
__ARGS_recv = Constant('__ARGS_recv',0)
__ARGS_recvfrom = Constant('__ARGS_recvfrom',0)
__ARGS_recvfrom = Constant('__ARGS_recvfrom',1)
__ARGS_shutdown = Constant('__ARGS_shutdown',0)
__ARGS_setsockopt = Constant('__ARGS_setsockopt',0)
__ARGS_getsockopt = Constant('__ARGS_getsockopt',0)
@@ -676,6 +756,31 @@ __ARGS_eventfd = Constant('__ARGS_eventfd',0)
__ARGS_fallocate = Constant('__ARGS_fallocate',0)
__ARGS_timerfd_settime = Constant('__ARGS_timerfd_settime',0)
__ARGS_timerfd_gettime = Constant('__ARGS_timerfd_gettime',0)
__ARGS_signalfd4 = Constant('__ARGS_signalfd4',0)
__ARGS_eventfd2 = Constant('__ARGS_eventfd2',0)
__ARGS_epoll_create1 = Constant('__ARGS_epoll_create1',0)
__ARGS_dup3 = Constant('__ARGS_dup3',0)
__ARGS_pipe2 = Constant('__ARGS_pipe2',0)
__ARGS_inotify_init1 = Constant('__ARGS_inotify_init1',0)
__ARGS_preadv = Constant('__ARGS_preadv',0)
__ARGS_pwritev = Constant('__ARGS_pwritev',0)
__ARGS_rt_tgsigqueueinfo = Constant('__ARGS_rt_tgsigqueueinfo',0)
__ARGS_perf_event_open = Constant('__ARGS_perf_event_open',1)
__ARGS_recvmmsg = Constant('__ARGS_recvmmsg',1)
__ARGS_accept4 = Constant('__ARGS_accept4',0)
__ARGS_fanotify_init = Constant('__ARGS_fanotify_init',0)
__ARGS_fanotify_mark = Constant('__ARGS_fanotify_mark',1)
__ARGS_prlimit64 = Constant('__ARGS_prlimit64',0)
__ARGS_name_to_handle_at = Constant('__ARGS_name_to_handle_at',1)
__ARGS_open_by_handle_at = Constant('__ARGS_open_by_handle_at',0)
__ARGS_clock_adjtime = Constant('__ARGS_clock_adjtime',0)
__ARGS_syncfs = Constant('__ARGS_syncfs',0)
__ARGS_sendmmsg = Constant('__ARGS_sendmmsg',0)
__ARGS_setns = Constant('__ARGS_setns',0)
__ARGS_process_vm_readv = Constant('__ARGS_process_vm_readv',1)
__ARGS_process_vm_writev = Constant('__ARGS_process_vm_writev',1)
__ARGS_kcmp = Constant('__ARGS_kcmp',1)
__ARGS_finit_module = Constant('__ARGS_finit_module',0)
MAP_32BIT = Constant('MAP_32BIT',0x40)
INADDR_ANY = Constant('INADDR_ANY',0)
INADDR_BROADCAST = Constant('INADDR_BROADCAST',0xffffffff)
@@ -811,7 +916,11 @@ ENOKEY = Constant('ENOKEY',126)
EKEYEXPIRED = Constant('EKEYEXPIRED',127)
EKEYREVOKED = Constant('EKEYREVOKED',128)
EKEYREJECTED = Constant('EKEYREJECTED',129)
__SYS_NERR = Constant('__SYS_NERR',((129) + 1))
EOWNERDEAD = Constant('EOWNERDEAD',130)
ENOTRECOVERABLE = Constant('ENOTRECOVERABLE',131)
ERFKILL = Constant('ERFKILL',132)
EHWPOISON = Constant('EHWPOISON',133)
__SYS_NERR = Constant('__SYS_NERR',((133) + 1))
__LITTLE_ENDIAN = Constant('__LITTLE_ENDIAN',1234)
__BIG_ENDIAN = Constant('__BIG_ENDIAN',4321)
__BYTE_ORDER = Constant('__BYTE_ORDER',1234)
@@ -820,9 +929,55 @@ LITTLE_ENDIAN = Constant('LITTLE_ENDIAN',1234)
BIG_ENDIAN = Constant('BIG_ENDIAN',4321)
BYTE_ORDER = Constant('BYTE_ORDER',1234)
__WORDSIZE = Constant('__WORDSIZE',32)
INT8_MAX = Constant('INT8_MAX',(127))
INT16_MAX = Constant('INT16_MAX',(32767))
INT32_MAX = Constant('INT32_MAX',(2147483647))
INT64_MAX = Constant('INT64_MAX',(9223372036854775807))
INT8_MIN = Constant('INT8_MIN',(-1 - (127)))
INT16_MIN = Constant('INT16_MIN',(-1 - (32767)))
INT32_MIN = Constant('INT32_MIN',(-1 - (2147483647)))
INT64_MIN = Constant('INT64_MIN',(-1 - (9223372036854775807)))
INT_LEAST8_MAX = Constant('INT_LEAST8_MAX',(127))
INT_LEAST8_MIN = Constant('INT_LEAST8_MIN',(-1 - (127)))
INT_LEAST16_MAX = Constant('INT_LEAST16_MAX',(32767))
INT_LEAST16_MIN = Constant('INT_LEAST16_MIN',(-1 - (32767)))
INT_LEAST32_MAX = Constant('INT_LEAST32_MAX',(2147483647))
INT_LEAST32_MIN = Constant('INT_LEAST32_MIN',(-1 - (2147483647)))
INT_LEAST64_MAX = Constant('INT_LEAST64_MAX',(9223372036854775807))
INT_LEAST64_MIN = Constant('INT_LEAST64_MIN',(-1 - (9223372036854775807)))
UINT8_MAX = Constant('UINT8_MAX',0xff)
UINT16_MAX = Constant('UINT16_MAX',0xffff)
UINT32_MAX = Constant('UINT32_MAX',0xffffffff)
UINT64_MAX = Constant('UINT64_MAX',0xffffffffffffffff)
UINT_LEAST8_MAX = Constant('UINT_LEAST8_MAX',0xff)
UINT_LEAST16_MAX = Constant('UINT_LEAST16_MAX',0xffff)
UINT_LEAST32_MAX = Constant('UINT_LEAST32_MAX',0xffffffff)
UINT_LEAST64_MAX = Constant('UINT_LEAST64_MAX',0xffffffffffffffff)
INTPTR_MIN = Constant('INTPTR_MIN',(-1 - (2147483647)))
INTPTR_MAX = Constant('INTPTR_MAX',(2147483647))
UINTPTR_MAX = Constant('UINTPTR_MAX',0xffffffff)
SIZE_MAX = Constant('SIZE_MAX',0xffffffff)
PTRDIFF_MIN = Constant('PTRDIFF_MIN',(-1 - (2147483647)))
PTRDIFF_MAX = Constant('PTRDIFF_MAX',(2147483647))
INTMAX_MIN = Constant('INTMAX_MIN',(-1 - (9223372036854775807)))
INTMAX_MAX = Constant('INTMAX_MAX',(9223372036854775807))
UINTMAX_MAX = Constant('UINTMAX_MAX',0xffffffffffffffff)
INT_FAST8_MIN = Constant('INT_FAST8_MIN',(-1 - (127)))
INT_FAST8_MAX = Constant('INT_FAST8_MAX',(127))
INT_FAST64_MIN = Constant('INT_FAST64_MIN',(-1 - (9223372036854775807)))
INT_FAST64_MAX = Constant('INT_FAST64_MAX',(9223372036854775807))
UINT_FAST8_MAX = Constant('UINT_FAST8_MAX',0xff)
UINT_FAST64_MAX = Constant('UINT_FAST64_MAX',0xffffffffffffffff)
INT_FAST16_MIN = Constant('INT_FAST16_MIN',(-1 - (2147483647)))
INT_FAST16_MAX = Constant('INT_FAST16_MAX',(2147483647))
UINT_FAST16_MAX = Constant('UINT_FAST16_MAX',0xffffffff)
INT_FAST32_MIN = Constant('INT_FAST32_MIN',(-1 - (2147483647)))
INT_FAST32_MAX = Constant('INT_FAST32_MAX',(2147483647))
UINT_FAST32_MAX = Constant('UINT_FAST32_MAX',0xffffffff)
WINT_MIN = Constant('WINT_MIN',0)
__FSUID_H = Constant('__FSUID_H',1)
NSIG = Constant('NSIG',32)
_NSIG = Constant('_NSIG',64)
_NSIG = Constant('_NSIG',65)
SIGHUP = Constant('SIGHUP',1)
SIGINT = Constant('SIGINT',2)
SIGQUIT = Constant('SIGQUIT',3)
@@ -860,7 +1015,7 @@ SIGCLD = Constant('SIGCLD',17)
SIGPOLL = Constant('SIGPOLL',29)
SIGLOST = Constant('SIGLOST',30)
SIGRTMIN = Constant('SIGRTMIN',32)
SIGRTMAX = Constant('SIGRTMAX',(64-1))
SIGRTMAX = Constant('SIGRTMAX',(65-1))
SA_NOCLDSTOP = Constant('SA_NOCLDSTOP',0x00000001)
SA_NOCLDWAIT = Constant('SA_NOCLDWAIT',0x00000002)
SA_SIGINFO = Constant('SA_SIGINFO',0x00000004)
@@ -910,6 +1065,8 @@ _SC_PAGESIZE = Constant('_SC_PAGESIZE',5)
_SC_NPROCESSORS_ONLN = Constant('_SC_NPROCESSORS_ONLN',6)
_SC_NPROCESSORS_CONF = Constant('_SC_NPROCESSORS_CONF',6)
_SC_PHYS_PAGES = Constant('_SC_PHYS_PAGES',7)
_SC_GETPW_R_SIZE_MAX = Constant('_SC_GETPW_R_SIZE_MAX',8)
_SC_GETGR_R_SIZE_MAX = Constant('_SC_GETGR_R_SIZE_MAX',9)
_PC_PATH_MAX = Constant('_PC_PATH_MAX',1)
_PC_VDISABLE = Constant('_PC_VDISABLE',2)
L_cuserid = Constant('L_cuserid',17)
@@ -918,6 +1075,7 @@ F_ULOCK = Constant('F_ULOCK',0)
F_LOCK = Constant('F_LOCK',1)
F_TLOCK = Constant('F_TLOCK',2)
F_TEST = Constant('F_TEST',3)
_POSIX_MAPPED_FILES = Constant('_POSIX_MAPPED_FILES',200809)
STAT64_HAS_BROKEN_ST_INO = Constant('STAT64_HAS_BROKEN_ST_INO',1)
S_IFMT = Constant('S_IFMT',0o0170000)
S_IFSOCK = Constant('S_IFSOCK',0o140000)
@@ -945,84 +1103,7 @@ S_IXOTH = Constant('S_IXOTH',0o0001)
S_IREAD = Constant('S_IREAD',0o0400)
S_IWRITE = Constant('S_IWRITE',0o0200)
S_IEXEC = Constant('S_IEXEC',0o0100)
F_LINUX_SPECIFIC_BASE = Constant('F_LINUX_SPECIFIC_BASE',1024)
O_ACCMODE = Constant('O_ACCMODE',0o003)
O_RDONLY = Constant('O_RDONLY',0o0)
O_WRONLY = Constant('O_WRONLY',0o1)
O_RDWR = Constant('O_RDWR',0o2)
O_CREAT = Constant('O_CREAT',0o100)
O_EXCL = Constant('O_EXCL',0o200)
O_NOCTTY = Constant('O_NOCTTY',0o400)
O_TRUNC = Constant('O_TRUNC',0o1000)
O_APPEND = Constant('O_APPEND',0o2000)
O_NONBLOCK = Constant('O_NONBLOCK',0o4000)
O_NDELAY = Constant('O_NDELAY',0o4000)
O_SYNC = Constant('O_SYNC',0o10000)
FASYNC = Constant('FASYNC',0o20000)
O_DIRECTORY = Constant('O_DIRECTORY',0o40000)
O_NOFOLLOW = Constant('O_NOFOLLOW',0o100000)
O_DIRECT = Constant('O_DIRECT',0o200000)
O_LARGEFILE = Constant('O_LARGEFILE',0o400000)
O_NOATIME = Constant('O_NOATIME',0o1000000)
F_DUPFD = Constant('F_DUPFD',0)
F_GETFD = Constant('F_GETFD',1)
F_SETFD = Constant('F_SETFD',2)
F_GETFL = Constant('F_GETFL',3)
F_SETFL = Constant('F_SETFL',4)
F_GETLK = Constant('F_GETLK',5)
F_SETLK = Constant('F_SETLK',6)
F_SETLKW = Constant('F_SETLKW',7)
F_SETOWN = Constant('F_SETOWN',8)
F_GETOWN = Constant('F_GETOWN',9)
F_SETSIG = Constant('F_SETSIG',10)
F_GETSIG = Constant('F_GETSIG',11)
F_GETLK64 = Constant('F_GETLK64',12)
F_SETLK64 = Constant('F_SETLK64',13)
F_SETLKW64 = Constant('F_SETLKW64',14)
FD_CLOEXEC = Constant('FD_CLOEXEC',1)
F_RDLCK = Constant('F_RDLCK',0)
F_WRLCK = Constant('F_WRLCK',1)
F_UNLCK = Constant('F_UNLCK',2)
F_EXLCK = Constant('F_EXLCK',4)
F_SHLCK = Constant('F_SHLCK',8)
F_INPROGRESS = Constant('F_INPROGRESS',16)
LOCK_SH = Constant('LOCK_SH',1)
LOCK_EX = Constant('LOCK_EX',2)
LOCK_NB = Constant('LOCK_NB',4)
LOCK_UN = Constant('LOCK_UN',8)
LOCK_MAND = Constant('LOCK_MAND',32)
LOCK_READ = Constant('LOCK_READ',64)
LOCK_WRITE = Constant('LOCK_WRITE',128)
LOCK_RW = Constant('LOCK_RW',192)
O_ASYNC = Constant('O_ASYNC',0o20000)
MREMAP_MAYMOVE = Constant('MREMAP_MAYMOVE',1)
MREMAP_FIXED = Constant('MREMAP_FIXED',2)
PROT_READ = Constant('PROT_READ',0x1)
PROT_WRITE = Constant('PROT_WRITE',0x2)
PROT_EXEC = Constant('PROT_EXEC',0x4)
PROT_NONE = Constant('PROT_NONE',0x0)
MAP_SHARED = Constant('MAP_SHARED',0x01)
MAP_PRIVATE = Constant('MAP_PRIVATE',0x02)
MAP_FIXED = Constant('MAP_FIXED',0x10)
MAP_ANONYMOUS = Constant('MAP_ANONYMOUS',0x20)
MAP_GROWSDOWN = Constant('MAP_GROWSDOWN',0x0100)
MAP_DENYWRITE = Constant('MAP_DENYWRITE',0x0800)
MAP_EXECUTABLE = Constant('MAP_EXECUTABLE',0x1000)
MAP_LOCKED = Constant('MAP_LOCKED',0x2000)
MAP_NORESERVE = Constant('MAP_NORESERVE',0x4000)
MAP_POPULATE = Constant('MAP_POPULATE',0x8000)
MS_ASYNC = Constant('MS_ASYNC',1)
MS_INVALIDATE = Constant('MS_INVALIDATE',2)
MS_SYNC = Constant('MS_SYNC',4)
MCL_CURRENT = Constant('MCL_CURRENT',1)
MCL_FUTURE = Constant('MCL_FUTURE',2)
MADV_NORMAL = Constant('MADV_NORMAL',0x0)
MADV_RANDOM = Constant('MADV_RANDOM',0x1)
MADV_SEQUENTIAL = Constant('MADV_SEQUENTIAL',0x2)
MADV_WILLNEED = Constant('MADV_WILLNEED',0x3)
MADV_DONTNEED = Constant('MADV_DONTNEED',0x4)
MAP_ANON = Constant('MAP_ANON',0x20)
MAP_FILE = Constant('MAP_FILE',0)
_SYS_UIO = Constant('_SYS_UIO',1)
SOL_SOCKET = Constant('SOL_SOCKET',1)
SO_DEBUG = Constant('SO_DEBUG',1)
SO_REUSEADDR = Constant('SO_REUSEADDR',2)
@@ -1038,29 +1119,64 @@ SO_NO_CHECK = Constant('SO_NO_CHECK',11)
SO_PRIORITY = Constant('SO_PRIORITY',12)
SO_LINGER = Constant('SO_LINGER',13)
SO_BSDCOMPAT = Constant('SO_BSDCOMPAT',14)
SO_REUSEPORT = Constant('SO_REUSEPORT',15)
SO_PASSCRED = Constant('SO_PASSCRED',16)
SO_PEERCRED = Constant('SO_PEERCRED',17)
SO_RCVLOWAT = Constant('SO_RCVLOWAT',18)
SO_SNDLOWAT = Constant('SO_SNDLOWAT',19)
SO_RCVTIMEO = Constant('SO_RCVTIMEO',20)
SO_SNDTIMEO = Constant('SO_SNDTIMEO',21)
SO_ACCEPTCONN = Constant('SO_ACCEPTCONN',30)
SO_SNDBUFFORCE = Constant('SO_SNDBUFFORCE',32)
SO_RCVBUFFORCE = Constant('SO_RCVBUFFORCE',33)
SO_SECURITY_AUTHENTICATION = Constant('SO_SECURITY_AUTHENTICATION',22)
SO_SECURITY_ENCRYPTION_TRANSPORT = Constant('SO_SECURITY_ENCRYPTION_TRANSPORT',23)
SO_SECURITY_ENCRYPTION_NETWORK = Constant('SO_SECURITY_ENCRYPTION_NETWORK',24)
SO_BINDTODEVICE = Constant('SO_BINDTODEVICE',25)
SO_ATTACH_FILTER = Constant('SO_ATTACH_FILTER',26)
SO_DETACH_FILTER = Constant('SO_DETACH_FILTER',27)
SO_GET_FILTER = Constant('SO_GET_FILTER',26)
SO_PEERNAME = Constant('SO_PEERNAME',28)
SO_TIMESTAMP = Constant('SO_TIMESTAMP',29)
SCM_TIMESTAMP = Constant('SCM_TIMESTAMP',29)
SO_ACCEPTCONN = Constant('SO_ACCEPTCONN',30)
SO_PEERSEC = Constant('SO_PEERSEC',31)
SO_SNDBUFFORCE = Constant('SO_SNDBUFFORCE',32)
SO_RCVBUFFORCE = Constant('SO_RCVBUFFORCE',33)
SO_PASSSEC = Constant('SO_PASSSEC',34)
SO_TIMESTAMPNS = Constant('SO_TIMESTAMPNS',35)
SCM_TIMESTAMPNS = Constant('SCM_TIMESTAMPNS',35)
SO_MARK = Constant('SO_MARK',36)
SO_TIMESTAMPING = Constant('SO_TIMESTAMPING',37)
SCM_TIMESTAMPING = Constant('SCM_TIMESTAMPING',37)
SO_PROTOCOL = Constant('SO_PROTOCOL',38)
SO_DOMAIN = Constant('SO_DOMAIN',39)
SO_RXQ_OVFL = Constant('SO_RXQ_OVFL',40)
SO_WIFI_STATUS = Constant('SO_WIFI_STATUS',41)
SCM_WIFI_STATUS = Constant('SCM_WIFI_STATUS',41)
SO_PEEK_OFF = Constant('SO_PEEK_OFF',42)
SO_NOFCS = Constant('SO_NOFCS',43)
SO_LOCK_FILTER = Constant('SO_LOCK_FILTER',44)
SO_SELECT_ERR_QUEUE = Constant('SO_SELECT_ERR_QUEUE',45)
SO_BUSY_POLL = Constant('SO_BUSY_POLL',46)
SO_MAX_PACING_RATE = Constant('SO_MAX_PACING_RATE',47)
SO_BPF_EXTENSIONS = Constant('SO_BPF_EXTENSIONS',48)
SO_INCOMING_CPU = Constant('SO_INCOMING_CPU',49)
SO_ATTACH_BPF = Constant('SO_ATTACH_BPF',50)
SO_DETACH_BPF = Constant('SO_DETACH_BPF',27)
SO_ATTACH_REUSEPORT_CBPF = Constant('SO_ATTACH_REUSEPORT_CBPF',51)
SO_ATTACH_REUSEPORT_EBPF = Constant('SO_ATTACH_REUSEPORT_EBPF',52)
SO_CNX_ADVICE = Constant('SO_CNX_ADVICE',53)
SCM_TIMESTAMPING_OPT_STATS = Constant('SCM_TIMESTAMPING_OPT_STATS',54)
SO_MEMINFO = Constant('SO_MEMINFO',55)
SO_INCOMING_NAPI_ID = Constant('SO_INCOMING_NAPI_ID',56)
SO_COOKIE = Constant('SO_COOKIE',57)
SCM_TIMESTAMPING_PKTINFO = Constant('SCM_TIMESTAMPING_PKTINFO',58)
SO_PEERGROUPS = Constant('SO_PEERGROUPS',59)
SO_ZEROCOPY = Constant('SO_ZEROCOPY',60)
SOCK_STREAM = Constant('SOCK_STREAM',1)
SOCK_DGRAM = Constant('SOCK_DGRAM',2)
SOCK_RAW = Constant('SOCK_RAW',3)
SOCK_RDM = Constant('SOCK_RDM',4)
SOCK_SEQPACKET = Constant('SOCK_SEQPACKET',5)
SOCK_DCCP = Constant('SOCK_DCCP',6)
SOCK_PACKET = Constant('SOCK_PACKET',10)
UIO_FASTIOV = Constant('UIO_FASTIOV',8)
UIO_MAXIOV = Constant('UIO_MAXIOV',1024)
@@ -1094,7 +1210,25 @@ AF_SNA = Constant('AF_SNA',22)
AF_IRDA = Constant('AF_IRDA',23)
AF_PPPOX = Constant('AF_PPPOX',24)
AF_WANPIPE = Constant('AF_WANPIPE',25)
AF_MAX = Constant('AF_MAX',32)
AF_LLC = Constant('AF_LLC',26)
AF_IB = Constant('AF_IB',27)
AF_MPLS = Constant('AF_MPLS',28)
AF_CAN = Constant('AF_CAN',29)
AF_TIPC = Constant('AF_TIPC',30)
AF_BLUETOOTH = Constant('AF_BLUETOOTH',31)
AF_IUCV = Constant('AF_IUCV',32)
AF_RXRPC = Constant('AF_RXRPC',33)
AF_ISDN = Constant('AF_ISDN',34)
AF_PHONET = Constant('AF_PHONET',35)
AF_IEEE802154 = Constant('AF_IEEE802154',36)
AF_CAIF = Constant('AF_CAIF',37)
AF_ALG = Constant('AF_ALG',38)
AF_NFC = Constant('AF_NFC',39)
AF_VSOCK = Constant('AF_VSOCK',40)
AF_KCM = Constant('AF_KCM',41)
AF_QIPCRTR = Constant('AF_QIPCRTR',42)
AF_SMC = Constant('AF_SMC',43)
AF_MAX = Constant('AF_MAX',44)
PF_UNSPEC = Constant('PF_UNSPEC',0)
PF_UNIX = Constant('PF_UNIX',1)
PF_LOCAL = Constant('PF_LOCAL',1)
@@ -1122,7 +1256,25 @@ PF_SNA = Constant('PF_SNA',22)
PF_IRDA = Constant('PF_IRDA',23)
PF_PPPOX = Constant('PF_PPPOX',24)
PF_WANPIPE = Constant('PF_WANPIPE',25)
PF_MAX = Constant('PF_MAX',32)
PF_LLC = Constant('PF_LLC',26)
PF_IB = Constant('PF_IB',27)
PF_MPLS = Constant('PF_MPLS',28)
PF_CAN = Constant('PF_CAN',29)
PF_TIPC = Constant('PF_TIPC',30)
PF_BLUETOOTH = Constant('PF_BLUETOOTH',31)
PF_IUCV = Constant('PF_IUCV',32)
PF_RXRPC = Constant('PF_RXRPC',33)
PF_ISDN = Constant('PF_ISDN',34)
PF_PHONET = Constant('PF_PHONET',35)
PF_IEEE802154 = Constant('PF_IEEE802154',36)
PF_CAIF = Constant('PF_CAIF',37)
PF_ALG = Constant('PF_ALG',38)
PF_NFC = Constant('PF_NFC',39)
PF_VSOCK = Constant('PF_VSOCK',40)
PF_KCM = Constant('PF_KCM',41)
PF_QIPCRTR = Constant('PF_QIPCRTR',42)
PF_SMC = Constant('PF_SMC',43)
PF_MAX = Constant('PF_MAX',44)
SOMAXCONN = Constant('SOMAXCONN',128)
MSG_OOB = Constant('MSG_OOB',1)
MSG_PEEK = Constant('MSG_PEEK',2)
@@ -1135,18 +1287,26 @@ MSG_DONTWAIT = Constant('MSG_DONTWAIT',0x40)
MSG_EOR = Constant('MSG_EOR',0x80)
MSG_WAITALL = Constant('MSG_WAITALL',0x100)
MSG_FIN = Constant('MSG_FIN',0x200)
MSG_EOF = Constant('MSG_EOF',0x200)
MSG_SYN = Constant('MSG_SYN',0x400)
MSG_CONFIRM = Constant('MSG_CONFIRM',0x800)
MSG_RST = Constant('MSG_RST',0x1000)
MSG_ERRQUEUE = Constant('MSG_ERRQUEUE',0x2000)
MSG_NOSIGNAL = Constant('MSG_NOSIGNAL',0x4000)
MSG_MORE = Constant('MSG_MORE',0x8000)
MSG_WAITFORONE = Constant('MSG_WAITFORONE',0x10000)
MSG_SENDPAGE_NOTLAST = Constant('MSG_SENDPAGE_NOTLAST',0x20000)
MSG_BATCH = Constant('MSG_BATCH',0x40000)
MSG_EOF = Constant('MSG_EOF',0x200)
MSG_ZEROCOPY = Constant('MSG_ZEROCOPY',0x4000000)
MSG_FASTOPEN = Constant('MSG_FASTOPEN',0x20000000)
MSG_CMSG_CLOEXEC = Constant('MSG_CMSG_CLOEXEC',0x40000000)
SOL_IP = Constant('SOL_IP',0)
SOL_TCP = Constant('SOL_TCP',6)
SOL_UDP = Constant('SOL_UDP',17)
SOL_IPV6 = Constant('SOL_IPV6',41)
SOL_ICMPV6 = Constant('SOL_ICMPV6',58)
SOL_SCTP = Constant('SOL_SCTP',132)
SOL_UDPLITE = Constant('SOL_UDPLITE',136)
SOL_RAW = Constant('SOL_RAW',255)
SOL_IPX = Constant('SOL_IPX',256)
SOL_AX25 = Constant('SOL_AX25',257)
@@ -1159,6 +1319,22 @@ SOL_PACKET = Constant('SOL_PACKET',263)
SOL_ATM = Constant('SOL_ATM',264)
SOL_AAL = Constant('SOL_AAL',265)
SOL_IRDA = Constant('SOL_IRDA',266)
SOL_NETBEUI = Constant('SOL_NETBEUI',267)
SOL_LLC = Constant('SOL_LLC',268)
SOL_DCCP = Constant('SOL_DCCP',269)
SOL_NETLINK = Constant('SOL_NETLINK',270)
SOL_TIPC = Constant('SOL_TIPC',271)
SOL_RXRPC = Constant('SOL_RXRPC',272)
SOL_PPPOL2TP = Constant('SOL_PPPOL2TP',273)
SOL_BLUETOOTH = Constant('SOL_BLUETOOTH',274)
SOL_PNPIPE = Constant('SOL_PNPIPE',275)
SOL_RDS = Constant('SOL_RDS',276)
SOL_IUCV = Constant('SOL_IUCV',277)
SOL_CAIF = Constant('SOL_CAIF',278)
SOL_ALG = Constant('SOL_ALG',279)
SOL_NFC = Constant('SOL_NFC',280)
SOL_KCM = Constant('SOL_KCM',281)
SOL_TLS = Constant('SOL_TLS',282)
IPX_TYPE = Constant('IPX_TYPE',1)
SHUT_RD = Constant('SHUT_RD',0)
SHUT_WR = Constant('SHUT_WR',1)
@@ -1182,6 +1358,10 @@ EAI_SYSTEM = Constant('EAI_SYSTEM',-11)
AI_NUMERICHOST = Constant('AI_NUMERICHOST',1)
AI_CANONNAME = Constant('AI_CANONNAME',2)
AI_PASSIVE = Constant('AI_PASSIVE',4)
AI_NUMERICSERV = Constant('AI_NUMERICSERV',8)
AI_ADDRCONFIG = Constant('AI_ADDRCONFIG',16)
AI_V4MAPPED = Constant('AI_V4MAPPED',32)
AI_ALL = Constant('AI_ALL',64)
SIOCADDRT = Constant('SIOCADDRT',0x890B)
SIOCDELRT = Constant('SIOCDELRT',0x890C)
SIOCRTMSG = Constant('SIOCRTMSG',0x890D)
@@ -1238,6 +1418,130 @@ SIOCSIFMAP = Constant('SIOCSIFMAP',0x8971)
SIOCADDDLCI = Constant('SIOCADDDLCI',0x8980)
SIOCDELDLCI = Constant('SIOCDELDLCI',0x8981)
SIOCDEVPRIVATE = Constant('SIOCDEVPRIVATE',0x89F0)
F_LINUX_SPECIFIC_BASE = Constant('F_LINUX_SPECIFIC_BASE',1024)
O_ACCMODE = Constant('O_ACCMODE',0o003)
O_RDONLY = Constant('O_RDONLY',0o0)
O_WRONLY = Constant('O_WRONLY',0o1)
O_RDWR = Constant('O_RDWR',0o2)
O_CREAT = Constant('O_CREAT',0o100)
O_EXCL = Constant('O_EXCL',0o200)
O_NOCTTY = Constant('O_NOCTTY',0o400)
O_TRUNC = Constant('O_TRUNC',0o1000)
O_APPEND = Constant('O_APPEND',0o2000)
O_NONBLOCK = Constant('O_NONBLOCK',0o4000)
O_NDELAY = Constant('O_NDELAY',0o4000)
O_DSYNC = Constant('O_DSYNC',0o10000)
FASYNC = Constant('FASYNC',0o20000)
O_DIRECTORY = Constant('O_DIRECTORY',0o40000)
O_NOFOLLOW = Constant('O_NOFOLLOW',0o100000)
O_DIRECT = Constant('O_DIRECT',0o200000)
O_LARGEFILE = Constant('O_LARGEFILE',0o400000)
O_NOATIME = Constant('O_NOATIME',0o1000000)
O_CLOEXEC = Constant('O_CLOEXEC',0o2000000)
O_SYNC = Constant('O_SYNC',(0o10000|0o4000000))
O_PATH = Constant('O_PATH',0o10000000)
__O_TMPFILE = Constant('__O_TMPFILE',0o20000000)
F_DUPFD = Constant('F_DUPFD',0)
F_GETFD = Constant('F_GETFD',1)
F_SETFD = Constant('F_SETFD',2)
F_GETFL = Constant('F_GETFL',3)
F_SETFL = Constant('F_SETFL',4)
F_GETLK = Constant('F_GETLK',5)
F_SETLK = Constant('F_SETLK',6)
F_SETLKW = Constant('F_SETLKW',7)
F_SETOWN = Constant('F_SETOWN',8)
F_GETOWN = Constant('F_GETOWN',9)
F_SETSIG = Constant('F_SETSIG',10)
F_GETSIG = Constant('F_GETSIG',11)
F_GETLK64 = Constant('F_GETLK64',12)
F_SETLK64 = Constant('F_SETLK64',13)
F_SETLKW64 = Constant('F_SETLKW64',14)
FD_CLOEXEC = Constant('FD_CLOEXEC',1)
F_RDLCK = Constant('F_RDLCK',0)
F_WRLCK = Constant('F_WRLCK',1)
F_UNLCK = Constant('F_UNLCK',2)
F_EXLCK = Constant('F_EXLCK',4)
F_SHLCK = Constant('F_SHLCK',8)
F_INPROGRESS = Constant('F_INPROGRESS',16)
LOCK_SH = Constant('LOCK_SH',1)
LOCK_EX = Constant('LOCK_EX',2)
LOCK_NB = Constant('LOCK_NB',4)
LOCK_UN = Constant('LOCK_UN',8)
LOCK_MAND = Constant('LOCK_MAND',32)
LOCK_READ = Constant('LOCK_READ',64)
LOCK_WRITE = Constant('LOCK_WRITE',128)
LOCK_RW = Constant('LOCK_RW',192)
O_TMPFILE = Constant('O_TMPFILE',(0o20000000 | 0o40000))
O_ASYNC = Constant('O_ASYNC',0o20000)
F_SETOWN_EX = Constant('F_SETOWN_EX',15)
F_GETOWN_EX = Constant('F_GETOWN_EX',16)
F_GETOWNER_UIDS = Constant('F_GETOWNER_UIDS',17)
F_OFD_GETLK = Constant('F_OFD_GETLK',36)
F_OFD_SETLK = Constant('F_OFD_SETLK',37)
F_OFD_SETLKW = Constant('F_OFD_SETLKW',38)
F_OWNER_TID = Constant('F_OWNER_TID',0)
F_OWNER_PID = Constant('F_OWNER_PID',1)
F_OWNER_PGRP = Constant('F_OWNER_PGRP',2)
AT_FDCWD = Constant('AT_FDCWD',-100)
AT_SYMLINK_NOFOLLOW = Constant('AT_SYMLINK_NOFOLLOW',0x100)
AT_REMOVEDIR = Constant('AT_REMOVEDIR',0x200)
AT_SYMLINK_FOLLOW = Constant('AT_SYMLINK_FOLLOW',0x400)
AT_NO_AUTOMOUNT = Constant('AT_NO_AUTOMOUNT',0x800)
AT_EMPTY_PATH = Constant('AT_EMPTY_PATH',0x1000)
AT_EACCESS = Constant('AT_EACCESS',0x200)
MREMAP_MAYMOVE = Constant('MREMAP_MAYMOVE',1)
MREMAP_FIXED = Constant('MREMAP_FIXED',2)
PROT_READ = Constant('PROT_READ',0x1)
PROT_WRITE = Constant('PROT_WRITE',0x2)
PROT_EXEC = Constant('PROT_EXEC',0x4)
PROT_SEM = Constant('PROT_SEM',0x8)
PROT_NONE = Constant('PROT_NONE',0x0)
PROT_GROWSDOWN = Constant('PROT_GROWSDOWN',0x01000000)
PROT_GROWSUP = Constant('PROT_GROWSUP',0x02000000)
MAP_SHARED = Constant('MAP_SHARED',0x01)
MAP_PRIVATE = Constant('MAP_PRIVATE',0x02)
MAP_TYPE = Constant('MAP_TYPE',0xf)
MADV_REMOVE = Constant('MADV_REMOVE',9)
MADV_DONTFORK = Constant('MADV_DONTFORK',10)
MADV_DOFORK = Constant('MADV_DOFORK',11)
MADV_MERGEABLE = Constant('MADV_MERGEABLE',12)
MADV_UNMERGEABLE = Constant('MADV_UNMERGEABLE',13)
MADV_HUGEPAGE = Constant('MADV_HUGEPAGE',14)
MADV_NOHUGEPAGE = Constant('MADV_NOHUGEPAGE',15)
MADV_DONTDUMP = Constant('MADV_DONTDUMP',16)
MADV_DODUMP = Constant('MADV_DODUMP',17)
MADV_HWPOISON = Constant('MADV_HWPOISON',100)
MADV_SOFT_OFFLINE = Constant('MADV_SOFT_OFFLINE',101)
MLOCK_ONFAULT = Constant('MLOCK_ONFAULT',1)
MAP_FIXED = Constant('MAP_FIXED',0x10)
MAP_ANONYMOUS = Constant('MAP_ANONYMOUS',0x20)
MAP_GROWSDOWN = Constant('MAP_GROWSDOWN',0x0100)
MAP_DENYWRITE = Constant('MAP_DENYWRITE',0x0800)
MAP_EXECUTABLE = Constant('MAP_EXECUTABLE',0x1000)
MAP_LOCKED = Constant('MAP_LOCKED',0x2000)
MAP_NORESERVE = Constant('MAP_NORESERVE',0x4000)
MAP_POPULATE = Constant('MAP_POPULATE',0x8000)
MAP_NONBLOCK = Constant('MAP_NONBLOCK',0x10000)
MAP_STACK = Constant('MAP_STACK',0x20000)
MAP_HUGETLB = Constant('MAP_HUGETLB',0x40000)
MS_ASYNC = Constant('MS_ASYNC',1)
MS_INVALIDATE = Constant('MS_INVALIDATE',2)
MS_SYNC = Constant('MS_SYNC',4)
MCL_CURRENT = Constant('MCL_CURRENT',1)
MCL_FUTURE = Constant('MCL_FUTURE',2)
MCL_ONFAULT = Constant('MCL_ONFAULT',4)
MADV_NORMAL = Constant('MADV_NORMAL',0x0)
MADV_RANDOM = Constant('MADV_RANDOM',0x1)
MADV_SEQUENTIAL = Constant('MADV_SEQUENTIAL',0x2)
MADV_WILLNEED = Constant('MADV_WILLNEED',0x3)
MADV_DONTNEED = Constant('MADV_DONTNEED',0x4)
MAP_ANON = Constant('MAP_ANON',0x20)
MAP_FILE = Constant('MAP_FILE',0)
POSIX_MADV_NORMAL = Constant('POSIX_MADV_NORMAL',0x0)
POSIX_MADV_SEQUENTIAL = Constant('POSIX_MADV_SEQUENTIAL',0x2)
POSIX_MADV_RANDOM = Constant('POSIX_MADV_RANDOM',0x1)
POSIX_MADV_WILLNEED = Constant('POSIX_MADV_WILLNEED',0x3)
POSIX_MADV_DONTNEED = Constant('POSIX_MADV_DONTNEED',0x4)
PTRACE_TRACEME = Constant('PTRACE_TRACEME',0)
PTRACE_PEEKTEXT = Constant('PTRACE_PEEKTEXT',1)
PTRACE_PEEKDATA = Constant('PTRACE_PEEKDATA',2)
@@ -1303,6 +1607,7 @@ CC_Z_BIT = Constant('CC_Z_BIT',(1 << 30))
CC_N_BIT = Constant('CC_N_BIT',(1 << 31))
PCMASK = Constant('PCMASK',0)
SYS_accept = Constant('SYS_accept',(0+285))
SYS_accept4 = Constant('SYS_accept4',(0+366))
SYS_access = Constant('SYS_access',(0+ 33))
SYS_acct = Constant('SYS_acct',(0+ 51))
SYS_add_key = Constant('SYS_add_key',(0+309))
@@ -1312,6 +1617,7 @@ SYS_arm_fadvise64_64 = Constant('SYS_arm_fadvise64_64',(0+270))
SYS_arm_sync_file_range = Constant('SYS_arm_sync_file_range',(0+341))
SYS_bdflush = Constant('SYS_bdflush',(0+134))
SYS_bind = Constant('SYS_bind',(0+282))
SYS_bpf = Constant('SYS_bpf',(0+386))
SYS_brk = Constant('SYS_brk',(0+ 45))
SYS_capget = Constant('SYS_capget',(0+184))
SYS_capset = Constant('SYS_capset',(0+185))
@@ -1320,26 +1626,40 @@ SYS_chmod = Constant('SYS_chmod',(0+ 15))
SYS_chown = Constant('SYS_chown',(0+182))
SYS_chown32 = Constant('SYS_chown32',(0+212))
SYS_chroot = Constant('SYS_chroot',(0+ 61))
SYS_clock_adjtime = Constant('SYS_clock_adjtime',(0+372))
SYS_clock_adjtime64 = Constant('SYS_clock_adjtime64',(0 + 405))
SYS_clock_getres = Constant('SYS_clock_getres',(0+264))
SYS_clock_getres_time64 = Constant('SYS_clock_getres_time64',(0 + 406))
SYS_clock_gettime = Constant('SYS_clock_gettime',(0+263))
SYS_clock_gettime64 = Constant('SYS_clock_gettime64',(0 + 403))
SYS_clock_nanosleep = Constant('SYS_clock_nanosleep',(0+265))
SYS_clock_nanosleep_time64 = Constant('SYS_clock_nanosleep_time64',(0 + 407))
SYS_clock_settime = Constant('SYS_clock_settime',(0+262))
SYS_clock_settime64 = Constant('SYS_clock_settime64',(0 + 404))
SYS_clone = Constant('SYS_clone',(0+120))
SYS_clone3 = Constant('SYS_clone3',(0 + 435))
SYS_close = Constant('SYS_close',(0+ 6))
SYS_connect = Constant('SYS_connect',(0+283))
SYS_copy_file_range = Constant('SYS_copy_file_range',(0+391))
SYS_creat = Constant('SYS_creat',(0+ 8))
SYS_delete_module = Constant('SYS_delete_module',(0+129))
SYS_dup = Constant('SYS_dup',(0+ 41))
SYS_dup2 = Constant('SYS_dup2',(0+ 63))
SYS_dup3 = Constant('SYS_dup3',(0+358))
SYS_epoll_create = Constant('SYS_epoll_create',(0+250))
SYS_epoll_create1 = Constant('SYS_epoll_create1',(0+357))
SYS_epoll_ctl = Constant('SYS_epoll_ctl',(0+251))
SYS_epoll_wait = Constant('SYS_epoll_wait',(0+252))
SYS_eventfd = Constant('SYS_eventfd',(0+351))
SYS_eventfd2 = Constant('SYS_eventfd2',(0+356))
SYS_execve = Constant('SYS_execve',(0+ 11))
SYS_execveat = Constant('SYS_execveat',(0+387))
SYS_exit = Constant('SYS_exit',(0+ 1))
SYS_exit_group = Constant('SYS_exit_group',(0+248))
SYS_faccessat = Constant('SYS_faccessat',(0+334))
SYS_fallocate = Constant('SYS_fallocate',(0+352))
SYS_fanotify_init = Constant('SYS_fanotify_init',(0+367))
SYS_fanotify_mark = Constant('SYS_fanotify_mark',(0+368))
SYS_fchdir = Constant('SYS_fchdir',(0+133))
SYS_fchmod = Constant('SYS_fchmod',(0+ 94))
SYS_fchmodat = Constant('SYS_fchmodat',(0+333))
@@ -1350,11 +1670,16 @@ SYS_fcntl = Constant('SYS_fcntl',(0+ 55))
SYS_fcntl64 = Constant('SYS_fcntl64',(0+221))
SYS_fdatasync = Constant('SYS_fdatasync',(0+148))
SYS_fgetxattr = Constant('SYS_fgetxattr',(0+231))
SYS_finit_module = Constant('SYS_finit_module',(0+379))
SYS_flistxattr = Constant('SYS_flistxattr',(0+234))
SYS_flock = Constant('SYS_flock',(0+143))
SYS_fork = Constant('SYS_fork',(0+ 2))
SYS_fremovexattr = Constant('SYS_fremovexattr',(0+237))
SYS_fsconfig = Constant('SYS_fsconfig',(0 + 431))
SYS_fsetxattr = Constant('SYS_fsetxattr',(0+228))
SYS_fsmount = Constant('SYS_fsmount',(0 + 432))
SYS_fsopen = Constant('SYS_fsopen',(0 + 430))
SYS_fspick = Constant('SYS_fspick',(0 + 433))
SYS_fstat = Constant('SYS_fstat',(0+108))
SYS_fstat64 = Constant('SYS_fstat64',(0+197))
SYS_fstatat64 = Constant('SYS_fstatat64',(0+327))
@@ -1364,6 +1689,7 @@ SYS_fsync = Constant('SYS_fsync',(0+118))
SYS_ftruncate = Constant('SYS_ftruncate',(0+ 93))
SYS_ftruncate64 = Constant('SYS_ftruncate64',(0+194))
SYS_futex = Constant('SYS_futex',(0+240))
SYS_futex_time64 = Constant('SYS_futex_time64',(0 + 422))
SYS_futimesat = Constant('SYS_futimesat',(0+326))
SYS_getcpu = Constant('SYS_getcpu',(0+345))
SYS_getcwd = Constant('SYS_getcwd',(0+183))
@@ -1385,6 +1711,7 @@ SYS_getpgrp = Constant('SYS_getpgrp',(0+ 65))
SYS_getpid = Constant('SYS_getpid',(0+ 20))
SYS_getppid = Constant('SYS_getppid',(0+ 64))
SYS_getpriority = Constant('SYS_getpriority',(0+ 96))
SYS_getrandom = Constant('SYS_getrandom',(0+384))
SYS_getresgid = Constant('SYS_getresgid',(0+171))
SYS_getresgid32 = Constant('SYS_getresgid32',(0+211))
SYS_getresuid = Constant('SYS_getresuid',(0+165))
@@ -1403,16 +1730,24 @@ SYS_getxattr = Constant('SYS_getxattr',(0+229))
SYS_init_module = Constant('SYS_init_module',(0+128))
SYS_inotify_add_watch = Constant('SYS_inotify_add_watch',(0+317))
SYS_inotify_init = Constant('SYS_inotify_init',(0+316))
SYS_inotify_init1 = Constant('SYS_inotify_init1',(0+360))
SYS_inotify_rm_watch = Constant('SYS_inotify_rm_watch',(0+318))
SYS_io_cancel = Constant('SYS_io_cancel',(0+247))
SYS_ioctl = Constant('SYS_ioctl',(0+ 54))
SYS_io_destroy = Constant('SYS_io_destroy',(0+244))
SYS_io_getevents = Constant('SYS_io_getevents',(0+245))
SYS_io_pgetevents = Constant('SYS_io_pgetevents',(0 + 399))
SYS_io_pgetevents_time64 = Constant('SYS_io_pgetevents_time64',(0 + 416))
SYS_ioprio_get = Constant('SYS_ioprio_get',(0+315))
SYS_ioprio_set = Constant('SYS_ioprio_set',(0+314))
SYS_io_setup = Constant('SYS_io_setup',(0+243))
SYS_io_submit = Constant('SYS_io_submit',(0+246))
SYS_io_uring_enter = Constant('SYS_io_uring_enter',(0 + 426))
SYS_io_uring_register = Constant('SYS_io_uring_register',(0 + 427))
SYS_io_uring_setup = Constant('SYS_io_uring_setup',(0 + 425))
SYS_ipc = Constant('SYS_ipc',(0+117))
SYS_kcmp = Constant('SYS_kcmp',(0+378))
SYS_kexec_file_load = Constant('SYS_kexec_file_load',(0 + 401))
SYS_kexec_load = Constant('SYS_kexec_load',(0+347))
SYS_keyctl = Constant('SYS_keyctl',(0+311))
SYS_kill = Constant('SYS_kill',(0+ 37))
@@ -1433,23 +1768,30 @@ SYS_lstat = Constant('SYS_lstat',(0+107))
SYS_lstat64 = Constant('SYS_lstat64',(0+196))
SYS_madvise = Constant('SYS_madvise',(0+220))
SYS_mbind = Constant('SYS_mbind',(0+319))
SYS_membarrier = Constant('SYS_membarrier',(0+389))
SYS_memfd_create = Constant('SYS_memfd_create',(0+385))
SYS_migrate_pages = Constant('SYS_migrate_pages',(0 + 400))
SYS_mincore = Constant('SYS_mincore',(0+219))
SYS_mkdir = Constant('SYS_mkdir',(0+ 39))
SYS_mkdirat = Constant('SYS_mkdirat',(0+323))
SYS_mknod = Constant('SYS_mknod',(0+ 14))
SYS_mknodat = Constant('SYS_mknodat',(0+324))
SYS_mlock = Constant('SYS_mlock',(0+150))
SYS_mlock2 = Constant('SYS_mlock2',(0+390))
SYS_mlockall = Constant('SYS_mlockall',(0+152))
SYS_mmap = Constant('SYS_mmap',(0+ 90))
SYS_mmap2 = Constant('SYS_mmap2',(0+192))
SYS_mount = Constant('SYS_mount',(0+ 21))
SYS_move_mount = Constant('SYS_move_mount',(0 + 429))
SYS_move_pages = Constant('SYS_move_pages',(0+344))
SYS_mprotect = Constant('SYS_mprotect',(0+125))
SYS_mq_getsetattr = Constant('SYS_mq_getsetattr',(0+279))
SYS_mq_notify = Constant('SYS_mq_notify',(0+278))
SYS_mq_open = Constant('SYS_mq_open',(0+274))
SYS_mq_timedreceive = Constant('SYS_mq_timedreceive',(0+277))
SYS_mq_timedreceive_time64 = Constant('SYS_mq_timedreceive_time64',(0 + 419))
SYS_mq_timedsend = Constant('SYS_mq_timedsend',(0+276))
SYS_mq_timedsend_time64 = Constant('SYS_mq_timedsend_time64',(0 + 418))
SYS_mq_unlink = Constant('SYS_mq_unlink',(0+275))
SYS_mremap = Constant('SYS_mremap',(0+163))
SYS_msgctl = Constant('SYS_msgctl',(0+304))
@@ -1460,6 +1802,7 @@ SYS_msync = Constant('SYS_msync',(0+144))
SYS_munlock = Constant('SYS_munlock',(0+151))
SYS_munlockall = Constant('SYS_munlockall',(0+153))
SYS_munmap = Constant('SYS_munmap',(0+ 91))
SYS_name_to_handle_at = Constant('SYS_name_to_handle_at',(0+370))
SYS_nanosleep = Constant('SYS_nanosleep',(0+162))
SYS__newselect = Constant('SYS__newselect',(0+142))
SYS_nfsservctl = Constant('SYS_nfsservctl',(0+169))
@@ -1467,18 +1810,38 @@ SYS_nice = Constant('SYS_nice',(0+ 34))
SYS_OABI_SYSCALL_BASE = Constant('SYS_OABI_SYSCALL_BASE',0x900000)
SYS_open = Constant('SYS_open',(0+ 5))
SYS_openat = Constant('SYS_openat',(0+322))
SYS_openat2 = Constant('SYS_openat2',(0 + 437))
SYS_open_by_handle_at = Constant('SYS_open_by_handle_at',(0+371))
SYS_open_tree = Constant('SYS_open_tree',(0 + 428))
SYS_pause = Constant('SYS_pause',(0+ 29))
SYS_pciconfig_iobase = Constant('SYS_pciconfig_iobase',(0+271))
SYS_pciconfig_read = Constant('SYS_pciconfig_read',(0+272))
SYS_pciconfig_write = Constant('SYS_pciconfig_write',(0+273))
SYS_perf_event_open = Constant('SYS_perf_event_open',(0+364))
SYS_personality = Constant('SYS_personality',(0+136))
SYS_pidfd_getfd = Constant('SYS_pidfd_getfd',(0 + 438))
SYS_pidfd_open = Constant('SYS_pidfd_open',(0 + 434))
SYS_pidfd_send_signal = Constant('SYS_pidfd_send_signal',(0 + 424))
SYS_pipe = Constant('SYS_pipe',(0+ 42))
SYS_pipe2 = Constant('SYS_pipe2',(0+359))
SYS_pivot_root = Constant('SYS_pivot_root',(0+218))
SYS_pkey_alloc = Constant('SYS_pkey_alloc',(0 + 395))
SYS_pkey_free = Constant('SYS_pkey_free',(0 + 396))
SYS_pkey_mprotect = Constant('SYS_pkey_mprotect',(0 + 394))
SYS_poll = Constant('SYS_poll',(0+168))
SYS_ppoll_time64 = Constant('SYS_ppoll_time64',(0 + 414))
SYS_prctl = Constant('SYS_prctl',(0+172))
SYS_pread64 = Constant('SYS_pread64',(0+180))
SYS_preadv = Constant('SYS_preadv',(0+361))
SYS_preadv2 = Constant('SYS_preadv2',(0+392))
SYS_prlimit64 = Constant('SYS_prlimit64',(0+369))
SYS_process_vm_readv = Constant('SYS_process_vm_readv',(0+376))
SYS_process_vm_writev = Constant('SYS_process_vm_writev',(0+377))
SYS_pselect6_time64 = Constant('SYS_pselect6_time64',(0 + 413))
SYS_ptrace = Constant('SYS_ptrace',(0+ 26))
SYS_pwrite64 = Constant('SYS_pwrite64',(0+181))
SYS_pwritev = Constant('SYS_pwritev',(0+362))
SYS_pwritev2 = Constant('SYS_pwritev2',(0+393))
SYS_quotactl = Constant('SYS_quotactl',(0+131))
SYS_read = Constant('SYS_read',(0+ 3))
SYS_readahead = Constant('SYS_readahead',(0+225))
@@ -1489,14 +1852,18 @@ SYS_readv = Constant('SYS_readv',(0+145))
SYS_reboot = Constant('SYS_reboot',(0+ 88))
SYS_recv = Constant('SYS_recv',(0+291))
SYS_recvfrom = Constant('SYS_recvfrom',(0+292))
SYS_recvmmsg = Constant('SYS_recvmmsg',(0+365))
SYS_recvmmsg_time64 = Constant('SYS_recvmmsg_time64',(0 + 417))
SYS_recvmsg = Constant('SYS_recvmsg',(0+297))
SYS_remap_file_pages = Constant('SYS_remap_file_pages',(0+253))
SYS_removexattr = Constant('SYS_removexattr',(0+235))
SYS_rename = Constant('SYS_rename',(0+ 38))
SYS_renameat = Constant('SYS_renameat',(0+329))
SYS_renameat2 = Constant('SYS_renameat2',(0+382))
SYS_request_key = Constant('SYS_request_key',(0+310))
SYS_restart_syscall = Constant('SYS_restart_syscall',(0+ 0))
SYS_rmdir = Constant('SYS_rmdir',(0+ 40))
SYS_rseq = Constant('SYS_rseq',(0 + 398))
SYS_rt_sigaction = Constant('SYS_rt_sigaction',(0+174))
SYS_rt_sigpending = Constant('SYS_rt_sigpending',(0+176))
SYS_rt_sigprocmask = Constant('SYS_rt_sigprocmask',(0+175))
@@ -1504,24 +1871,32 @@ SYS_rt_sigqueueinfo = Constant('SYS_rt_sigqueueinfo',(0+178))
SYS_rt_sigreturn = Constant('SYS_rt_sigreturn',(0+173))
SYS_rt_sigsuspend = Constant('SYS_rt_sigsuspend',(0+179))
SYS_rt_sigtimedwait = Constant('SYS_rt_sigtimedwait',(0+177))
SYS_rt_sigtimedwait_time64 = Constant('SYS_rt_sigtimedwait_time64',(0 + 421))
SYS_rt_tgsigqueueinfo = Constant('SYS_rt_tgsigqueueinfo',(0+363))
SYS_sched_getaffinity = Constant('SYS_sched_getaffinity',(0+242))
SYS_sched_getattr = Constant('SYS_sched_getattr',(0+381))
SYS_sched_getparam = Constant('SYS_sched_getparam',(0+155))
SYS_sched_get_priority_max = Constant('SYS_sched_get_priority_max',(0+159))
SYS_sched_get_priority_min = Constant('SYS_sched_get_priority_min',(0+160))
SYS_sched_getscheduler = Constant('SYS_sched_getscheduler',(0+157))
SYS_sched_rr_get_interval = Constant('SYS_sched_rr_get_interval',(0+161))
SYS_sched_rr_get_interval_time64 = Constant('SYS_sched_rr_get_interval_time64',(0 + 423))
SYS_sched_setaffinity = Constant('SYS_sched_setaffinity',(0+241))
SYS_sched_setattr = Constant('SYS_sched_setattr',(0+380))
SYS_sched_setparam = Constant('SYS_sched_setparam',(0+154))
SYS_sched_setscheduler = Constant('SYS_sched_setscheduler',(0+156))
SYS_sched_yield = Constant('SYS_sched_yield',(0+158))
SYS_seccomp = Constant('SYS_seccomp',(0+383))
SYS_select = Constant('SYS_select',(0+ 82))
SYS_semctl = Constant('SYS_semctl',(0+300))
SYS_semget = Constant('SYS_semget',(0+299))
SYS_semop = Constant('SYS_semop',(0+298))
SYS_semtimedop = Constant('SYS_semtimedop',(0+312))
SYS_semtimedop_time64 = Constant('SYS_semtimedop_time64',(0 + 420))
SYS_send = Constant('SYS_send',(0+289))
SYS_sendfile = Constant('SYS_sendfile',(0+187))
SYS_sendfile64 = Constant('SYS_sendfile64',(0+239))
SYS_sendmmsg = Constant('SYS_sendmmsg',(0+374))
SYS_sendmsg = Constant('SYS_sendmsg',(0+296))
SYS_sendto = Constant('SYS_sendto',(0+290))
SYS_setdomainname = Constant('SYS_setdomainname',(0+121))
@@ -1536,6 +1911,7 @@ SYS_setgroups32 = Constant('SYS_setgroups32',(0+206))
SYS_sethostname = Constant('SYS_sethostname',(0+ 74))
SYS_setitimer = Constant('SYS_setitimer',(0+104))
SYS_set_mempolicy = Constant('SYS_set_mempolicy',(0+321))
SYS_setns = Constant('SYS_setns',(0+375))
SYS_setpgid = Constant('SYS_setpgid',(0+ 57))
SYS_setpriority = Constant('SYS_setpriority',(0+ 97))
SYS_setregid = Constant('SYS_setregid',(0+ 71))
@@ -1563,6 +1939,7 @@ SYS_shutdown = Constant('SYS_shutdown',(0+293))
SYS_sigaction = Constant('SYS_sigaction',(0+ 67))
SYS_sigaltstack = Constant('SYS_sigaltstack',(0+186))
SYS_signalfd = Constant('SYS_signalfd',(0+349))
SYS_signalfd4 = Constant('SYS_signalfd4',(0+355))
SYS_sigpending = Constant('SYS_sigpending',(0+ 73))
SYS_sigprocmask = Constant('SYS_sigprocmask',(0+126))
SYS_sigreturn = Constant('SYS_sigreturn',(0+119))
@@ -1575,12 +1952,14 @@ SYS_stat = Constant('SYS_stat',(0+106))
SYS_stat64 = Constant('SYS_stat64',(0+195))
SYS_statfs = Constant('SYS_statfs',(0+ 99))
SYS_statfs64 = Constant('SYS_statfs64',(0+266))
SYS_statx = Constant('SYS_statx',(0 + 397))
SYS_stime = Constant('SYS_stime',(0+ 25))
SYS_swapoff = Constant('SYS_swapoff',(0+115))
SYS_swapon = Constant('SYS_swapon',(0+ 87))
SYS_symlink = Constant('SYS_symlink',(0+ 83))
SYS_symlinkat = Constant('SYS_symlinkat',(0+331))
SYS_sync = Constant('SYS_sync',(0+ 36))
SYS_syncfs = Constant('SYS_syncfs',(0+373))
SYS_syscall = Constant('SYS_syscall',(0+113))
SYS_SYSCALL_BASE = Constant('SYS_SYSCALL_BASE',0)
SYS__sysctl = Constant('SYS__sysctl',(0+149))
@@ -1594,10 +1973,14 @@ SYS_timer_create = Constant('SYS_timer_create',(0+257))
SYS_timer_delete = Constant('SYS_timer_delete',(0+261))
SYS_timerfd = Constant('SYS_timerfd',(0+350))
SYS_timerfd_gettime = Constant('SYS_timerfd_gettime',(0+354))
SYS_timerfd_gettime64 = Constant('SYS_timerfd_gettime64',(0 + 410))
SYS_timerfd_settime = Constant('SYS_timerfd_settime',(0+353))
SYS_timerfd_settime64 = Constant('SYS_timerfd_settime64',(0 + 411))
SYS_timer_getoverrun = Constant('SYS_timer_getoverrun',(0+260))
SYS_timer_gettime = Constant('SYS_timer_gettime',(0+259))
SYS_timer_gettime64 = Constant('SYS_timer_gettime64',(0 + 408))
SYS_timer_settime = Constant('SYS_timer_settime',(0+258))
SYS_timer_settime64 = Constant('SYS_timer_settime64',(0 + 409))
SYS_times = Constant('SYS_times',(0+ 43))
SYS_tkill = Constant('SYS_tkill',(0+238))
SYS_truncate = Constant('SYS_truncate',(0+ 92))
@@ -1611,9 +1994,11 @@ SYS_unlink = Constant('SYS_unlink',(0+ 10))
SYS_unlinkat = Constant('SYS_unlinkat',(0+328))
SYS_unshare = Constant('SYS_unshare',(0+337))
SYS_uselib = Constant('SYS_uselib',(0+ 86))
SYS_userfaultfd = Constant('SYS_userfaultfd',(0+388))
SYS_ustat = Constant('SYS_ustat',(0+ 62))
SYS_utime = Constant('SYS_utime',(0+ 30))
SYS_utimensat = Constant('SYS_utimensat',(0+348))
SYS_utimensat_time64 = Constant('SYS_utimensat_time64',(0 + 412))
SYS_utimes = Constant('SYS_utimes',(0+269))
SYS_vfork = Constant('SYS_vfork',(0+190))
SYS_vhangup = Constant('SYS_vhangup',(0+111))
+467 -88
View File
@@ -1,5 +1,4 @@
from pwnlib.constants.constant import Constant
__NR_exit = Constant('__NR_exit',1)
__NR_fork = Constant('__NR_fork',2)
__NR_read = Constant('__NR_read',3)
@@ -337,6 +336,96 @@ __NR_recvmmsg = Constant('__NR_recvmmsg',337)
__NR_fanotify_init = Constant('__NR_fanotify_init',338)
__NR_fanotify_mark = Constant('__NR_fanotify_mark',339)
__NR_prlimit64 = Constant('__NR_prlimit64',340)
__NR_name_to_handle_at = Constant('__NR_name_to_handle_at',341)
__NR_open_by_handle_at = Constant('__NR_open_by_handle_at',342)
__NR_clock_adjtime = Constant('__NR_clock_adjtime',343)
__NR_syncfs = Constant('__NR_syncfs',344)
__NR_sendmmsg = Constant('__NR_sendmmsg',345)
__NR_setns = Constant('__NR_setns',346)
__NR_process_vm_readv = Constant('__NR_process_vm_readv',347)
__NR_process_vm_writev = Constant('__NR_process_vm_writev',348)
__NR_kcmp = Constant('__NR_kcmp',349)
__NR_finit_module = Constant('__NR_finit_module',350)
__NR_sched_setattr = Constant('__NR_sched_setattr',351)
__NR_sched_getattr = Constant('__NR_sched_getattr',352)
__NR_renameat2 = Constant('__NR_renameat2',353)
__NR_seccomp = Constant('__NR_seccomp',354)
__NR_getrandom = Constant('__NR_getrandom',355)
__NR_memfd_create = Constant('__NR_memfd_create',356)
__NR_bpf = Constant('__NR_bpf',357)
__NR_execveat = Constant('__NR_execveat',358)
__NR_socket = Constant('__NR_socket',359)
__NR_socketpair = Constant('__NR_socketpair',360)
__NR_bind = Constant('__NR_bind',361)
__NR_connect = Constant('__NR_connect',362)
__NR_listen = Constant('__NR_listen',363)
__NR_accept4 = Constant('__NR_accept4',364)
__NR_getsockopt = Constant('__NR_getsockopt',365)
__NR_setsockopt = Constant('__NR_setsockopt',366)
__NR_getsockname = Constant('__NR_getsockname',367)
__NR_getpeername = Constant('__NR_getpeername',368)
__NR_sendto = Constant('__NR_sendto',369)
__NR_sendmsg = Constant('__NR_sendmsg',370)
__NR_recvfrom = Constant('__NR_recvfrom',371)
__NR_recvmsg = Constant('__NR_recvmsg',372)
__NR_shutdown = Constant('__NR_shutdown',373)
__NR_userfaultfd = Constant('__NR_userfaultfd',374)
__NR_membarrier = Constant('__NR_membarrier',375)
__NR_mlock2 = Constant('__NR_mlock2',376)
__NR_copy_file_range = Constant('__NR_copy_file_range',377)
__NR_preadv2 = Constant('__NR_preadv2',378)
__NR_pwritev2 = Constant('__NR_pwritev2',379)
__NR_pkey_mprotect = Constant('__NR_pkey_mprotect',380)
__NR_pkey_alloc = Constant('__NR_pkey_alloc',381)
__NR_pkey_free = Constant('__NR_pkey_free',382)
__NR_ia32_statx = Constant('__NR_ia32_statx',383)
__NR_ia32_arch_prctl = Constant('__NR_ia32_arch_prctl',384)
__NR_ia32_io_pgetevents = Constant('__NR_ia32_io_pgetevents',385)
__NR_ia32_rseq = Constant('__NR_ia32_rseq',386)
__NR_semget = Constant('__NR_semget',393)
__NR_semctl = Constant('__NR_semctl',394)
__NR_shmget = Constant('__NR_shmget',395)
__NR_shmctl = Constant('__NR_shmctl',396)
__NR_shmat = Constant('__NR_shmat',397)
__NR_shmdt = Constant('__NR_shmdt',398)
__NR_msgget = Constant('__NR_msgget',399)
__NR_msgsnd = Constant('__NR_msgsnd',400)
__NR_msgrcv = Constant('__NR_msgrcv',401)
__NR_msgctl = Constant('__NR_msgctl',402)
__NR_clock_gettime64 = Constant('__NR_clock_gettime64',403)
__NR_clock_settime64 = Constant('__NR_clock_settime64',404)
__NR_clock_adjtime64 = Constant('__NR_clock_adjtime64',405)
__NR_clock_getres_time64 = Constant('__NR_clock_getres_time64',406)
__NR_clock_nanosleep_time64 = Constant('__NR_clock_nanosleep_time64',407)
__NR_timer_gettime64 = Constant('__NR_timer_gettime64',408)
__NR_timer_settime64 = Constant('__NR_timer_settime64',409)
__NR_timerfd_gettime64 = Constant('__NR_timerfd_gettime64',410)
__NR_timerfd_settime64 = Constant('__NR_timerfd_settime64',411)
__NR_utimensat_time64 = Constant('__NR_utimensat_time64',412)
__NR_pselect6_time64 = Constant('__NR_pselect6_time64',413)
__NR_ppoll_time64 = Constant('__NR_ppoll_time64',414)
__NR_io_pgetevents_time64 = Constant('__NR_io_pgetevents_time64',416)
__NR_recvmmsg_time64 = Constant('__NR_recvmmsg_time64',417)
__NR_mq_timedsend_time64 = Constant('__NR_mq_timedsend_time64',418)
__NR_mq_timedreceive_time64 = Constant('__NR_mq_timedreceive_time64',419)
__NR_semtimedop_time64 = Constant('__NR_semtimedop_time64',420)
__NR_rt_sigtimedwait_time64 = Constant('__NR_rt_sigtimedwait_time64',421)
__NR_futex_time64 = Constant('__NR_futex_time64',422)
__NR_sched_rr_get_interval_time64 = Constant('__NR_sched_rr_get_interval_time64',423)
__NR_pidfd_send_signal = Constant('__NR_pidfd_send_signal',424)
__NR_io_uring_setup = Constant('__NR_io_uring_setup',425)
__NR_io_uring_enter = Constant('__NR_io_uring_enter',426)
__NR_io_uring_register = Constant('__NR_io_uring_register',427)
__NR_open_tree = Constant('__NR_open_tree',428)
__NR_move_mount = Constant('__NR_move_mount',429)
__NR_fsopen = Constant('__NR_fsopen',430)
__NR_fsconfig = Constant('__NR_fsconfig',431)
__NR_fsmount = Constant('__NR_fsmount',432)
__NR_fspick = Constant('__NR_fspick',433)
__NR_pidfd_open = Constant('__NR_pidfd_open',434)
__NR_clone3 = Constant('__NR_clone3',435)
__NR_openat2 = Constant('__NR_openat2',437)
__NR_pidfd_getfd = Constant('__NR_pidfd_getfd',438)
SYS_SOCKET = Constant('SYS_SOCKET',1)
SYS_BIND = Constant('SYS_BIND',2)
SYS_CONNECT = Constant('SYS_CONNECT',3)
@@ -489,7 +578,11 @@ ENOKEY = Constant('ENOKEY',126)
EKEYEXPIRED = Constant('EKEYEXPIRED',127)
EKEYREVOKED = Constant('EKEYREVOKED',128)
EKEYREJECTED = Constant('EKEYREJECTED',129)
__SYS_NERR = Constant('__SYS_NERR',((129) + 1))
EOWNERDEAD = Constant('EOWNERDEAD',130)
ENOTRECOVERABLE = Constant('ENOTRECOVERABLE',131)
ERFKILL = Constant('ERFKILL',132)
EHWPOISON = Constant('EHWPOISON',133)
__SYS_NERR = Constant('__SYS_NERR',((133) + 1))
__LITTLE_ENDIAN = Constant('__LITTLE_ENDIAN',1234)
__BIG_ENDIAN = Constant('__BIG_ENDIAN',4321)
__BYTE_ORDER = Constant('__BYTE_ORDER',1234)
@@ -498,9 +591,56 @@ LITTLE_ENDIAN = Constant('LITTLE_ENDIAN',1234)
BIG_ENDIAN = Constant('BIG_ENDIAN',4321)
BYTE_ORDER = Constant('BYTE_ORDER',1234)
__WORDSIZE = Constant('__WORDSIZE',32)
__UNALIGNED_MEMORY_ACCESS_OK = Constant('__UNALIGNED_MEMORY_ACCESS_OK',1)
INT8_MAX = Constant('INT8_MAX',(127))
INT16_MAX = Constant('INT16_MAX',(32767))
INT32_MAX = Constant('INT32_MAX',(2147483647))
INT64_MAX = Constant('INT64_MAX',(9223372036854775807))
INT8_MIN = Constant('INT8_MIN',(-1 - (127)))
INT16_MIN = Constant('INT16_MIN',(-1 - (32767)))
INT32_MIN = Constant('INT32_MIN',(-1 - (2147483647)))
INT64_MIN = Constant('INT64_MIN',(-1 - (9223372036854775807)))
INT_LEAST8_MAX = Constant('INT_LEAST8_MAX',(127))
INT_LEAST8_MIN = Constant('INT_LEAST8_MIN',(-1 - (127)))
INT_LEAST16_MAX = Constant('INT_LEAST16_MAX',(32767))
INT_LEAST16_MIN = Constant('INT_LEAST16_MIN',(-1 - (32767)))
INT_LEAST32_MAX = Constant('INT_LEAST32_MAX',(2147483647))
INT_LEAST32_MIN = Constant('INT_LEAST32_MIN',(-1 - (2147483647)))
INT_LEAST64_MAX = Constant('INT_LEAST64_MAX',(9223372036854775807))
INT_LEAST64_MIN = Constant('INT_LEAST64_MIN',(-1 - (9223372036854775807)))
UINT8_MAX = Constant('UINT8_MAX',0xff)
UINT16_MAX = Constant('UINT16_MAX',0xffff)
UINT32_MAX = Constant('UINT32_MAX',0xffffffff)
UINT64_MAX = Constant('UINT64_MAX',0xffffffffffffffff)
UINT_LEAST8_MAX = Constant('UINT_LEAST8_MAX',0xff)
UINT_LEAST16_MAX = Constant('UINT_LEAST16_MAX',0xffff)
UINT_LEAST32_MAX = Constant('UINT_LEAST32_MAX',0xffffffff)
UINT_LEAST64_MAX = Constant('UINT_LEAST64_MAX',0xffffffffffffffff)
INTPTR_MIN = Constant('INTPTR_MIN',(-1 - (2147483647)))
INTPTR_MAX = Constant('INTPTR_MAX',(2147483647))
UINTPTR_MAX = Constant('UINTPTR_MAX',0xffffffff)
SIZE_MAX = Constant('SIZE_MAX',0xffffffff)
PTRDIFF_MIN = Constant('PTRDIFF_MIN',(-1 - (2147483647)))
PTRDIFF_MAX = Constant('PTRDIFF_MAX',(2147483647))
INTMAX_MIN = Constant('INTMAX_MIN',(-1 - (9223372036854775807)))
INTMAX_MAX = Constant('INTMAX_MAX',(9223372036854775807))
UINTMAX_MAX = Constant('UINTMAX_MAX',0xffffffffffffffff)
INT_FAST8_MIN = Constant('INT_FAST8_MIN',(-1 - (127)))
INT_FAST8_MAX = Constant('INT_FAST8_MAX',(127))
INT_FAST64_MIN = Constant('INT_FAST64_MIN',(-1 - (9223372036854775807)))
INT_FAST64_MAX = Constant('INT_FAST64_MAX',(9223372036854775807))
UINT_FAST8_MAX = Constant('UINT_FAST8_MAX',0xff)
UINT_FAST64_MAX = Constant('UINT_FAST64_MAX',0xffffffffffffffff)
INT_FAST16_MIN = Constant('INT_FAST16_MIN',(-1 - (2147483647)))
INT_FAST16_MAX = Constant('INT_FAST16_MAX',(2147483647))
UINT_FAST16_MAX = Constant('UINT_FAST16_MAX',0xffffffff)
INT_FAST32_MIN = Constant('INT_FAST32_MIN',(-1 - (2147483647)))
INT_FAST32_MAX = Constant('INT_FAST32_MAX',(2147483647))
UINT_FAST32_MAX = Constant('UINT_FAST32_MAX',0xffffffff)
WINT_MIN = Constant('WINT_MIN',0)
__FSUID_H = Constant('__FSUID_H',1)
NSIG = Constant('NSIG',32)
_NSIG = Constant('_NSIG',64)
_NSIG = Constant('_NSIG',65)
SIGHUP = Constant('SIGHUP',1)
SIGINT = Constant('SIGINT',2)
SIGQUIT = Constant('SIGQUIT',3)
@@ -538,7 +678,7 @@ SIGCLD = Constant('SIGCLD',17)
SIGPOLL = Constant('SIGPOLL',29)
SIGLOST = Constant('SIGLOST',30)
SIGRTMIN = Constant('SIGRTMIN',32)
SIGRTMAX = Constant('SIGRTMAX',(64-1))
SIGRTMAX = Constant('SIGRTMAX',(65-1))
SA_NOCLDSTOP = Constant('SA_NOCLDSTOP',0x00000001)
SA_NOCLDWAIT = Constant('SA_NOCLDWAIT',0x00000002)
SA_SIGINFO = Constant('SA_SIGINFO',0x00000004)
@@ -588,6 +728,8 @@ _SC_PAGESIZE = Constant('_SC_PAGESIZE',5)
_SC_NPROCESSORS_ONLN = Constant('_SC_NPROCESSORS_ONLN',6)
_SC_NPROCESSORS_CONF = Constant('_SC_NPROCESSORS_CONF',6)
_SC_PHYS_PAGES = Constant('_SC_PHYS_PAGES',7)
_SC_GETPW_R_SIZE_MAX = Constant('_SC_GETPW_R_SIZE_MAX',8)
_SC_GETGR_R_SIZE_MAX = Constant('_SC_GETGR_R_SIZE_MAX',9)
_PC_PATH_MAX = Constant('_PC_PATH_MAX',1)
_PC_VDISABLE = Constant('_PC_VDISABLE',2)
L_cuserid = Constant('L_cuserid',17)
@@ -596,6 +738,7 @@ F_ULOCK = Constant('F_ULOCK',0)
F_LOCK = Constant('F_LOCK',1)
F_TLOCK = Constant('F_TLOCK',2)
F_TEST = Constant('F_TEST',3)
_POSIX_MAPPED_FILES = Constant('_POSIX_MAPPED_FILES',200809)
STAT64_HAS_BROKEN_ST_INO = Constant('STAT64_HAS_BROKEN_ST_INO',1)
S_IFMT = Constant('S_IFMT',0o0170000)
S_IFSOCK = Constant('S_IFSOCK',0o140000)
@@ -623,84 +766,7 @@ S_IXOTH = Constant('S_IXOTH',0o0001)
S_IREAD = Constant('S_IREAD',0o0400)
S_IWRITE = Constant('S_IWRITE',0o0200)
S_IEXEC = Constant('S_IEXEC',0o0100)
F_LINUX_SPECIFIC_BASE = Constant('F_LINUX_SPECIFIC_BASE',1024)
O_ACCMODE = Constant('O_ACCMODE',0o003)
O_RDONLY = Constant('O_RDONLY',0o0)
O_WRONLY = Constant('O_WRONLY',0o1)
O_RDWR = Constant('O_RDWR',0o2)
O_CREAT = Constant('O_CREAT',0o100)
O_EXCL = Constant('O_EXCL',0o200)
O_NOCTTY = Constant('O_NOCTTY',0o400)
O_TRUNC = Constant('O_TRUNC',0o1000)
O_APPEND = Constant('O_APPEND',0o2000)
O_NONBLOCK = Constant('O_NONBLOCK',0o4000)
O_NDELAY = Constant('O_NDELAY',0o4000)
O_SYNC = Constant('O_SYNC',0o10000)
FASYNC = Constant('FASYNC',0o20000)
O_DIRECT = Constant('O_DIRECT',0o40000)
O_LARGEFILE = Constant('O_LARGEFILE',0o100000)
O_DIRECTORY = Constant('O_DIRECTORY',0o200000)
O_NOFOLLOW = Constant('O_NOFOLLOW',0o400000)
O_NOATIME = Constant('O_NOATIME',0o1000000)
F_DUPFD = Constant('F_DUPFD',0)
F_GETFD = Constant('F_GETFD',1)
F_SETFD = Constant('F_SETFD',2)
F_GETFL = Constant('F_GETFL',3)
F_SETFL = Constant('F_SETFL',4)
F_GETLK = Constant('F_GETLK',5)
F_SETLK = Constant('F_SETLK',6)
F_SETLKW = Constant('F_SETLKW',7)
F_SETOWN = Constant('F_SETOWN',8)
F_GETOWN = Constant('F_GETOWN',9)
F_SETSIG = Constant('F_SETSIG',10)
F_GETSIG = Constant('F_GETSIG',11)
F_GETLK64 = Constant('F_GETLK64',12)
F_SETLK64 = Constant('F_SETLK64',13)
F_SETLKW64 = Constant('F_SETLKW64',14)
FD_CLOEXEC = Constant('FD_CLOEXEC',1)
F_RDLCK = Constant('F_RDLCK',0)
F_WRLCK = Constant('F_WRLCK',1)
F_UNLCK = Constant('F_UNLCK',2)
F_EXLCK = Constant('F_EXLCK',4)
F_SHLCK = Constant('F_SHLCK',8)
F_INPROGRESS = Constant('F_INPROGRESS',16)
LOCK_SH = Constant('LOCK_SH',1)
LOCK_EX = Constant('LOCK_EX',2)
LOCK_NB = Constant('LOCK_NB',4)
LOCK_UN = Constant('LOCK_UN',8)
LOCK_MAND = Constant('LOCK_MAND',32)
LOCK_READ = Constant('LOCK_READ',64)
LOCK_WRITE = Constant('LOCK_WRITE',128)
LOCK_RW = Constant('LOCK_RW',192)
O_ASYNC = Constant('O_ASYNC',0o20000)
MREMAP_MAYMOVE = Constant('MREMAP_MAYMOVE',1)
MREMAP_FIXED = Constant('MREMAP_FIXED',2)
PROT_READ = Constant('PROT_READ',0x1)
PROT_WRITE = Constant('PROT_WRITE',0x2)
PROT_EXEC = Constant('PROT_EXEC',0x4)
PROT_NONE = Constant('PROT_NONE',0x0)
MAP_SHARED = Constant('MAP_SHARED',0x01)
MAP_PRIVATE = Constant('MAP_PRIVATE',0x02)
MAP_FIXED = Constant('MAP_FIXED',0x10)
MAP_ANONYMOUS = Constant('MAP_ANONYMOUS',0x20)
MAP_GROWSDOWN = Constant('MAP_GROWSDOWN',0x0100)
MAP_DENYWRITE = Constant('MAP_DENYWRITE',0x0800)
MAP_EXECUTABLE = Constant('MAP_EXECUTABLE',0x1000)
MAP_LOCKED = Constant('MAP_LOCKED',0x2000)
MAP_NORESERVE = Constant('MAP_NORESERVE',0x4000)
MAP_POPULATE = Constant('MAP_POPULATE',0x8000)
MS_ASYNC = Constant('MS_ASYNC',1)
MS_INVALIDATE = Constant('MS_INVALIDATE',2)
MS_SYNC = Constant('MS_SYNC',4)
MCL_CURRENT = Constant('MCL_CURRENT',1)
MCL_FUTURE = Constant('MCL_FUTURE',2)
MADV_NORMAL = Constant('MADV_NORMAL',0x0)
MADV_RANDOM = Constant('MADV_RANDOM',0x1)
MADV_SEQUENTIAL = Constant('MADV_SEQUENTIAL',0x2)
MADV_WILLNEED = Constant('MADV_WILLNEED',0x3)
MADV_DONTNEED = Constant('MADV_DONTNEED',0x4)
MAP_ANON = Constant('MAP_ANON',0x20)
MAP_FILE = Constant('MAP_FILE',0)
_SYS_UIO = Constant('_SYS_UIO',1)
SOL_SOCKET = Constant('SOL_SOCKET',1)
SO_DEBUG = Constant('SO_DEBUG',1)
SO_REUSEADDR = Constant('SO_REUSEADDR',2)
@@ -716,29 +782,64 @@ SO_NO_CHECK = Constant('SO_NO_CHECK',11)
SO_PRIORITY = Constant('SO_PRIORITY',12)
SO_LINGER = Constant('SO_LINGER',13)
SO_BSDCOMPAT = Constant('SO_BSDCOMPAT',14)
SO_REUSEPORT = Constant('SO_REUSEPORT',15)
SO_PASSCRED = Constant('SO_PASSCRED',16)
SO_PEERCRED = Constant('SO_PEERCRED',17)
SO_RCVLOWAT = Constant('SO_RCVLOWAT',18)
SO_SNDLOWAT = Constant('SO_SNDLOWAT',19)
SO_RCVTIMEO = Constant('SO_RCVTIMEO',20)
SO_SNDTIMEO = Constant('SO_SNDTIMEO',21)
SO_ACCEPTCONN = Constant('SO_ACCEPTCONN',30)
SO_SNDBUFFORCE = Constant('SO_SNDBUFFORCE',32)
SO_RCVBUFFORCE = Constant('SO_RCVBUFFORCE',33)
SO_SECURITY_AUTHENTICATION = Constant('SO_SECURITY_AUTHENTICATION',22)
SO_SECURITY_ENCRYPTION_TRANSPORT = Constant('SO_SECURITY_ENCRYPTION_TRANSPORT',23)
SO_SECURITY_ENCRYPTION_NETWORK = Constant('SO_SECURITY_ENCRYPTION_NETWORK',24)
SO_BINDTODEVICE = Constant('SO_BINDTODEVICE',25)
SO_ATTACH_FILTER = Constant('SO_ATTACH_FILTER',26)
SO_DETACH_FILTER = Constant('SO_DETACH_FILTER',27)
SO_GET_FILTER = Constant('SO_GET_FILTER',26)
SO_PEERNAME = Constant('SO_PEERNAME',28)
SO_TIMESTAMP = Constant('SO_TIMESTAMP',29)
SCM_TIMESTAMP = Constant('SCM_TIMESTAMP',29)
SO_ACCEPTCONN = Constant('SO_ACCEPTCONN',30)
SO_PEERSEC = Constant('SO_PEERSEC',31)
SO_SNDBUFFORCE = Constant('SO_SNDBUFFORCE',32)
SO_RCVBUFFORCE = Constant('SO_RCVBUFFORCE',33)
SO_PASSSEC = Constant('SO_PASSSEC',34)
SO_TIMESTAMPNS = Constant('SO_TIMESTAMPNS',35)
SCM_TIMESTAMPNS = Constant('SCM_TIMESTAMPNS',35)
SO_MARK = Constant('SO_MARK',36)
SO_TIMESTAMPING = Constant('SO_TIMESTAMPING',37)
SCM_TIMESTAMPING = Constant('SCM_TIMESTAMPING',37)
SO_PROTOCOL = Constant('SO_PROTOCOL',38)
SO_DOMAIN = Constant('SO_DOMAIN',39)
SO_RXQ_OVFL = Constant('SO_RXQ_OVFL',40)
SO_WIFI_STATUS = Constant('SO_WIFI_STATUS',41)
SCM_WIFI_STATUS = Constant('SCM_WIFI_STATUS',41)
SO_PEEK_OFF = Constant('SO_PEEK_OFF',42)
SO_NOFCS = Constant('SO_NOFCS',43)
SO_LOCK_FILTER = Constant('SO_LOCK_FILTER',44)
SO_SELECT_ERR_QUEUE = Constant('SO_SELECT_ERR_QUEUE',45)
SO_BUSY_POLL = Constant('SO_BUSY_POLL',46)
SO_MAX_PACING_RATE = Constant('SO_MAX_PACING_RATE',47)
SO_BPF_EXTENSIONS = Constant('SO_BPF_EXTENSIONS',48)
SO_INCOMING_CPU = Constant('SO_INCOMING_CPU',49)
SO_ATTACH_BPF = Constant('SO_ATTACH_BPF',50)
SO_DETACH_BPF = Constant('SO_DETACH_BPF',27)
SO_ATTACH_REUSEPORT_CBPF = Constant('SO_ATTACH_REUSEPORT_CBPF',51)
SO_ATTACH_REUSEPORT_EBPF = Constant('SO_ATTACH_REUSEPORT_EBPF',52)
SO_CNX_ADVICE = Constant('SO_CNX_ADVICE',53)
SCM_TIMESTAMPING_OPT_STATS = Constant('SCM_TIMESTAMPING_OPT_STATS',54)
SO_MEMINFO = Constant('SO_MEMINFO',55)
SO_INCOMING_NAPI_ID = Constant('SO_INCOMING_NAPI_ID',56)
SO_COOKIE = Constant('SO_COOKIE',57)
SCM_TIMESTAMPING_PKTINFO = Constant('SCM_TIMESTAMPING_PKTINFO',58)
SO_PEERGROUPS = Constant('SO_PEERGROUPS',59)
SO_ZEROCOPY = Constant('SO_ZEROCOPY',60)
SOCK_STREAM = Constant('SOCK_STREAM',1)
SOCK_DGRAM = Constant('SOCK_DGRAM',2)
SOCK_RAW = Constant('SOCK_RAW',3)
SOCK_RDM = Constant('SOCK_RDM',4)
SOCK_SEQPACKET = Constant('SOCK_SEQPACKET',5)
SOCK_DCCP = Constant('SOCK_DCCP',6)
SOCK_PACKET = Constant('SOCK_PACKET',10)
UIO_FASTIOV = Constant('UIO_FASTIOV',8)
UIO_MAXIOV = Constant('UIO_MAXIOV',1024)
@@ -772,7 +873,25 @@ AF_SNA = Constant('AF_SNA',22)
AF_IRDA = Constant('AF_IRDA',23)
AF_PPPOX = Constant('AF_PPPOX',24)
AF_WANPIPE = Constant('AF_WANPIPE',25)
AF_MAX = Constant('AF_MAX',32)
AF_LLC = Constant('AF_LLC',26)
AF_IB = Constant('AF_IB',27)
AF_MPLS = Constant('AF_MPLS',28)
AF_CAN = Constant('AF_CAN',29)
AF_TIPC = Constant('AF_TIPC',30)
AF_BLUETOOTH = Constant('AF_BLUETOOTH',31)
AF_IUCV = Constant('AF_IUCV',32)
AF_RXRPC = Constant('AF_RXRPC',33)
AF_ISDN = Constant('AF_ISDN',34)
AF_PHONET = Constant('AF_PHONET',35)
AF_IEEE802154 = Constant('AF_IEEE802154',36)
AF_CAIF = Constant('AF_CAIF',37)
AF_ALG = Constant('AF_ALG',38)
AF_NFC = Constant('AF_NFC',39)
AF_VSOCK = Constant('AF_VSOCK',40)
AF_KCM = Constant('AF_KCM',41)
AF_QIPCRTR = Constant('AF_QIPCRTR',42)
AF_SMC = Constant('AF_SMC',43)
AF_MAX = Constant('AF_MAX',44)
PF_UNSPEC = Constant('PF_UNSPEC',0)
PF_UNIX = Constant('PF_UNIX',1)
PF_LOCAL = Constant('PF_LOCAL',1)
@@ -800,7 +919,25 @@ PF_SNA = Constant('PF_SNA',22)
PF_IRDA = Constant('PF_IRDA',23)
PF_PPPOX = Constant('PF_PPPOX',24)
PF_WANPIPE = Constant('PF_WANPIPE',25)
PF_MAX = Constant('PF_MAX',32)
PF_LLC = Constant('PF_LLC',26)
PF_IB = Constant('PF_IB',27)
PF_MPLS = Constant('PF_MPLS',28)
PF_CAN = Constant('PF_CAN',29)
PF_TIPC = Constant('PF_TIPC',30)
PF_BLUETOOTH = Constant('PF_BLUETOOTH',31)
PF_IUCV = Constant('PF_IUCV',32)
PF_RXRPC = Constant('PF_RXRPC',33)
PF_ISDN = Constant('PF_ISDN',34)
PF_PHONET = Constant('PF_PHONET',35)
PF_IEEE802154 = Constant('PF_IEEE802154',36)
PF_CAIF = Constant('PF_CAIF',37)
PF_ALG = Constant('PF_ALG',38)
PF_NFC = Constant('PF_NFC',39)
PF_VSOCK = Constant('PF_VSOCK',40)
PF_KCM = Constant('PF_KCM',41)
PF_QIPCRTR = Constant('PF_QIPCRTR',42)
PF_SMC = Constant('PF_SMC',43)
PF_MAX = Constant('PF_MAX',44)
SOMAXCONN = Constant('SOMAXCONN',128)
MSG_OOB = Constant('MSG_OOB',1)
MSG_PEEK = Constant('MSG_PEEK',2)
@@ -813,18 +950,26 @@ MSG_DONTWAIT = Constant('MSG_DONTWAIT',0x40)
MSG_EOR = Constant('MSG_EOR',0x80)
MSG_WAITALL = Constant('MSG_WAITALL',0x100)
MSG_FIN = Constant('MSG_FIN',0x200)
MSG_EOF = Constant('MSG_EOF',0x200)
MSG_SYN = Constant('MSG_SYN',0x400)
MSG_CONFIRM = Constant('MSG_CONFIRM',0x800)
MSG_RST = Constant('MSG_RST',0x1000)
MSG_ERRQUEUE = Constant('MSG_ERRQUEUE',0x2000)
MSG_NOSIGNAL = Constant('MSG_NOSIGNAL',0x4000)
MSG_MORE = Constant('MSG_MORE',0x8000)
MSG_WAITFORONE = Constant('MSG_WAITFORONE',0x10000)
MSG_SENDPAGE_NOTLAST = Constant('MSG_SENDPAGE_NOTLAST',0x20000)
MSG_BATCH = Constant('MSG_BATCH',0x40000)
MSG_EOF = Constant('MSG_EOF',0x200)
MSG_ZEROCOPY = Constant('MSG_ZEROCOPY',0x4000000)
MSG_FASTOPEN = Constant('MSG_FASTOPEN',0x20000000)
MSG_CMSG_CLOEXEC = Constant('MSG_CMSG_CLOEXEC',0x40000000)
SOL_IP = Constant('SOL_IP',0)
SOL_TCP = Constant('SOL_TCP',6)
SOL_UDP = Constant('SOL_UDP',17)
SOL_IPV6 = Constant('SOL_IPV6',41)
SOL_ICMPV6 = Constant('SOL_ICMPV6',58)
SOL_SCTP = Constant('SOL_SCTP',132)
SOL_UDPLITE = Constant('SOL_UDPLITE',136)
SOL_RAW = Constant('SOL_RAW',255)
SOL_IPX = Constant('SOL_IPX',256)
SOL_AX25 = Constant('SOL_AX25',257)
@@ -837,6 +982,22 @@ SOL_PACKET = Constant('SOL_PACKET',263)
SOL_ATM = Constant('SOL_ATM',264)
SOL_AAL = Constant('SOL_AAL',265)
SOL_IRDA = Constant('SOL_IRDA',266)
SOL_NETBEUI = Constant('SOL_NETBEUI',267)
SOL_LLC = Constant('SOL_LLC',268)
SOL_DCCP = Constant('SOL_DCCP',269)
SOL_NETLINK = Constant('SOL_NETLINK',270)
SOL_TIPC = Constant('SOL_TIPC',271)
SOL_RXRPC = Constant('SOL_RXRPC',272)
SOL_PPPOL2TP = Constant('SOL_PPPOL2TP',273)
SOL_BLUETOOTH = Constant('SOL_BLUETOOTH',274)
SOL_PNPIPE = Constant('SOL_PNPIPE',275)
SOL_RDS = Constant('SOL_RDS',276)
SOL_IUCV = Constant('SOL_IUCV',277)
SOL_CAIF = Constant('SOL_CAIF',278)
SOL_ALG = Constant('SOL_ALG',279)
SOL_NFC = Constant('SOL_NFC',280)
SOL_KCM = Constant('SOL_KCM',281)
SOL_TLS = Constant('SOL_TLS',282)
IPX_TYPE = Constant('IPX_TYPE',1)
SHUT_RD = Constant('SHUT_RD',0)
SHUT_WR = Constant('SHUT_WR',1)
@@ -860,6 +1021,10 @@ EAI_SYSTEM = Constant('EAI_SYSTEM',-11)
AI_NUMERICHOST = Constant('AI_NUMERICHOST',1)
AI_CANONNAME = Constant('AI_CANONNAME',2)
AI_PASSIVE = Constant('AI_PASSIVE',4)
AI_NUMERICSERV = Constant('AI_NUMERICSERV',8)
AI_ADDRCONFIG = Constant('AI_ADDRCONFIG',16)
AI_V4MAPPED = Constant('AI_V4MAPPED',32)
AI_ALL = Constant('AI_ALL',64)
SIOCADDRT = Constant('SIOCADDRT',0x890B)
SIOCDELRT = Constant('SIOCDELRT',0x890C)
SIOCRTMSG = Constant('SIOCRTMSG',0x890D)
@@ -916,6 +1081,130 @@ SIOCSIFMAP = Constant('SIOCSIFMAP',0x8971)
SIOCADDDLCI = Constant('SIOCADDDLCI',0x8980)
SIOCDELDLCI = Constant('SIOCDELDLCI',0x8981)
SIOCDEVPRIVATE = Constant('SIOCDEVPRIVATE',0x89F0)
F_LINUX_SPECIFIC_BASE = Constant('F_LINUX_SPECIFIC_BASE',1024)
O_ACCMODE = Constant('O_ACCMODE',0o003)
O_RDONLY = Constant('O_RDONLY',0o0)
O_WRONLY = Constant('O_WRONLY',0o1)
O_RDWR = Constant('O_RDWR',0o2)
O_CREAT = Constant('O_CREAT',0o100)
O_EXCL = Constant('O_EXCL',0o200)
O_NOCTTY = Constant('O_NOCTTY',0o400)
O_TRUNC = Constant('O_TRUNC',0o1000)
O_APPEND = Constant('O_APPEND',0o2000)
O_NONBLOCK = Constant('O_NONBLOCK',0o4000)
O_NDELAY = Constant('O_NDELAY',0o4000)
O_DSYNC = Constant('O_DSYNC',0o10000)
FASYNC = Constant('FASYNC',0o20000)
O_DIRECT = Constant('O_DIRECT',0o40000)
O_LARGEFILE = Constant('O_LARGEFILE',0o100000)
O_DIRECTORY = Constant('O_DIRECTORY',0o200000)
O_NOFOLLOW = Constant('O_NOFOLLOW',0o400000)
O_NOATIME = Constant('O_NOATIME',0o1000000)
O_CLOEXEC = Constant('O_CLOEXEC',0o2000000)
O_SYNC = Constant('O_SYNC',(0o10000|0o4000000))
O_PATH = Constant('O_PATH',0o10000000)
__O_TMPFILE = Constant('__O_TMPFILE',0o20000000)
F_DUPFD = Constant('F_DUPFD',0)
F_GETFD = Constant('F_GETFD',1)
F_SETFD = Constant('F_SETFD',2)
F_GETFL = Constant('F_GETFL',3)
F_SETFL = Constant('F_SETFL',4)
F_GETLK = Constant('F_GETLK',5)
F_SETLK = Constant('F_SETLK',6)
F_SETLKW = Constant('F_SETLKW',7)
F_SETOWN = Constant('F_SETOWN',8)
F_GETOWN = Constant('F_GETOWN',9)
F_SETSIG = Constant('F_SETSIG',10)
F_GETSIG = Constant('F_GETSIG',11)
F_GETLK64 = Constant('F_GETLK64',12)
F_SETLK64 = Constant('F_SETLK64',13)
F_SETLKW64 = Constant('F_SETLKW64',14)
FD_CLOEXEC = Constant('FD_CLOEXEC',1)
F_RDLCK = Constant('F_RDLCK',0)
F_WRLCK = Constant('F_WRLCK',1)
F_UNLCK = Constant('F_UNLCK',2)
F_EXLCK = Constant('F_EXLCK',4)
F_SHLCK = Constant('F_SHLCK',8)
F_INPROGRESS = Constant('F_INPROGRESS',16)
LOCK_SH = Constant('LOCK_SH',1)
LOCK_EX = Constant('LOCK_EX',2)
LOCK_NB = Constant('LOCK_NB',4)
LOCK_UN = Constant('LOCK_UN',8)
LOCK_MAND = Constant('LOCK_MAND',32)
LOCK_READ = Constant('LOCK_READ',64)
LOCK_WRITE = Constant('LOCK_WRITE',128)
LOCK_RW = Constant('LOCK_RW',192)
O_TMPFILE = Constant('O_TMPFILE',(0o20000000 | 0o200000))
O_ASYNC = Constant('O_ASYNC',0o20000)
F_SETOWN_EX = Constant('F_SETOWN_EX',15)
F_GETOWN_EX = Constant('F_GETOWN_EX',16)
F_GETOWNER_UIDS = Constant('F_GETOWNER_UIDS',17)
F_OFD_GETLK = Constant('F_OFD_GETLK',36)
F_OFD_SETLK = Constant('F_OFD_SETLK',37)
F_OFD_SETLKW = Constant('F_OFD_SETLKW',38)
F_OWNER_TID = Constant('F_OWNER_TID',0)
F_OWNER_PID = Constant('F_OWNER_PID',1)
F_OWNER_PGRP = Constant('F_OWNER_PGRP',2)
AT_FDCWD = Constant('AT_FDCWD',-100)
AT_SYMLINK_NOFOLLOW = Constant('AT_SYMLINK_NOFOLLOW',0x100)
AT_REMOVEDIR = Constant('AT_REMOVEDIR',0x200)
AT_SYMLINK_FOLLOW = Constant('AT_SYMLINK_FOLLOW',0x400)
AT_NO_AUTOMOUNT = Constant('AT_NO_AUTOMOUNT',0x800)
AT_EMPTY_PATH = Constant('AT_EMPTY_PATH',0x1000)
AT_EACCESS = Constant('AT_EACCESS',0x200)
MREMAP_MAYMOVE = Constant('MREMAP_MAYMOVE',1)
MREMAP_FIXED = Constant('MREMAP_FIXED',2)
PROT_READ = Constant('PROT_READ',0x1)
PROT_WRITE = Constant('PROT_WRITE',0x2)
PROT_EXEC = Constant('PROT_EXEC',0x4)
PROT_SEM = Constant('PROT_SEM',0x8)
PROT_NONE = Constant('PROT_NONE',0x0)
PROT_GROWSDOWN = Constant('PROT_GROWSDOWN',0x01000000)
PROT_GROWSUP = Constant('PROT_GROWSUP',0x02000000)
MAP_SHARED = Constant('MAP_SHARED',0x01)
MAP_PRIVATE = Constant('MAP_PRIVATE',0x02)
MAP_TYPE = Constant('MAP_TYPE',0xf)
MADV_REMOVE = Constant('MADV_REMOVE',9)
MADV_DONTFORK = Constant('MADV_DONTFORK',10)
MADV_DOFORK = Constant('MADV_DOFORK',11)
MADV_MERGEABLE = Constant('MADV_MERGEABLE',12)
MADV_UNMERGEABLE = Constant('MADV_UNMERGEABLE',13)
MADV_HUGEPAGE = Constant('MADV_HUGEPAGE',14)
MADV_NOHUGEPAGE = Constant('MADV_NOHUGEPAGE',15)
MADV_DONTDUMP = Constant('MADV_DONTDUMP',16)
MADV_DODUMP = Constant('MADV_DODUMP',17)
MADV_HWPOISON = Constant('MADV_HWPOISON',100)
MADV_SOFT_OFFLINE = Constant('MADV_SOFT_OFFLINE',101)
MLOCK_ONFAULT = Constant('MLOCK_ONFAULT',1)
MAP_FIXED = Constant('MAP_FIXED',0x10)
MAP_ANONYMOUS = Constant('MAP_ANONYMOUS',0x20)
MAP_GROWSDOWN = Constant('MAP_GROWSDOWN',0x0100)
MAP_DENYWRITE = Constant('MAP_DENYWRITE',0x0800)
MAP_EXECUTABLE = Constant('MAP_EXECUTABLE',0x1000)
MAP_LOCKED = Constant('MAP_LOCKED',0x2000)
MAP_NORESERVE = Constant('MAP_NORESERVE',0x4000)
MAP_POPULATE = Constant('MAP_POPULATE',0x8000)
MAP_NONBLOCK = Constant('MAP_NONBLOCK',0x10000)
MAP_STACK = Constant('MAP_STACK',0x20000)
MAP_HUGETLB = Constant('MAP_HUGETLB',0x40000)
MS_ASYNC = Constant('MS_ASYNC',1)
MS_INVALIDATE = Constant('MS_INVALIDATE',2)
MS_SYNC = Constant('MS_SYNC',4)
MCL_CURRENT = Constant('MCL_CURRENT',1)
MCL_FUTURE = Constant('MCL_FUTURE',2)
MCL_ONFAULT = Constant('MCL_ONFAULT',4)
MADV_NORMAL = Constant('MADV_NORMAL',0x0)
MADV_RANDOM = Constant('MADV_RANDOM',0x1)
MADV_SEQUENTIAL = Constant('MADV_SEQUENTIAL',0x2)
MADV_WILLNEED = Constant('MADV_WILLNEED',0x3)
MADV_DONTNEED = Constant('MADV_DONTNEED',0x4)
MAP_ANON = Constant('MAP_ANON',0x20)
MAP_FILE = Constant('MAP_FILE',0)
POSIX_MADV_NORMAL = Constant('POSIX_MADV_NORMAL',0x0)
POSIX_MADV_SEQUENTIAL = Constant('POSIX_MADV_SEQUENTIAL',0x2)
POSIX_MADV_RANDOM = Constant('POSIX_MADV_RANDOM',0x1)
POSIX_MADV_WILLNEED = Constant('POSIX_MADV_WILLNEED',0x3)
POSIX_MADV_DONTNEED = Constant('POSIX_MADV_DONTNEED',0x4)
PTRACE_TRACEME = Constant('PTRACE_TRACEME',0)
PTRACE_PEEKTEXT = Constant('PTRACE_PEEKTEXT',1)
PTRACE_PEEKDATA = Constant('PTRACE_PEEKDATA',2)
@@ -986,6 +1275,7 @@ PTRACE_GETFPXREGS = Constant('PTRACE_GETFPXREGS',18)
PTRACE_SETFPXREGS = Constant('PTRACE_SETFPXREGS',19)
PTRACE_SETOPTIONS = Constant('PTRACE_SETOPTIONS',21)
PTRACE_O_TRACESYSGOOD = Constant('PTRACE_O_TRACESYSGOOD',0x00000001)
SYS_accept4 = Constant('SYS_accept4',364)
SYS_access = Constant('SYS_access',33)
SYS_acct = Constant('SYS_acct',51)
SYS_add_key = Constant('SYS_add_key',286)
@@ -993,6 +1283,8 @@ SYS_adjtimex = Constant('SYS_adjtimex',124)
SYS_afs_syscall = Constant('SYS_afs_syscall',137)
SYS_alarm = Constant('SYS_alarm',27)
SYS_bdflush = Constant('SYS_bdflush',134)
SYS_bind = Constant('SYS_bind',361)
SYS_bpf = Constant('SYS_bpf',357)
SYS_break = Constant('SYS_break',17)
SYS_brk = Constant('SYS_brk',45)
SYS_capget = Constant('SYS_capget',184)
@@ -1002,12 +1294,21 @@ SYS_chmod = Constant('SYS_chmod',15)
SYS_chown = Constant('SYS_chown',182)
SYS_chown32 = Constant('SYS_chown32',212)
SYS_chroot = Constant('SYS_chroot',61)
SYS_clock_adjtime = Constant('SYS_clock_adjtime',343)
SYS_clock_adjtime64 = Constant('SYS_clock_adjtime64',405)
SYS_clock_getres = Constant('SYS_clock_getres',(259+7))
SYS_clock_getres_time64 = Constant('SYS_clock_getres_time64',406)
SYS_clock_gettime = Constant('SYS_clock_gettime',(259+6))
SYS_clock_gettime64 = Constant('SYS_clock_gettime64',403)
SYS_clock_nanosleep = Constant('SYS_clock_nanosleep',(259+8))
SYS_clock_nanosleep_time64 = Constant('SYS_clock_nanosleep_time64',407)
SYS_clock_settime = Constant('SYS_clock_settime',(259+5))
SYS_clock_settime64 = Constant('SYS_clock_settime64',404)
SYS_clone = Constant('SYS_clone',120)
SYS_clone3 = Constant('SYS_clone3',435)
SYS_close = Constant('SYS_close',6)
SYS_connect = Constant('SYS_connect',362)
SYS_copy_file_range = Constant('SYS_copy_file_range',377)
SYS_creat = Constant('SYS_creat',8)
SYS_create_module = Constant('SYS_create_module',127)
SYS_delete_module = Constant('SYS_delete_module',129)
@@ -1022,6 +1323,7 @@ SYS_epoll_wait = Constant('SYS_epoll_wait',256)
SYS_eventfd = Constant('SYS_eventfd',323)
SYS_eventfd2 = Constant('SYS_eventfd2',328)
SYS_execve = Constant('SYS_execve',11)
SYS_execveat = Constant('SYS_execveat',358)
SYS_exit = Constant('SYS_exit',1)
SYS_exit_group = Constant('SYS_exit_group',252)
SYS_faccessat = Constant('SYS_faccessat',307)
@@ -1040,11 +1342,16 @@ SYS_fcntl = Constant('SYS_fcntl',55)
SYS_fcntl64 = Constant('SYS_fcntl64',221)
SYS_fdatasync = Constant('SYS_fdatasync',148)
SYS_fgetxattr = Constant('SYS_fgetxattr',231)
SYS_finit_module = Constant('SYS_finit_module',350)
SYS_flistxattr = Constant('SYS_flistxattr',234)
SYS_flock = Constant('SYS_flock',143)
SYS_fork = Constant('SYS_fork',2)
SYS_fremovexattr = Constant('SYS_fremovexattr',237)
SYS_fsconfig = Constant('SYS_fsconfig',431)
SYS_fsetxattr = Constant('SYS_fsetxattr',228)
SYS_fsmount = Constant('SYS_fsmount',432)
SYS_fsopen = Constant('SYS_fsopen',430)
SYS_fspick = Constant('SYS_fspick',433)
SYS_fstat = Constant('SYS_fstat',108)
SYS_fstat64 = Constant('SYS_fstat64',197)
SYS_fstatat64 = Constant('SYS_fstatat64',300)
@@ -1055,6 +1362,7 @@ SYS_ftime = Constant('SYS_ftime',35)
SYS_ftruncate = Constant('SYS_ftruncate',93)
SYS_ftruncate64 = Constant('SYS_ftruncate64',194)
SYS_futex = Constant('SYS_futex',240)
SYS_futex_time64 = Constant('SYS_futex_time64',422)
SYS_futimesat = Constant('SYS_futimesat',299)
SYS_getcpu = Constant('SYS_getcpu',318)
SYS_getcwd = Constant('SYS_getcwd',183)
@@ -1071,12 +1379,14 @@ SYS_getgroups32 = Constant('SYS_getgroups32',205)
SYS_getitimer = Constant('SYS_getitimer',105)
SYS_get_kernel_syms = Constant('SYS_get_kernel_syms',130)
SYS_get_mempolicy = Constant('SYS_get_mempolicy',275)
SYS_getpeername = Constant('SYS_getpeername',368)
SYS_getpgid = Constant('SYS_getpgid',132)
SYS_getpgrp = Constant('SYS_getpgrp',65)
SYS_getpid = Constant('SYS_getpid',20)
SYS_getpmsg = Constant('SYS_getpmsg',188)
SYS_getppid = Constant('SYS_getppid',64)
SYS_getpriority = Constant('SYS_getpriority',96)
SYS_getrandom = Constant('SYS_getrandom',355)
SYS_getresgid = Constant('SYS_getresgid',171)
SYS_getresgid32 = Constant('SYS_getresgid32',211)
SYS_getresuid = Constant('SYS_getresuid',165)
@@ -1085,6 +1395,8 @@ SYS_getrlimit = Constant('SYS_getrlimit',76)
SYS_get_robust_list = Constant('SYS_get_robust_list',312)
SYS_getrusage = Constant('SYS_getrusage',77)
SYS_getsid = Constant('SYS_getsid',147)
SYS_getsockname = Constant('SYS_getsockname',367)
SYS_getsockopt = Constant('SYS_getsockopt',365)
SYS_get_thread_area = Constant('SYS_get_thread_area',244)
SYS_gettid = Constant('SYS_gettid',224)
SYS_gettimeofday = Constant('SYS_gettimeofday',78)
@@ -1092,6 +1404,10 @@ SYS_getuid = Constant('SYS_getuid',24)
SYS_getuid32 = Constant('SYS_getuid32',199)
SYS_getxattr = Constant('SYS_getxattr',229)
SYS_gtty = Constant('SYS_gtty',32)
SYS_ia32_arch_prctl = Constant('SYS_ia32_arch_prctl',384)
SYS_ia32_io_pgetevents = Constant('SYS_ia32_io_pgetevents',385)
SYS_ia32_rseq = Constant('SYS_ia32_rseq',386)
SYS_ia32_statx = Constant('SYS_ia32_statx',383)
SYS_idle = Constant('SYS_idle',112)
SYS_init_module = Constant('SYS_init_module',128)
SYS_inotify_add_watch = Constant('SYS_inotify_add_watch',292)
@@ -1103,12 +1419,17 @@ SYS_ioctl = Constant('SYS_ioctl',54)
SYS_io_destroy = Constant('SYS_io_destroy',246)
SYS_io_getevents = Constant('SYS_io_getevents',247)
SYS_ioperm = Constant('SYS_ioperm',101)
SYS_io_pgetevents_time64 = Constant('SYS_io_pgetevents_time64',416)
SYS_iopl = Constant('SYS_iopl',110)
SYS_ioprio_get = Constant('SYS_ioprio_get',290)
SYS_ioprio_set = Constant('SYS_ioprio_set',289)
SYS_io_setup = Constant('SYS_io_setup',245)
SYS_io_submit = Constant('SYS_io_submit',248)
SYS_io_uring_enter = Constant('SYS_io_uring_enter',426)
SYS_io_uring_register = Constant('SYS_io_uring_register',427)
SYS_io_uring_setup = Constant('SYS_io_uring_setup',425)
SYS_ipc = Constant('SYS_ipc',117)
SYS_kcmp = Constant('SYS_kcmp',349)
SYS_keyctl = Constant('SYS_keyctl',288)
SYS_kill = Constant('SYS_kill',37)
SYS_lchown = Constant('SYS_lchown',16)
@@ -1116,6 +1437,7 @@ SYS_lchown32 = Constant('SYS_lchown32',198)
SYS_lgetxattr = Constant('SYS_lgetxattr',230)
SYS_link = Constant('SYS_link',9)
SYS_linkat = Constant('SYS_linkat',303)
SYS_listen = Constant('SYS_listen',363)
SYS_listxattr = Constant('SYS_listxattr',232)
SYS_llistxattr = Constant('SYS_llistxattr',233)
SYS__llseek = Constant('SYS__llseek',140)
@@ -1129,6 +1451,8 @@ SYS_lstat64 = Constant('SYS_lstat64',196)
SYS_madvise = Constant('SYS_madvise',219)
SYS_madvise1 = Constant('SYS_madvise1',219)
SYS_mbind = Constant('SYS_mbind',274)
SYS_membarrier = Constant('SYS_membarrier',375)
SYS_memfd_create = Constant('SYS_memfd_create',356)
SYS_migrate_pages = Constant('SYS_migrate_pages',294)
SYS_mincore = Constant('SYS_mincore',218)
SYS_mkdir = Constant('SYS_mkdir',39)
@@ -1136,11 +1460,13 @@ SYS_mkdirat = Constant('SYS_mkdirat',296)
SYS_mknod = Constant('SYS_mknod',14)
SYS_mknodat = Constant('SYS_mknodat',297)
SYS_mlock = Constant('SYS_mlock',150)
SYS_mlock2 = Constant('SYS_mlock2',376)
SYS_mlockall = Constant('SYS_mlockall',152)
SYS_mmap = Constant('SYS_mmap',90)
SYS_mmap2 = Constant('SYS_mmap2',192)
SYS_modify_ldt = Constant('SYS_modify_ldt',123)
SYS_mount = Constant('SYS_mount',21)
SYS_move_mount = Constant('SYS_move_mount',429)
SYS_move_pages = Constant('SYS_move_pages',317)
SYS_mprotect = Constant('SYS_mprotect',125)
SYS_mpx = Constant('SYS_mpx',56)
@@ -1148,13 +1474,20 @@ SYS_mq_getsetattr = Constant('SYS_mq_getsetattr',(277+5))
SYS_mq_notify = Constant('SYS_mq_notify',(277+4))
SYS_mq_open = Constant('SYS_mq_open',277)
SYS_mq_timedreceive = Constant('SYS_mq_timedreceive',(277+3))
SYS_mq_timedreceive_time64 = Constant('SYS_mq_timedreceive_time64',419)
SYS_mq_timedsend = Constant('SYS_mq_timedsend',(277+2))
SYS_mq_timedsend_time64 = Constant('SYS_mq_timedsend_time64',418)
SYS_mq_unlink = Constant('SYS_mq_unlink',(277+1))
SYS_mremap = Constant('SYS_mremap',163)
SYS_msgctl = Constant('SYS_msgctl',402)
SYS_msgget = Constant('SYS_msgget',399)
SYS_msgrcv = Constant('SYS_msgrcv',401)
SYS_msgsnd = Constant('SYS_msgsnd',400)
SYS_msync = Constant('SYS_msync',144)
SYS_munlock = Constant('SYS_munlock',151)
SYS_munlockall = Constant('SYS_munlockall',153)
SYS_munmap = Constant('SYS_munmap',91)
SYS_name_to_handle_at = Constant('SYS_name_to_handle_at',341)
SYS_nanosleep = Constant('SYS_nanosleep',162)
SYS__newselect = Constant('SYS__newselect',142)
SYS_nfsservctl = Constant('SYS_nfsservctl',169)
@@ -1166,25 +1499,40 @@ SYS_oldstat = Constant('SYS_oldstat',18)
SYS_olduname = Constant('SYS_olduname',109)
SYS_open = Constant('SYS_open',5)
SYS_openat = Constant('SYS_openat',295)
SYS_openat2 = Constant('SYS_openat2',437)
SYS_open_by_handle_at = Constant('SYS_open_by_handle_at',342)
SYS_open_tree = Constant('SYS_open_tree',428)
SYS_pause = Constant('SYS_pause',29)
SYS_perf_event_open = Constant('SYS_perf_event_open',336)
SYS_personality = Constant('SYS_personality',136)
SYS_pidfd_getfd = Constant('SYS_pidfd_getfd',438)
SYS_pidfd_open = Constant('SYS_pidfd_open',434)
SYS_pidfd_send_signal = Constant('SYS_pidfd_send_signal',424)
SYS_pipe = Constant('SYS_pipe',42)
SYS_pipe2 = Constant('SYS_pipe2',331)
SYS_pivot_root = Constant('SYS_pivot_root',217)
SYS_pkey_alloc = Constant('SYS_pkey_alloc',381)
SYS_pkey_free = Constant('SYS_pkey_free',382)
SYS_pkey_mprotect = Constant('SYS_pkey_mprotect',380)
SYS_poll = Constant('SYS_poll',168)
SYS_ppoll = Constant('SYS_ppoll',309)
SYS_ppoll_time64 = Constant('SYS_ppoll_time64',414)
SYS_prctl = Constant('SYS_prctl',172)
SYS_pread = Constant('SYS_pread',180)
SYS_preadv = Constant('SYS_preadv',333)
SYS_preadv2 = Constant('SYS_preadv2',378)
SYS_prlimit64 = Constant('SYS_prlimit64',340)
SYS_process_vm_readv = Constant('SYS_process_vm_readv',347)
SYS_process_vm_writev = Constant('SYS_process_vm_writev',348)
SYS_prof = Constant('SYS_prof',44)
SYS_profil = Constant('SYS_profil',98)
SYS_pselect6 = Constant('SYS_pselect6',308)
SYS_pselect6_time64 = Constant('SYS_pselect6_time64',413)
SYS_ptrace = Constant('SYS_ptrace',26)
SYS_putpmsg = Constant('SYS_putpmsg',189)
SYS_pwrite = Constant('SYS_pwrite',181)
SYS_pwritev = Constant('SYS_pwritev',334)
SYS_pwritev2 = Constant('SYS_pwritev2',379)
SYS_query_module = Constant('SYS_query_module',167)
SYS_quotactl = Constant('SYS_quotactl',131)
SYS_read = Constant('SYS_read',3)
@@ -1194,11 +1542,15 @@ SYS_readlink = Constant('SYS_readlink',85)
SYS_readlinkat = Constant('SYS_readlinkat',305)
SYS_readv = Constant('SYS_readv',145)
SYS_reboot = Constant('SYS_reboot',88)
SYS_recvfrom = Constant('SYS_recvfrom',371)
SYS_recvmmsg = Constant('SYS_recvmmsg',337)
SYS_recvmmsg_time64 = Constant('SYS_recvmmsg_time64',417)
SYS_recvmsg = Constant('SYS_recvmsg',372)
SYS_remap_file_pages = Constant('SYS_remap_file_pages',257)
SYS_removexattr = Constant('SYS_removexattr',235)
SYS_rename = Constant('SYS_rename',38)
SYS_renameat = Constant('SYS_renameat',302)
SYS_renameat2 = Constant('SYS_renameat2',353)
SYS_request_key = Constant('SYS_request_key',287)
SYS_rmdir = Constant('SYS_rmdir',40)
SYS_rt_sigaction = Constant('SYS_rt_sigaction',174)
@@ -1208,20 +1560,31 @@ SYS_rt_sigqueueinfo = Constant('SYS_rt_sigqueueinfo',178)
SYS_rt_sigreturn = Constant('SYS_rt_sigreturn',173)
SYS_rt_sigsuspend = Constant('SYS_rt_sigsuspend',179)
SYS_rt_sigtimedwait = Constant('SYS_rt_sigtimedwait',177)
SYS_rt_sigtimedwait_time64 = Constant('SYS_rt_sigtimedwait_time64',421)
SYS_rt_tgsigqueueinfo = Constant('SYS_rt_tgsigqueueinfo',335)
SYS_sched_getaffinity = Constant('SYS_sched_getaffinity',242)
SYS_sched_getattr = Constant('SYS_sched_getattr',352)
SYS_sched_getparam = Constant('SYS_sched_getparam',155)
SYS_sched_get_priority_max = Constant('SYS_sched_get_priority_max',159)
SYS_sched_get_priority_min = Constant('SYS_sched_get_priority_min',160)
SYS_sched_getscheduler = Constant('SYS_sched_getscheduler',157)
SYS_sched_rr_get_interval = Constant('SYS_sched_rr_get_interval',161)
SYS_sched_rr_get_interval_time64 = Constant('SYS_sched_rr_get_interval_time64',423)
SYS_sched_setaffinity = Constant('SYS_sched_setaffinity',241)
SYS_sched_setattr = Constant('SYS_sched_setattr',351)
SYS_sched_setparam = Constant('SYS_sched_setparam',154)
SYS_sched_setscheduler = Constant('SYS_sched_setscheduler',156)
SYS_sched_yield = Constant('SYS_sched_yield',158)
SYS_seccomp = Constant('SYS_seccomp',354)
SYS_select = Constant('SYS_select',82)
SYS_semctl = Constant('SYS_semctl',394)
SYS_semget = Constant('SYS_semget',393)
SYS_semtimedop_time64 = Constant('SYS_semtimedop_time64',420)
SYS_sendfile = Constant('SYS_sendfile',187)
SYS_sendfile64 = Constant('SYS_sendfile64',239)
SYS_sendmmsg = Constant('SYS_sendmmsg',345)
SYS_sendmsg = Constant('SYS_sendmsg',370)
SYS_sendto = Constant('SYS_sendto',369)
SYS_setdomainname = Constant('SYS_setdomainname',121)
SYS_setfsgid = Constant('SYS_setfsgid',139)
SYS_setfsgid32 = Constant('SYS_setfsgid32',216)
@@ -1234,6 +1597,7 @@ SYS_setgroups32 = Constant('SYS_setgroups32',206)
SYS_sethostname = Constant('SYS_sethostname',74)
SYS_setitimer = Constant('SYS_setitimer',104)
SYS_set_mempolicy = Constant('SYS_set_mempolicy',276)
SYS_setns = Constant('SYS_setns',346)
SYS_setpgid = Constant('SYS_setpgid',57)
SYS_setpriority = Constant('SYS_setpriority',97)
SYS_setregid = Constant('SYS_setregid',71)
@@ -1247,6 +1611,7 @@ SYS_setreuid32 = Constant('SYS_setreuid32',203)
SYS_setrlimit = Constant('SYS_setrlimit',75)
SYS_set_robust_list = Constant('SYS_set_robust_list',311)
SYS_setsid = Constant('SYS_setsid',66)
SYS_setsockopt = Constant('SYS_setsockopt',366)
SYS_set_thread_area = Constant('SYS_set_thread_area',243)
SYS_set_tid_address = Constant('SYS_set_tid_address',258)
SYS_settimeofday = Constant('SYS_settimeofday',79)
@@ -1254,6 +1619,11 @@ SYS_setuid = Constant('SYS_setuid',23)
SYS_setuid32 = Constant('SYS_setuid32',213)
SYS_setxattr = Constant('SYS_setxattr',226)
SYS_sgetmask = Constant('SYS_sgetmask',68)
SYS_shmat = Constant('SYS_shmat',397)
SYS_shmctl = Constant('SYS_shmctl',396)
SYS_shmdt = Constant('SYS_shmdt',398)
SYS_shmget = Constant('SYS_shmget',395)
SYS_shutdown = Constant('SYS_shutdown',373)
SYS_sigaction = Constant('SYS_sigaction',67)
SYS_sigaltstack = Constant('SYS_sigaltstack',186)
SYS_signal = Constant('SYS_signal',48)
@@ -1263,7 +1633,9 @@ SYS_sigpending = Constant('SYS_sigpending',73)
SYS_sigprocmask = Constant('SYS_sigprocmask',126)
SYS_sigreturn = Constant('SYS_sigreturn',119)
SYS_sigsuspend = Constant('SYS_sigsuspend',72)
SYS_socket = Constant('SYS_socket',359)
SYS_socketcall = Constant('SYS_socketcall',102)
SYS_socketpair = Constant('SYS_socketpair',360)
SYS_splice = Constant('SYS_splice',313)
SYS_ssetmask = Constant('SYS_ssetmask',69)
SYS_stat = Constant('SYS_stat',106)
@@ -1278,6 +1650,7 @@ SYS_symlink = Constant('SYS_symlink',83)
SYS_symlinkat = Constant('SYS_symlinkat',304)
SYS_sync = Constant('SYS_sync',36)
SYS_sync_file_range = Constant('SYS_sync_file_range',314)
SYS_syncfs = Constant('SYS_syncfs',344)
SYS__sysctl = Constant('SYS__sysctl',149)
SYS_sysfs = Constant('SYS_sysfs',135)
SYS_sysinfo = Constant('SYS_sysinfo',116)
@@ -1290,10 +1663,14 @@ SYS_timer_create = Constant('SYS_timer_create',259)
SYS_timer_delete = Constant('SYS_timer_delete',(259+4))
SYS_timerfd = Constant('SYS_timerfd',322)
SYS_timerfd_gettime = Constant('SYS_timerfd_gettime',326)
SYS_timerfd_gettime64 = Constant('SYS_timerfd_gettime64',410)
SYS_timerfd_settime = Constant('SYS_timerfd_settime',325)
SYS_timerfd_settime64 = Constant('SYS_timerfd_settime64',411)
SYS_timer_getoverrun = Constant('SYS_timer_getoverrun',(259+3))
SYS_timer_gettime = Constant('SYS_timer_gettime',(259+2))
SYS_timer_gettime64 = Constant('SYS_timer_gettime64',408)
SYS_timer_settime = Constant('SYS_timer_settime',(259+1))
SYS_timer_settime64 = Constant('SYS_timer_settime64',409)
SYS_times = Constant('SYS_times',43)
SYS_tkill = Constant('SYS_tkill',238)
SYS_truncate = Constant('SYS_truncate',92)
@@ -1308,9 +1685,11 @@ SYS_unlink = Constant('SYS_unlink',10)
SYS_unlinkat = Constant('SYS_unlinkat',301)
SYS_unshare = Constant('SYS_unshare',310)
SYS_uselib = Constant('SYS_uselib',86)
SYS_userfaultfd = Constant('SYS_userfaultfd',374)
SYS_ustat = Constant('SYS_ustat',62)
SYS_utime = Constant('SYS_utime',30)
SYS_utimensat = Constant('SYS_utimensat',320)
SYS_utimensat_time64 = Constant('SYS_utimensat_time64',412)
SYS_utimes = Constant('SYS_utimes',271)
SYS_vfork = Constant('SYS_vfork',190)
SYS_vhangup = Constant('SYS_vhangup',111)
Loaded 100 of 809 files, more files were not shown because too many files have changed in this diff. Show more