Commit Graph

540 Commits

Author SHA1 Message Date
71f9fea419 chore 2025-04-10 18:10:13 +08:00
LilRan
7ff305a0f8 Merge pull request GH-9 from Anon0x23/Anon0x23-patch-1
refactor, asyncio, colorful console output, BCC mode fallback, interactive menu
2025-04-10 15:59:43 +08:00
Anon0x23
665ec7efd6 Update shot.py
Add multi-platform support for pyarmor_runtime executables

1. Platform Detection and Executable Selection:
   - Automatically detects OS (Windows, Linux, macOS) and architecture
   - Intelligently selects the appropriate executable based on platform
   - Supports architecture-specific executables (e.g., pyarmor-1shot-windows-x86_64.exe)
   - Falls back to platform-specific and generic executables when needed

2. Runtime File Auto-Detection:
   - Added ability to automatically find all pyarmor_runtime files in a directory
   - Supports multiple runtime file formats (.pyd, .so, .dylib)
   - Recursively searches through all subdirectories

3. New Command-Line Options:
   - Added --executable option to specify a custom executable path
   - Added --auto-detect-runtime option to automatically detect runtime files
2025-04-10 00:02:21 +02:00
Anon0x23
b404b47d74 Update 0.1.1
## [0.1.1]

### Added
- Interactive menu system

- BCC decryption when standart decryption fails
- Colorful console output for better readability
- Multiprocessing with configurable thread count
- Improved logging with color-coded messages

### Fixed
- Improved error detection for BCC mode switching
- Fixed indentation issues in BCC fallback method
- Enhanced timeout handling for long-running deobfuscation tasks
2025-04-09 23:42:59 +02:00
本光
4363ff705c feat: multi process (GH-6) 2025-04-06 00:40:47 +08:00
352d14ec82 fix: type hints, match 2025-03-26 15:10:12 +08:00
e7397945d3 feat: file format detection, single file mode v0.1.0 2025-03-25 23:47:21 +08:00
48cab893c9 ci: build workflow 2025-03-15 23:26:59 +08:00
64df67ac8a fix: temp patch for robustness 2025-03-15 22:35:38 +08:00
d9e00c3762 docs: update readme 2025-03-07 11:08:08 +08:00
1d5b35a9d6 fix: py3.12 py3.13 limited support v0.0.1 2025-03-07 00:10:45 +08:00
d88944b832 fix: py3.8 limited support 2025-03-06 14:55:22 +08:00
dc5d2b95e0 fix: py3.11 limited support 2025-03-05 20:07:46 +08:00
c3f9db22c1 fix: py3.10 limited support 2025-03-05 18:08:18 +08:00
7d0e38e9cf chore: interact & quality 2025-03-05 10:41:09 +08:00
c66529938f fix: type hints (GH-2) 2025-03-04 21:22:56 +08:00
a3bf6aa443 chore: do not treat warnings as errors 2025-03-04 20:02:27 +08:00
Suyun114
3aaae62400 fix: use cast to avoid warnings 2025-03-04 19:34:16 +08:00
832f35413b feat: mix str for disasm 2025-03-02 23:48:24 +08:00
6465cf03fe wip: executable 2025-03-02 22:42:04 +08:00
87b83d754a wip: ast! :) 2025-03-02 21:39:14 +08:00
69bb088847 fix: wrong xor key offset, remove redeclaration 2025-03-01 17:27:06 +08:00
93ad403e99 wip: co_code 2025-03-01 15:25:03 +08:00
dacfd29c02 wip: co_flags 2025-02-28 16:56:15 +08:00
21785687b6 wip: fulfill co_code aes nonce xor key calculate 2025-02-28 14:38:42 +08:00
5f66aa8d25 wip: co_code aes nonce xor key calculate 2025-02-28 00:39:00 +08:00
2cab8c4c92 wip: header parsing 2025-02-27 16:10:30 +08:00
79e22e193a wip: extract data 2025-02-27 14:01:14 +08:00
Michael Hansen
5e1c4037a9 Merge pull request #522 from samyk/report-invalid-opcode
show INVALID opcode properly if < 0
2024-10-13 09:54:24 -07:00
samy kamkar
bbc19885f4 show INVALID opcode properly if < 0 2024-10-12 13:45:16 -07:00
Michael Hansen
dc6ca4ae36 Remove additional specialized opcode that wasn't ordered with the others 2024-08-12 11:39:36 -07:00
Michael Hansen
19f8372358 Remove specialized opcodes.
They are used at runtime, and not written to .pyc / .pyo objects.
2024-08-12 11:24:07 -07:00
Michael Hansen
f37caa8f2a Test runner refactor (#508)
* Port test runner script to Python.

This allows us to keep the test output in sorted order while still running the
tests in parallel.  It also now defaults to using the number of available CPU
threads for parallel execution, rather than the previously hard-coded default.

* Also port decompyle_test.sh script to python within run_tests.py

* Fix cmake check target for multi-config generators.

Adds testing of release builds on both MSVC and GCC.

* Fix diff comparisons on Windows

* Ubuntu runners don't have ninja by default
2024-08-08 15:55:35 -07:00
Michael Hansen
b939aeb87c Update operand documentation for new opcodes and oparg changes.
Also extends the disassembly oparg decoding for new 3.13 additions.
2024-08-07 15:44:36 -07:00
Alex
75de28decc Python 3.13 initial support (#497)
* Support for JUMP_BACKWARD

* Initial support for Python 3.13

* Remove opcode from another old PR, not needed in the current one

* Update bytes/python_3_13.cpp

Co-authored-by: Michael Hansen <zrax0111@gmail.com>

* Update bytecode_ops.inl

Co-authored-by: Michael Hansen <zrax0111@gmail.com>

* Update .gitignore

Co-authored-by: Michael Hansen <zrax0111@gmail.com>

* Update bytecode_ops.inl

---------

Co-authored-by: Michael Hansen <zrax0111@gmail.com>
2024-08-07 15:39:40 -07:00
Michael Hansen
48d1bfa59f Fix a null dereference.
Fixes #486
2024-08-06 08:21:12 -07:00
Alex
cb32b581ee Add one more missed flag: CO_ASYNC_GENERATOR (#505)
* Support for JUMP_BACKWARD

* Add missed flag CO_ASYNC_GENERATOR

* Revert "Support for JUMP_BACKWARD"

This reverts commit 81543ece8c481b6e6b0f5724d8aa6766d3dcb8ae.
2024-08-05 12:35:10 -07:00
Michael Hansen
c925dafcdf Also update the disassembly output to match the new flag values 2024-08-04 12:55:35 -07:00
Michael Hansen
0942dec653 Adjust CO_FUTURE_ flags to match Python 3.8 changes, and add some missing flags
Fixes #504
2024-08-04 12:55:28 -07:00
Michael Hansen
0b45b5fa07 Fix FORMAT_VALUE for values that have both a conversion and a format_spec.
Also output the conversion and flags in disassembly.
2024-08-01 13:28:43 -07:00
easyz
6ad3ceb67e Add support for swap bytecode and simple WITH_EXCEPT_START bytecode support. (#488)
* Modify .gitignore

* Added support for SWAP and WITH_EXCEPT_START, WITH_EXCEPT_START is simply added on top of SETUP_WITH_A so that it works properly.

* Resolve the warning about comparing size_t and int.

* Revert "Resolve the warning about comparing size_t and int."

This reverts commit 54dfe36629855ca557277572d307dacaf6a64fe9.

* Reapply "Resolve the warning about comparing size_t and int."

This reverts commit d21d1681ed6496856ea65151e5fd798f0a718416.

* Modify decompyle_test.sh

* Modify .gitignore

* Fix the logic error by placing the assignment inside the tuple

* Re-adding test files

* Fixing redundant brackets

* Add support for swap bytecode and simple WITH_EXCEPT_START bytecode support.

* Clean up some formatting issues

---------

Co-authored-by: Michael Hansen <zrax0111@gmail.com>
2024-06-23 11:59:30 -07:00
Michael Hansen
b9f3d145bb Merge pull request #490 from Levak/levak/tests-parallel
Run tests in parallel or only some with a filter
2024-06-23 11:49:06 -07:00
Michael Hansen
462fc46424 Add JOBS parameter to GH workflows (currently default, but not guaranteed)
... and fix missing newline at EOF
2024-06-23 11:46:17 -07:00
Michael Hansen
d10c47af1e Add some tests for #492 2024-06-23 11:36:20 -07:00
Michael Hansen
ed49554b79 Merge pull request #492 from Levak/levak/fix_long_numeric
Fix Long Numeric Integer representation for Python 3
2024-06-23 11:35:10 -07:00
Levak Borok
2ae7f58a26 Fix Long Numeric Integer representation for Python 3
Before Python 3, long integers were input with an L suffix. Since
Python 3, all integers are 64-bit and do not need the L suffix.
2024-06-22 23:19:18 +02:00
Levak Borok
d8f955d692 Run tests in parallel or only some with a filter
`make check JOBS=4` will spawn 4 workers and spread the tests among them.
`make check FILTER=try` will only run tests that contain `try` in their name.
2024-06-19 17:56:06 +02:00
Michael Hansen
513e03c883 Remove unnecessary template parameter in destructor. Fixes #487 2024-05-30 14:56:07 -07:00
Michael Hansen
6467c2cc52 Merge pull request #469 from greenozon/master
Fix for Centos6/7 compilation issues
2024-03-12 15:56:16 -07:00
Alex
8367a8e0ab Return back a fix for Centos6/7 compilation issues not related to shadow ones 2024-03-12 22:58:43 +02:00