Conversation
- pin encoding="utf-8" on all subprocess.run text=True calls (apktool / jadx / Ghidra / Frida) so external-tool output doesn't crash decoding under Windows cp949/cp1252 or non-UTF-8 POSIX locales - write frida log with explicit utf-8 encoding - add sample/tests/_subproc_stub.py: a cross-platform "stub binary" helper so tests no longer hand POSIX-only #!/bin/sh scripts to subprocess.run on Windows (WinError 193). On POSIX it returns a shebang Python script with the exec bit; on Windows it returns a .cmd shim that delegates to the same Python via sys.executable - migrate all inline shell-stub fixtures in test_apk_decoder, test_jadx_runner, test_android_pipeline, and test_cli_android_audit to the helper - test_pipeline: use sys.executable instead of "python3" (no python3 alias on Windows) - test_cli_android_audit: pin utf-8 when reading bundled poc .sh files Verified: 805/805 unit tests pass on Windows 11 / Python 3.11 and the offset-e2e CLI smoke test produces the expected artifacts under a Korean-character output path. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sibling of venv/ for the Windows-side editable install. Should not be tracked, same as venv/. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Covers venv-mac, venv-linux, venv-kali, etc. — matches the project's target of running on macOS / Ubuntu / Kali / Windows from sibling per-platform virtualenvs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
encoding=\"utf-8\"on every external-tool subprocess (apktool / jadx / Ghidra / Frida) so stdout/stderr decoding doesn't crash under Windows cp949/cp1252 or non-UTF-8 POSIX locales. Frida log is also written as utf-8.sample/tests/_subproc_stub.py. Replaces the#!/bin/shstub scripts that previously crashed Windows tests withWinError 193. On POSIX it returns a shebang Python script with the exec bit; on Windows it returns a.cmdshim that delegates to the same Python viasys.executable. All inline shell-stub fixtures acrosstest_apk_decoder,test_jadx_runner,test_android_pipeline, andtest_cli_android_auditmigrated to the helper.test_pipeline.py:python3→sys.executable(nopython3alias on Windows).test_cli_android_audit.py: pin utf-8 when reading bundled poc.shfiles (was crashing on cp949 default)..gitignore: broadenvenv/to also cover sibling per-platform virtualenvs (venv-*/).fix multi so analysis fallbackcommit on the branch.Test plan
python -m unittest discover -s sample/tests→ 805/805 pass (16 env-dependent skipped). Pre-fix run was 27 errors.venomhook offset-e2e --static-json sample/examples/static_meta.sample.json --target 샘플.exe --out-dir out_win/한글_경로_테스트produces the expectedvenomhook.{json,db,md,js}artifacts.os.name == \"nt\"branches or are strictly utf-8-additive — POSIX behavior unchanged.#!{sys.executable}+chmod +x, identical to existing test stubs), but a freshpython -m unittest discover -s sample/testson each target OS before merge would close the loop.Out of scope
.claude/skills/...and other unrelated working-tree changes — left untouched.🤖 Generated with Claude Code