AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Module Coding (https://forums.alliedmods.net/forumdisplay.php?f=9)
-   -   Client Side Metamod (https://forums.alliedmods.net/showthread.php?t=23515)

Twilight Suzuka 01-22-2006 08:29

Client Side Metamod
 
Ever wanted to have real control over a clients HUD, to set up actual games for dead players to play, to just screw around with the client for a while?

With Cl_metamod module, this will be a reality.

cl_metamod works by injecting a .dll into the clients memory, then hooking it, just like a hack. Once hooked, the .dll sends/receives information to and from the server through a variety of methods, mostly commands (slow but reliable).

When cl_metamod module functions are used, all clients will be forced to use cl_metamod, and will be disconnected if they do not run it, in a fashion similar to CD.

As it is an injection type method, it qualifies as a hack, and thus your server cannot be VAC secured. Making a VAC secured server with this module will result in a crash, to protect players.

This project is a three step process:
1. Injector
2. Injected .dll
3. Server-side receiver

Currently the first step is completed, and may be downloaded below.

The injector serves as a relay, waiting until the mod of your choosing starts, then injecting the .dll into the mod in a reliable fashion.

The .dll hooks the right things and relays info to the server side receiver, and receives info from it.

[pm] Please make sure your attachments don't contain uncalled-for comments before posting them. Thanks. [/pm]

Hawk552 01-22-2006 10:33

Awesome.

Is this the same as the one on the bottom of the metamod page that's MIA?

BAILOPAN 01-22-2006 13:54

lol, and I thought this thing had been lost to the ages from VAC

nice

PM 01-22-2006 13:56

does this run on linux :idea:

Twilight Suzuka 01-22-2006 17:30

Hawk: Yes

BAIL: Lost but not forgotten! ^^

PM:
This is the injector, for clients. Currently, it is windows only. The module which will accept signals from the client will be both win32 and linux.

If I can find the right code for the injector and the injected .dll, I will port it to linux, but I don't know of TOO many linux HL1 clients.

Twilight Suzuka 01-23-2006 13:02

Update: I added an automatic loading sequence to the loader.

This means you can define, in a file, the dll you want to inject, and the window you want to inject it into, as well as an backup .dll, in case the first one doesn't inject properly.

The file is: injector_config.ini

And you put these in it:
#inject_window <window>
#inject_dll <dll>
#inject_auxdll <auxdll>

All other lines will be ignored, thanks to AMXx for the strbreak function ^^

Also, I've found that the library this uses is entirely windows, and that there is no way to port it to linux, so I will have to make an entirely new loader for linux clients ^^

cybermind 01-23-2006 19:06

Is this [based off] the original cl_metamod, or is it your own concoction?

Twilight Suzuka 01-23-2006 20:13

Yeah.

Obbin 02-04-2006 16:13

Wow! :up:

v3x 02-04-2006 17:50

Usage examples? err.. :?

Twilight Suzuka 02-04-2006 18:02

Its not done yet...

Obbin 02-05-2006 03:54

Does this get caught as a cheat by HLguard or CD?

v3x 02-05-2006 04:47

Why would it? Nobody ever said it was that kind of hack :P

Obbin 02-05-2006 05:09

Ok, good :)

EDIT:
When the module is done fully, could you add a server cvar or whatever to set it to "optional" mode like CD (Width or widthout the name thingy)

Twilight Suzuka 02-05-2006 19:10

No. If you enter a server running the CM module for AMXx, all clients must have the cl_metamod module loaded in their client.

Obbin 02-06-2006 10:21

Ok

PM 02-06-2006 12:41

Quote:

Originally Posted by Twilight Suzuka
No. If you enter a server running the CM module for AMXx, all clients must have the cl_metamod module loaded in their client.

I don't want to be rude or anything... but, who would actually load it? :]
It's like cheating-death for me, I didn't join any cheating death enabled servers because it was a pain in the ass to doubleclick that crazy icon on the desktop. If you are modifying the client now as well, why not just create a new mod from scratch?

Just my thoughts on this.

Twilight Suzuka 02-06-2006 14:35

Oh, I'm just doing this entire thing for the lulz PM ^^

I need it on my server for altering the HUD, but (just like just about everything I make) I doubt anyone will use it ^^

Obbin 02-10-2006 10:16

Ohh, i can't wait until this is released :D
It just looks great!

p3tsin 02-12-2006 09:21

:o nice
would u also be able to read client aliases, binds, etc.. ?

Twilight Suzuka 02-12-2006 11:53

Perhaps.

Obbin 02-23-2006 03:22

Why is this unstickied?
Have you stoped working on it or is it just cause it isn't finished?

Twilight Suzuka 02-23-2006 07:13

Its not finished, and it might not be finished for a while.

evilspy 02-23-2006 07:36

Quote:

Originally Posted by v3x
Why would it? Nobody ever said it was that kind of hack :P

How would CD know that it isn't "that kind of hack" :P

Twilight Suzuka 02-23-2006 09:46

Hacking through CD is easy evilspy; you just have to load before it. ^~

Geesu 02-24-2006 10:32

I could see using this for warcraft mod if it modifies the hud, but is it possible to make it OPTIONAL, I wouldn't want to use it if ALL of the clients had to have it installed

Twilight Suzuka 02-24-2006 15:34

If its optional, then how would it work? The server would request a function and...never receive a response.

Zenith77 03-03-2006 15:24

Umm instead of making the functions affect everyone globaly why not just loop through each player and target them indivisualy to see if they have the add on, and if not allow a forwarded function that tells the plugin that the client does not have it and let the author decide what to do from there. ^^

Twilight Suzuka 03-03-2006 19:05

It doesn't effect people globally. If you use a function, IE, it will send a message to the client to interact with cl_metamod, it either has to succeed, meaning the client will have to have cl_metamod, or the function will fail.

Geesu 03-15-2006 11:50

Quote:

Originally Posted by Twilight Suzuka
If its optional, then how would it work? The server would request a function and...never receive a response.

exactly :) And if there is no response then we assume they don't have it installed :P :P

Or i can check for a client cvar to see if it exists

iPodRx 03-31-2006 19:25

With this you could make your own anticheat system that will run on people?
>If So...

Could you make it like VAC?
>>Meaning: It downloads when the user connects to the server and runs without them ever knowing. Avoiding any downloading of programs and such.

Twilight Suzuka 03-31-2006 22:50

No. I can't force a download onto a client like that.

iPodRx 03-31-2006 23:52

It would be pretty cool if you could do it, but it could cause issues.

An Idea would be if they don't download then they marked as one that didn't.

schnitzelmaker 04-26-2006 13:34

It is possible to download them like a map,but to running it on a client is the problem.

-W0kk3L- 05-09-2006 13:45

Pre-loading probably isn't the problem, i think.
But does CS need to be restarted before this dll is loaded?

semi 05-12-2006 13:37

Nice, I can think of a lot of uses for this, especially if you can access opengl stuff directly so you could draw a RTCW-like teamplay overlay hud, or add an NS-style radar to cs, or any other number of teamplay helping things.

Is there any chance we'll see keysigning of the plugins? I think pubkey authentication would eliminate all potential abuse--Make the client only able to load plugins signed by the central authority defined by the server, which would default to either you or the amx team or whatever. Then plugin devels could set that to "load any" on their listen servers to devel, and leagues could potentially keep their own list of allowed plugins.

Failing that, something more simple like just adding a list of hashes of the plugins that are allowed, and also force this into the userstring of the client so that everyone knows what they are running.

schnitzelmaker 05-13-2006 08:11

The best is to using it as Anti-Cheat, that at every mapchange,connect the modul is reloaded and anti-cheat are running.
But it is not possible to start the dll, this function only know Valve how it work.
And the risk to use it to run hacks,virus from the server to a client is too high,or a dll that steal steamaccounts.

I dont know,but the function to download and run like Vac1 must be anywhere in the (client.)dll, or have Valve delete this function??

Urahara 05-13-2006 08:51

Ohayo! :D

That is not how VAC1 and VAC2 are run!

sparky99 05-19-2006 07:24

CL-METAMOD WISHLIST
 
How about injecting Bump map info into the client render or detail-tetures OR how about an active/moving sky or movie???

Would this be possilbe with CL-meta mod.

Just trying to balance out the would be hacker requests. Maybe some
spirt of H/life stuff too.

anssik 03-28-2007 10:01

Re: Client Side Metamod
 
How is this module progressing or have you dumped the project? This sounds very interesting so I would like to know.


All times are GMT -4. The time now is 22:36.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.