Giter Site home page Giter Site logo

mod-wardeninject-tools's Introduction

mod-wardeninject-tools's People

Contributors

gozzim avatar

Stargazers

 avatar

Watchers

 avatar

mod-wardeninject-tools's Issues

[Bug]: compilation error

Current Behaviour

compilation error
Capture d'Γ©cran 2024-04-10 011118cc

Expected Behaviour

compile

Steps to reproduce the problem

None

Extra Notes

No response

AC rev. hash/commit

Commits on Apr 9, 2024

Operating system

Windows 11 x64

Custom changes or Modules

No response

[Bug]: Complex Script Formatting

Current Behaviour

Formatting large scripts with different kinds of comments or line breaks (be aware of OS differences in line breaks) doesn't work correctly, corrupting the injected payload

Expected Behaviour

The script should be formatted to a one-liner without comments or unnecessary duplicate spaces due to leading or trailing spaces/tabs or line breaks being converted to spaces

Steps to reproduce the problem

  1. Add AIO as Script (unedited)
  2. Inject AIO dependencies
  3. Try to inject AIO

Extra Notes

Not entirely sure yet where the problem is and if it actually is the comments, which definitely seem to complicate things, or if it is interpretation issues due to larger scripts having more complex functions and if maybe a space can somehow be missing after an end due to the formatting or if in lua maybe sometimes a semicolon might actually be required and make a difference between a space and a semicolon (I don't have enough lua experience for this but thought the end is what matters for this and semicolons don't really matter as spaces do the same job)

Especially since manually formatting, I didn't have an issue so far but the important difference is that i manually remove comment blocks here and then using replace with regex:

  1. Remove all line comments until end of line: --.+$
  2. Remove any leading spaces at start of line: ^\t+
  3. Remove any trailing spaces at end of ine: [ ]+$
  4. Remove any empty lines: ^[ ]*\n
  5. Replace all line breaks with spaces: \n with

Though of course here multiple spaces behind each other can remain, but I can't just replace all duplicate spaces with single ones as this might be intended in prints, or messages, or any string being used really. Checking for this as well would be a bit overkill considering it doesn't really cause that many problems or additional load/traffic.

AC rev. hash/commit

azerothcore/azerothcore-wotlk@dba57a6

Operating system

Ubuntu 20.04

Custom changes or Modules

[Bug]: Kicks by Warden for "Undocumented Check" sometimes on Injections

Current Behaviour

Warden sometimes kicks when injection happens with log Player kicked with reason: Warden: Undocumented Check

Expected Behaviour

Warden should not take action here

Steps to reproduce the problem

  1. Login
  2. Type /reload until kick accures
  3. Repeat by relogging until kick

Extra Notes

Apparently this kick only happens when warden checks are interrupted by either a new request before the old one is finished or a force. (Functions RequestChecks() and ForceChecks())
All failed checks succeed when just letting them finish normally.
This also opens the issue that we cannot just force an injection on login that easily.

You can observe this behavior by commenting out the warden->ForceChecks(); lines in function InitialInjection and then repeat to relog and use /reload. You will not observe any kicks by warden.
Then using the commands .inject request or .inject force at least once, you will start observing kicks again.

AC rev. hash/commit

azerothcore/azerothcore-wotlk@30197f4

Operating system

Server Ubuntu 20.04, Client Windows 10

Custom changes or Modules

mod-eluna
mod-anticheat
mod-duel-reset
mod-pvp-titles
mod-FirstLogin-AIO
mod-bg-reward
mod-learn-highest-talent
mod-transmog

[Feature]: Compression

Describe your feature request or suggestion in detail

Add compression for payloads

Describe a possible solution to your feature or suggestion in detail

Port the lua compression for data into a C++ class with functions for compression and decompression

Additional context

No response

WIP: Get Ready for Testing

ToDo

  • Warden Packet Injection Initialization
    • Inject primary helper functions for communication and execution
    • Inject functions to handle addon injection
    • Inject configured payloads
    • Check OnLoginInject variable
  • Implement injection from file
    • File loading as payload
    • Load file from set ScriptPath or root depending on start of path string
  • Payload Management
    • Injection to handle payloads
    • Chunk large payloads into multiple packets
    • Payload Storage
  • Event Handling
    • OnLogin: Initialize Injection
    • OnReload: Reinitialize Injection
    • Handle Script Injection requests
  • Commands
    • Implement Command for code injection
    • Implement Command for file injection
    • Implement Command for preloaded Script injection
    • Implement various debugging commands
  • Implement config
    • Config to enable addon injection initialization onLogin
    • Config client cache table location
    • Config to load scripts for injection dynamically
    • Config for default script path
    • Default path script to {source}/modules/mod-WardenInject-Tools/payloads
  • Example Files
    • AIO and Dependencies
    • Example payload

Known Bugs:

  • Saved Variables do not work as intended
  • Eluna Scripts are not executed or even received after Client AIO was injected

[Feature]: Caching

Describe your feature request or suggestion in detail

Add caching for payloads server and client-sided to reduce traffic and load

Describe a possible solution to your feature or suggestion in detail

No response

Additional context

No response

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.