Comments (4)
Yes, it can patch anything in the executable memory of chrome.dll. It first searches for the pattern, which should be unique. It consists of the assembled bytes of the function's assembly instructions with other addresses and changing values as wildcards.
Once the pattern is found, a patch is applied at a given offset (can be 0, so it is directly overwritten where the pattern has been found). Normally, only one byte is patched, but you can also enter multiple assembled x86 instruction bytes (for example:
xor rax, rax
ret
to return false, as seen in the Remove QR Code Availability Patch).
If you want to contribute a patch, you can do it like this. I would then also recommend reading the comments in the patterns.xml file, although they are annoying to understand
You can also use a local patterns.xml file by starting the patcher installer in debug mode, as far as I remember
from chrome-developer-mode-extension-warning-patcher.
@Ceiridge Great. So what means orig
, patch
, sig
and sigOffset
attributes of PatchData
tag?
<Patch pattern="Remove QR Code Availability" group="5">
<PatchData type="x64" orig="0xE9" patch="0x00" sig="true" sigOffset="0x0">
<Offset>0x22</Offset> <!-- Offset to get to jmp + 1 -->
<NewBytes>4831C0C3</NewBytes> <!-- xor rax, rax; ret; (= return 0;) -->
</PatchData>
</Patch>
from chrome-developer-mode-extension-warning-patcher.
Type: x64 (x86-64). The patcher used to also support x86-32, so don't use x86
Orig: Original byte that should be replaced. 0xFF is a wildcard, so it would be ignored then. If the byte does not match, an error is thrown
Patch: The new byte
Sig: Is the pattern a signature? This is rather complicated to explain and it's very rarely used. It's sometimes more reliable to find an address of a function by searching for an instruction that has an address to it (for example call FunctionAddress). Then, if sig is enabled, it takes that address offset of the call instuction for example and calculates the right address.
SigOffset: If sig is enabled, this exact offset will be added to the followed address as explained above
Offset: This is added to the found pattern location, can also be 0x0
NewBytes: Optional, but this allows you to write multiple instructions easily. In this case: 0x48 31 C0
= xor rax, rax
and 0xC3
= ret
)
from chrome-developer-mode-extension-warning-patcher.
If you want to find out more about how signatures work (which I do not recommend) or something else in general: https://github.com/Ceiridge/Chrome-Developer-Mode-Extension-Warning-Patcher/blob/master/ChromePatcherDll/patches.cpp#L231
from chrome-developer-mode-extension-warning-patcher.
Related Issues (20)
- Patcher not working on MS Edge HOT 2
- Feature Request: Support Patching Unsupported Flag Ticker HOT 14
- How do I disable/uninstall this??????? HOT 1
- Enable the blocking version of the webRequest API for all extensions on Manifest V3. HOT 9
- Bug Report: The executable not launching in win 11 HOT 2
- Support removing "Send to your devices" and "Create QR code for this page" on Edge
- Removing 1 more extension warning HOT 12
- Enable webRequestBlocking for MV3 not working in Chrome or Edge HOT 5
- Enable webRequestBlocking for MV3 not working in latest Chrome HOT 3
- Bug Report: Unable to run offline HOT 2
- Bug Report: Unable to run with .NET Runtime 6.0 HOT 3
- Feature Request: declarativeNetRequest regular-expression length limit warning
- Bug Report: Patcher wouldn't run HOT 2
- Bug Report: "Enable webRequestBlocking extension API for Manifest V3 extensions" is not working HOT 1
- Bug Report: Extension warnings reappearing in Edge HOT 18
- Question: repatching necessary for every browser update? HOT 2
- Bug Report: Send to self is breaking other Extension HOT 3
- Outdated patterns for Edge Version 120.0.2210.91 (Offizielles Build) (64-Bit) HOT 2
- Doesn't work in Yandex browser HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chrome-developer-mode-extension-warning-patcher.