Skip to content
This repository has been archived by the owner on Apr 29, 2023. It is now read-only.

Suggestions/Accuracy/Improvements #74

Open
ghost opened this issue Aug 21, 2020 · 24 comments
Open

Suggestions/Accuracy/Improvements #74

ghost opened this issue Aug 21, 2020 · 24 comments
Labels
enhancement New feature or request

Comments

@ghost
Copy link

ghost commented Aug 21, 2020

Hi. Firstly. I appreciate your project very much. It's very helpful and does a great job as is. I do however have a few suggestions.

Bhop:
To detect bhop you could look at how many occourances of the suspect being in the air. on the ground for 1 tick. and in the air again there are. And allow the user to set the threshhold for how many bhops in a row is allowed. If that's not possible you could look at their velocity and if it's above a certain margine for more than X amount of ticks then add an infraction.

Wallhack:
This one is tricky. And this might not be possible with the tools at hand, and I'm sorry for suggesting it if it is not. But Since this bot is really good at going after rage cases You could try seeing how many ticks the enemy was visible for before being shot. The cs:go client does know when people are out and can be proven by the fact that vischams exist.

Triggerbot/Aimbot: How many ticks did the suspect have his crosshair on the enemy before doing damage. Again, Maybe not possible. The game client knows because dwInCrossID changes when you have your crosshair on somebody. A rage triggerbot would be 1. Also. A lot of aimbots that do the correction when you click mouse1 work that way. So it'd make a better aimbot detector.

Edit:

Another idea for an aimbot detector. Most aimbots calculate a Vector3 to do the actual flicking for rage aim. And it basically equates to The Suspect flicking in a perfectly straight line to the suspect. So. When an enemy is killed by the suspect you could calculate a Vector 3 for each tick up to X ticks before the enemy died and see if the viewangles on those ticks could be plotted on the vector3 you calculated upto the tick where the enemy died.

Thank you for taking the time to read this :3

@BlackYuzia
Copy link
Contributor

Bhop:
To detect bhop you could look at how many occourances of the suspect being in the air. on the ground for 1 tick. and in the air again there are. And allow the user to set the threshhold for how many bhops in a row is allowed. If that's not possible you could look at their velocity and if it's above a certain margine for more than X amount of ticks then add an infraction.

I think bhop detector can be too stupid.
Why? I can use mouse wheel and get the same result like if I was use cheats.

How can script (bot) understand was user use mouse wheel and didn't use cheats like "PRESS SPACE X TIMES"?

Triggerbot/Aimbot: How many ticks did the suspect have his crosshair on the enemy before doing damage. Again, Maybe not possible. The game client knows because dwInCrossID changes when you have your crosshair on somebody. A rage triggerbot would be 1. Also. A lot of aimbots that do the correction when you click mouse1 work that way. So it'd make a better aimbot detector.

Yea, I think this can be cool... if main developer do this. 🤔

@Suspectxyzz
Copy link

Wallhack:
This one is tricky. And this might not be possible with the tools at hand, and I'm sorry for suggesting it if it is not. But Since this bot is really good at going after rage cases You could try seeing how many ticks the enemy was visible for before being shot. The cs:go client does know when people are out and can be proven by the fact that vischams exist.

Triggerbot/Aimbot: How many ticks did the suspect have his crosshair on the enemy before doing damage. Again, Maybe not possible. The game client knows because dwInCrossID changes when you have your crosshair on somebody. A rage triggerbot would be 1. Also. A lot of aimbots that do the correction when you click mouse1 work that way. So it'd make a better aimbot detector.

https://youtu.be/p-i5b5lAR3k?t=489 (it is in Russian but it needs to improved Aimbot/Triggerbot +Anti-Aim legit aa)

@ghost
Copy link
Author

ghost commented Aug 26, 2020

@BlackYuzia Here's a simple legit AA detection script I made just now using information from here .I'm sorry if there are mistakes in it. I do not know javascript so I just took a look at your other classes and guessed what I had to do. Thanks

The reasoning behind this working is that, During normal play. These values can only disagree by a maximum of 35 degrees.

module.exports = (demoFile, sid, data) => {
    let ourPlayer = demoFile.players[tick.player];
    if (typeof ourPlayer === "undefined") {
        return;
    }
    if (ourPlayer.exists){
        lbyDelta = ourPlayer.m_flLowerBodyYawTarget - ourPlayer.eyeAngles().y_normalized
        if(lbyDelta < 35){
            return;
        }
            data.curcasetempdata.other_infractions.push(demoFile.currentTick)

    }
}

@BlackYuzia
Copy link
Contributor

BlackYuzia commented Aug 26, 2020

@Crazily good job 👍

Did you create PR (Pull Request) or you didn't test this?

@BlackYuzia
Copy link
Contributor

@Crazily you did a mistake 👀
image

tick is not defined.
how I saw in other detectors you need use this:
https://github.com/BeepIsla/CSGO-Overwatch-Bot/blob/master/detectors/aimbot.js#L5

@BlackYuzia
Copy link
Contributor

BlackYuzia commented Aug 26, 2020

@Crazily

hmm. I was a try to fix you mistake with ticks.
But if I run your detect I get other errors.

For example: Player is not exist always.
I mean, ourPlayer.exist always is undefined.

module.exports = (demoFile, sid, data) => {
		demoFile.on("tickend__", (tick) => {
    let ourPlayer = demoFile.players[tick.player];
	// console.log(ourPlayer);
    if (typeof ourPlayer === "undefined") {
		// console.log("user is undefined", ourPlayer);
        return;
    }
    if (ourPlayer.exists){
	console.log("user is exist"); // I didn't get this message.  
        // Player didn't exist and I didn't know did this attribute is really exist.
        // ourPlayer.isAlive return true or false. You did some wrong?
        lbyDelta = ourPlayer.m_flLowerBodyYawTarget - ourPlayer.eyeAngles().y_normalized
        if(lbyDelta < 35){
			console.log("AA is not detected:", lbyDelta);
            return;
        }
					console.log("AA is detected:", lbyDelta);
            data.curcasetempdata.other_infractions.push(demoFile.currentTick)

    }
	console.log("user didn't exist", ourPlayer.isExist);
});
}

UPD: I can't find "player.exist" on this site: https://saul.github.io/demofile/classes/_entities_player_.player.html
UPD2: Use ourPlayer.getProp("DT_CSPlayer", "m_flLowerBodyYawTarget"), I think this is work. But I didn't know what a y_normalized.

In docs I saw only ourPlayer.eyeAngles.pitch and ourPlayer.eyeAngles.yaw ( I think this is x and y right?)
So, I was use yaw.... and pitch in next code:

( I also test what really right value)
But I did false positive detections with next code:

module.exports = (demoFile, sid, data) => {
		demoFile.on("tickend__", (tick) => {
    let ourPlayer = demoFile.players[tick.player];
	// console.log(ourPlayer);
    if (typeof ourPlayer === "undefined") {
		// console.log("user is undefined", ourPlayer);
        return;
    }
    if (ourPlayer.isAlive){
		const m_flLowerBodyYawTarget = ourPlayer.getProp("DT_CSPlayer", "m_flLowerBodyYawTarget");
        // I test this two results. I didn't know what right.
		const lbyDelta2 = m_flLowerBodyYawTarget - ourPlayer.eyeAngles.pitch;
        const lbyDelta = m_flLowerBodyYawTarget - ourPlayer.eyeAngles.yaw;
		
		console.log("1", lbyDelta);
		console.log("2", lbyDelta2);
		
        if(lbyDelta < 35){
			console.log("AA is not detected:", lbyDelta);
            return;
        }
			console.log("AA is detected:", lbyDelta);
            data.curcasetempdata.AA_infractions.push(demoFile.currentTick)

    }
	// console.log("user didn't exist", ourPlayer.isExist);
		});
}

But how I write upper, I get false results with lbyDelta and lbyDelta2
image

@BlackYuzia
Copy link
Contributor

@ghost
Copy link
Author

ghost commented Aug 26, 2020

What you mean by "How do I write upper?" It may be being false because of the opposite direction if that's what you're talking about. Try returning if lbydelta is <=35 or is greater than or equal to 325 assuming that it's measured using 360 degrees.
I'll try to impliment it myself today and if I end up getting it working I'll send it in a pull request

@BlackYuzia
Copy link
Contributor

BlackYuzia commented Aug 26, 2020

Hmm. I done something... unstable.

This ... kinda work. But I don't sure by 100%.
I only know what this guy is 100% use AA:
image

I test it on myself and get only 1-2 detects... (this is great)
I saw one more guy who get greater like 10 detects:
image

But I didn't sure what he use anything...

@Crazily I will waiting your impliment of AA detector. Maybe you did better like me 👀

I also push all what I done to another branch.

MyBranch: https://github.com/BlackYuzia/CSGO-Overwatch-Bot/blob/aa_detector/detectors/AA.js

I get method for check from there:

https://www.unknowncheats.me/forum/counterstrike-global-offensive/208735-detecting-player-antiaim.html

@ghost
Copy link
Author

ghost commented Aug 27, 2020

I'd like to ask @BeepIsla or @BlackYuzia for help on this one. I've seemed to hit a wall with trying to detect Legit AA and not Rage AA I'm trying to create a variable for m_bFreezePeriod and can't figure out how to get it from the demoFile library you're using. The reasoning behind why like to be able to tell if it's freeze time is that the LBY Delta gained in freeze time will be more reliable since you cannot move. Rage AA's are automatically disabled by the cheat itself during freeze time but on Most cheats Legit AA is not.

@BeepIsla
Copy link
Owner

Game events:

  • round_start: Freeze time start
  • round_freeeze_end: Freeze time end

Network property:

  • demoFile.gameRules.props.DT_CSGameRules.m_bFreezePeriod

@ghost
Copy link
Author

ghost commented Aug 27, 2020

Thank you @BeepIsla, You a real one ;D

@BeepIsla
Copy link
Owner

Just as a note for both of you, I am currently in the process of finishing up the long awaited rewrite of this bot which I first talked about many months ago. I hope it will fix a few problems the bot had with demos from Perfect World and it should make adding new detectors more easy and the code will be a little less of a horrible mess. It may still take a little while to be ready though.

Just saying this now, I don't really think its worth it adding big new features right now but if you want you still can and then port it to the new version.

@ghost
Copy link
Author

ghost commented Aug 27, 2020

Thank you. And I hope the rewrite uses a more reliable method of detecting aimbot. The Rage AA detector that @BlackYuzia Made produced nearly no false positives when I tested it. But when I gave it a 30 second long demo of me anti-aiming it returned 500 positives. Seems like it'd make a welcome addition to the rewrite.

@BeepIsla
Copy link
Owner

Maybe, its not a priority right now things can always be updated later, for now I just focus on making it work.

@ghost
Copy link
Author

ghost commented Aug 27, 2020

That's fair. Better to have a base that works and works the way you want it.

@BeepIsla BeepIsla added the enhancement New feature or request label Aug 28, 2020
@BeepIsla
Copy link
Owner

I have released version 2.0 - The mentioned above AntiAim detection is included.

@blackslive
Copy link

blackslive commented Oct 3, 2020

https://streamable.com/xa1pei
That person was legitimized by ow boost. The report was made recently but no aimbot was detected.
what can i change to make aimbot detection more accurate?
Screenshot_3

another case that aimbot was not detected. wall was detected because I lowered the definition from 5 to 4.
https://streamable.com/rguc6z
Screenshot_34

@blackslive
Copy link

this script is a joke. the suspect was semi-rage, only attacked 1 explosive grenade while his partner passed. that's why he took griefing, he didn't take aimbot or wall. this script is manipulated to legitimize suspicious semi-ragers.
Screenshot_3
https://streamable.com/65mz2z

@BeepIsla
Copy link
Owner

BeepIsla commented Oct 4, 2020

Then don't use it or improve it. Feel free to contribute.

As you can see in #90 discussion about AntiAim detection being broken is already on going. The rest is extremely easily bypassed by stepping with an Aimbot rather than immediately fully snapping.

Cheats are customizable, basic detection like this will always be bypassable. Valve does not want you to use this either, people have had their account terminated before for using this.

@BlackYuzia
Copy link
Contributor

BlackYuzia commented Oct 4, 2020

AA Detectors, possible, has been fixed 🤔
@blackslive try again.

Redownload repo with script

About semi-rage.
Aimbot detects can detect only rage aim.
AA detects also only for rage cheater.

Legit or semi-rage shouldn't/cant' detect by this script.

We have only demo. In demo we have too low info.

Server anticheat has more info and functions.
Client anticheat have more info and functions.

I think we can detect rcs but this can have false-positive sometimes 🤔

@BlackYuzia
Copy link
Contributor

Offtop

Valve does not want you to use this either, people have had their account terminated before for using this.

@BeepIsla how many accounts has been deleted by using this bot/script? 👀

@BeepIsla
Copy link
Owner

BeepIsla commented Oct 4, 2020

I don't know, I only know of 3 I think a few years ago.

@Suspectxyzz
Copy link

Suspectxyzz commented Oct 9, 2021

if you can add whether an account has prime or no ?
to be moved to another category like
prime
no-prime
report
no-report
it's hard but much better if you have time I tried

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants