allfoxwy / add-dll-to-exe

Edit PE import directory table so that additional DLL would be loaded
1 stars 1 forks source link

vanilla-tweaks #2

Open shikulja opened 2 months ago

shikulja commented 2 months ago

Patching a game is a dirty method. Some vanilla-tweaks patches were transferred by SuperWoWhook, some remained. It is possible to create an additional .dll library into which patches will be transferred. Or add to existing ones (sideload-DLL.dll)

It will also be possible to enable and disable vanilla-tweaks options from a file, without patching the .exe

I’m writing to the injector topic, because I’m not sure that all the patches can be transferred to .dll

allfoxwy commented 2 months ago

Yes, these thing would happen. But loader can't tell what is happening inside a .dll, nor is there any conflict occurring.

Currently we depend on mods play well with others.

shikulja commented 2 months ago

Checking the compatibility of library modifications would be useful. But I'm just saying that it's a good idea to transfer the remaining VanillaFixes patches that have not yet been added to SuperWoW, and those that may be slightly different

allfoxwy commented 2 months ago

Ah, by "transfer" you mean implement same patch in SuperWoW instead of using VanillaFixes?

I'm NOT the author of SuperWoW, I couldn't do that as SuperWoW is closed source.

And personally, I would try implementing something new instead of rewrite something already exist.

VanillaFixes is good, we could continue use it.

shikulja commented 2 months ago

yes SuperWoW does not have all the features to get rid of the vanilla-tweaks patch Therefore, just a suggestion for the future, create a separate modification library for this.

The most important thing is that the dirty method will not be applied to the client, we will get rid of the patching method that requires other actions from the user, and make the entire modification more consistent and homogeneous.

allfoxwy commented 2 months ago

I personally think patching WoW.exe is cleaner than memory injector. Security software would alarm on memory injector.

In a ideal situation, the server could just give user a pre-patched WoW.exe so user need no action. Well, I don't depend on that so I currently ship UnitXP_SP3 with loader together.

Memory injector also need additional step to run WoW.exe. Nothing better.

shikulja commented 2 months ago

Antiviruses also complain about patching with false positives. But the injector has an advantage: we keep the original file untouched, which can make the modification process undoable, "without backups, and additional patcher logic to restore standard settings in binary".

allfoxwy commented 2 months ago

Antiviruses also complain about patching with false positives.

What kind of antivirus are you using? Because I'm reading a unusual 100% clean report: https://www.virustotal.com/gui/file/190890b11baac7c54755d296c99b5fa7cf7f456f35f427bedb610aeb8feb5aec

we keep the original file untouched

I didn't touch original file either.

And even the patched WoW.exe could be restored to original. I saved restore info inside it. Just I feel it's not necessary to write a restore program. You could just delete WoW-sideload-DLL.exe and use original one.

shikulja commented 2 months ago

https://www.virustotal.com/gui/file/263126914eba9d921305173c0b512823611c71fb3d4a5d2c93a142a2bfcb7721 The injector is fine. That's what I mean. But there may be problems with patchers. Same as physically changing a binary file

shikulja commented 2 months ago

Therefore, this proposal will get rid of vanilla-tweaks so that one modification method is used, and without false positives (one injector is better than both (both patcher and injector).

allfoxwy commented 2 months ago

Therefore, this proposal will get rid of VanillaFixes so that one modification method is used, and without false positives (one injector is better than both (both patcher and injector).

Ah I get your idea now.

Remote memory injector would trigger false alarm. And because of in early days it is the only way to build a mod. It exists. Currently people even disable their security software to use memory injector. I feel that's wrong but I won't deny injector's existence. These kind of program served us for decades and users accept it.

I think it's fine just let 2 kinds of loader on the air for now. New thing need time to be accept by people.

shikulja commented 2 months ago

No, I just mean to stop using the vanilla-tweaks patcher, need to transfer its options to .dll libraries for injection To use one modification method - Injector (good and flexible) compared to patcher, and it will be easier for players and cleaner for the game

allfoxwy commented 2 months ago

...to stop using the VanillaFixes patcher, need to transfer its options to .dll libraries...

VfPatcher.dll is already a .dll library, and it could be loaded by both kind of loader.

The unity of modification, it shouldn't be decided by us, user would make their choice.

shikulja commented 2 months ago

VfPatcher.dll and sideload-DLL do not have vanilla-tweaks options, or any other separate library doesn't exist either. I don't have that choice to use vanilla-tweaks settings, but use injector instead of patcher

shikulja commented 2 months ago

oh my God, I got confused, I meant vanilla-tweaks all this time, because of this we did not understand each other I'm very sorry for this

allfoxwy commented 2 months ago

Ah I read your point now.

I think you could open an issue report in Vanilla-tweaks git? https://github.com/brndd/vanilla-tweaks/issues

It would be best if the origin author make this change. If I implement it on my own, it would be like stealing or hijacking the project.

BTW I think currently you could patch WoW.exe with both vanilla-tweaks and sideload-DLL, they should work simultaneously. (they modify different part of the .exe file)

shikulja commented 2 months ago

That's what I do, I use both, but the patcher + injector is a difficult task for most players. I think the author will no longer change his project, since his patching method is completely finished as a project.

shikulja commented 2 months ago

https://github.com/brndd/vanilla-tweaks/issues/6

allfoxwy commented 2 months ago

Maybe create a new issue suggesting evolving into DLL?

It would be best if he come back to release a new version. He know where these patches come from so much easier to maintain them.