Skip to content

Windows 4.2.0 - #258

Merged
Anof-cyber merged 15 commits into
masterfrom
dev
Oct 17, 2026
Merged

Anof-cyber merged 15 commits into
masterfrom
dev

Conversation

@Anof-cyber

Copy link
Copy Markdown
Member

Pull Request

⚠️ IMPORTANT - READ BEFORE SUBMITTING

Required Pre-Submission Checklist

  • I have read the CONTRIBUTING.md file
  • I have created a GitHub issue for this change and linked it below
  • I have forked the dev branch (NOT master)
  • I understand that the master branch is ONLY updated when a new release is created
  • I understand that pull requests to master will be REJECTED

⛔ Critical Information

DO NOT submit a pull request directly to the master branch. The master branch is only updated when a new release is created. No direct commits or merges are accepted to master - neither from the InterceptSuite team nor from contributors.

All changes MUST be submitted to the dev branch, which contains the latest code and commits.

You MUST create a GitHub issue first before submitting a pull request. This allows the InterceptSuite team to:

  • Verify if the bug is already fixed in the development branch
  • Confirm if a new feature is accepted and approved
  • Avoid duplicate work

Pull requests without an associated issue will be rejected.


Pull Request Details

Type of Change

  • Bug Fix
  • New Feature
  • Code Improvement/Refactoring
  • Documentation Update
  • Other (please describe):

Related GitHub Issue

Issue Link:

Platform(s) Affected

  • Windows
  • macOS
  • Linux
  • Cross-platform/All

macOS Application Changes

Does this pull request include changes to the macOS application?

  • Yes
  • No

If YES, you MUST answer the following:

macOS Code Signing & Verification

  • I have signed the macOS app with a valid Apple Developer account
  • I have run the signed application on macOS to verify my changes work as expected
  • I confirm the application launches and functions correctly with my changes

⚠️ Important: If you cannot sign the macOS app to verify your code changes work, please DO NOT submit this pull request. Instead, use the GitHub issue you created to let the InterceptSuite team fix the bug or add the feature. You will need to wait for the next release.


Description of Changes

What does this pull request do?

How has this been tested?

  • Test environment (OS, version, etc.):
  • Test steps:
  • Test results:

Compilation & Dependencies

  • I have reviewed the CONTRIBUTING.md file for compilation instructions
  • I have verified all required libraries and packages are documented
  • My changes compile without errors
  • My changes do not introduce new dependencies (or I have documented them below)

New dependencies (if any):


Screenshots/Logs (if applicable)


Additional Context


Final Checklist

  • My code follows the project's coding style
  • I have commented my code, particularly in hard-to-understand areas
  • I have updated documentation as needed
  • My changes do not generate new warnings or errors
  • I have tested my changes on the target platform(s)
  • I have verified this change is based on the latest dev branch
  • I understand that pull requests without an associated GitHub issue will be rejected

…ding

- Installer: lock the install folder (SYSTEM/Administrators full, Users read+execute); the SYSTEM service runs from it, and a folder chosen outside Program Files is usually writable by every user.
- Pipes: the service creates every instance with FILE_FLAG_FIRST_PIPE_INSTANCE so another process cannot squat the name. The GUI only talks to the process the SCM reports as ProxyBridgeSvc (PID check) and opens the pipe with SECURITY_IDENTIFICATION, so proxy credentials cannot be handed to a rogue server.
- DLL loading: the GUI no longer falls back to the DLL search path for ProxyBridgeCore.dll; GUI and CLI load it by absolute path with dependencies from its folder or System32 only.
…ine DLL and service

Only the GUI had a VERSIONINFO resource. A shared template (gui/res/pbver.inc) plus one small .rc per binary now gives the CLI, ProxyBridgeCore.dll and ProxyBridgeSvc.exe a file description, version, product name and copyright; compile.ps1 compiles and links them.
build(linux): ship setup.sh in the output folder
…ter shared with the Windows format

pb_profile parses and writes the Windows/macOS profile JSON with bounded
depth and size, strict validation (unknown proxy ids, types, ports are
errors) and atomic 0600 writes. Domain names are split into TargetDomains
on export and merged into the host list on import.
One file per profile under /etc/proxybridge/profiles plus settings.json,
converted from config.ini on first start. Unchanged profiles are not
rewritten. Docs, unit tests, headless GUI test and CI cover the new format.
settings.json now only names the active profile. Switching profiles also
switches the Enable Traffic Logging and DNS via Proxy values.
… the global toggle)

Each rule has an 'Also proxy localhost traffic' checkbox (shown only when the rule's action is a proxy). Connections to 127.x / ::1 that match a PROXY rule go direct unless that rule's box is ticked, so e.g. a browser rule can proxy localhost while a curl rule keeps it direct. The global 'Localhost via Proxy' menu item, ProxyBridge_SetLocalhostViaProxy and PBOP_SET_LOCALHOST are removed; AddRule/EditRule take a per-rule flag and the service protocol is now version 2. Profiles store LocalhostViaProxy per rule; an old profile's global value is used as the default for its rules, so existing profiles behave as before. README updated.
The Target Host limit goes from 511 to 8191 characters and from 64 to 1024 entries (process and port lists keep their limits). The GTK rule editor uses a multiline box; line breaks are display-only and are removed by gui_list.c before the text reaches the engine. Adds unit tests for the new limits and for the list helpers.
…r lists, multiline editor

Target Hosts and Target Domains are one list in the GUI: IPs, ranges and domain names can be mixed, up to 8191 characters, with one entry per line allowed (line breaks are display-only). The engine now matches a rule's host part when the IP matches an IP entry OR the resolved name matches a domain entry (it used to require both). Profiles still store TargetHosts and TargetDomains, so other apps and older versions read them unchanged; the GUI and CLI sort entries by type. Also: UTF-8/UTF-16 conversions always NUL-terminate, buffers are sized for the worst case, the CLI profile moved off the stack, and the rule list loses its Domains column. README updated.
@Anof-cyber Anof-cyber changed the title Windows 4.1.2 Windows 4.2.0 Oct 17, 2026
@Anof-cyber
Anof-cyber merged commit c855ffd into master Oct 17, 2026
8 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant