LMAOBOX is finally dead. Valve takes a stance against cheaters!
536 replies, posted
[QUOTE=Zenamez;50473878]Java doesn't have the memory manipulation capabilities C++ does so no.
VAC also was not written by a 12 year old (although it might seem like it has been at times) and so, doesn't detect on 'language' alone but on a number of factors like behaviour (threads bridging themselves into the process's memory space and redirecting calls to the DLL etc) and file signing etc.
No matter the language, it'll be caught because it's got to do the same things over and over to actually be a 'hack'. It's got to have a way to attach itself to the process (DLL_PROCESS_ATTACH()); It's got to redirect calls to an external DLL (external threads etc); It's got to map itself into the process's memory space if it's not using threads (processes cannot 'talk' to each other unless you use shared memory both can access, or a thread) or in general because it's got to 'see' what the process (TF2) is doing in order to actually function properly.
There's loads of factors involved so 'just change the language' won't work. You might as well write it in HTML and Javascript for all the work it'll do.[/QUOTE]
Ok well first off just because Java can't do things easily like writing/reading memory, doesn't make it impossible. Also if VAC was able to detect those things((threads bridging themselves into the process's memory space and redirecting calls to the DLL etc) and file signing etc.), VAC would actually be a good anticheat, and there would be no hacks for any game that used it. However, VAC does not do these things properly, as the need to add a cheat to the database to make it actually work.
Also, using HTML or Javascript can't make a hack, as they are designed to be run in browsers, and the browser you're using is supposed to process that kind of programming. TF2 on the other hand, does not process HTML or Javascript in the parts of the game where a C++ cheat could be useful.
[QUOTE=Dan41550;50474085]Ok well first off just because Java can't do things easily like writing/reading memory, doesn't make it impossible. Also if VAC was able to detect those things((threads bridging themselves into the process's memory space and redirecting calls to the DLL etc) and file signing etc.), VAC would actually be a good anticheat, and there would be no hacks for any game that used it. However, VAC does not do these things properly, as the need to add a cheat to the database to make it actually work.
Also, using HTML or Javascript can't make a hack, as they are designed to be run in browsers, and the browser you're using is supposed to process that kind of programming. TF2 on the other hand, does not process HTML or Javascript in the parts of the game where a C++ cheat could be useful.[/QUOTE]
I wasn't sure you'd get the sarcasm at the end of my initial reply and it seems I've got my answer.
The funny thing is - VAC [I]DOES[/I] detect those things. How fast it acts is another story.
Also, I don't think you [I]quite[/I] understand how this works (or programming works I should say).
VAC has a database to quickly compare against in order to determine whether it's a hack or genuine DLL being used (GPU drivers for example are genuine DLLs which are injected into the game). It would be [B][I]VERY[/I][/B] computationally heavy to run it's numerous checks against known hacks each time it wanted to scan for one. Multiply that by the amount of players on a server, which each need checked - the computational costs rocket to absolutely absurd levels.
[QUOTE] However, VAC does not do these things properly, as the need to add a cheat to the database to make it actually work.[/QUOTE]
See above. This is so idiots who use outdated versions of a hack are caught quickly to minimise damage. Newer versions are added to the database to speed up detection and punishment times, as well as to prevent servers from having to check every known hack related DLL every time it detected one.
For someone who is so insistent on the virtues of hacking, you sure as hell don't understand how this system works. It's embarrassing to read, as you attempt to talk about something you clearly don't know squat (or near enough squat) about.
[QUOTE=Dan41550;50474085]Ok well first off just because Java can't do things easily like writing/reading memory, doesn't make it impossible. Also if VAC was able to detect those things((threads bridging themselves into the process's memory space and redirecting calls to the DLL etc) and file signing etc.), VAC would actually be a good anticheat, and there would be no hacks for any game that used it. However, VAC does not do these things properly, as the need to add a cheat to the database to make it actually work.
Also, using HTML or Javascript can't make a hack, as they are designed to be run in browsers, and the browser you're using is supposed to process that kind of programming. TF2 on the other hand, does not process HTML or Javascript in the parts of the game where a C++ cheat could be useful.[/QUOTE]
why are you here, why are you defending lmaobox, and why the fuck are you trying to defend it having no knowledge on the subject whatsoever
[QUOTE=Zenamez;50474343]I wasn't sure you'd get the sarcasm at the end of my initial reply and it seems I've got my answer.
The funny thing is - VAC [I]DOES[/I] detect those things. How fast it acts is another story.
Also, I don't think you [I]quite[/I] understand how this works (or programming works I should say).
VAC has a database to quickly compare against in order to determine whether it's a hack or genuine DLL being used (GPU drivers for example are genuine DLLs which are injected into the game). It would be [B][I]VERY[/I][/B] computationally heavy to run it's numerous checks against known hacks each time it wanted to scan for one. Multiply that by the amount of players on a server, which each need checked - the computational costs rocket to absolutely absurd levels.
See above. This is so idiots who use outdated versions of a hack are caught quickly to minimise damage. Newer versions are added to the database to speed up detection and punishment times, as well as to prevent servers from having to check every known hack related DLL every time it detected one.
For someone who is so insistent on the virtues of hacking, you sure as hell don't understand how this system works. It's embarrassing to read, as you attempt to talk about something you clearly don't know squat (or near enough squat) about.[/QUOTE]
Well actually I do know a lot about programming, and it doesn't matter how it works, but VAC needs a copy of the DLL of the hack to make it work properly. Without it, the hack isn't going to be detected. It really doesn't matter how you think it works, because without entering the specific code they need to put in the VAC database, it doesn't work properly.
[editline]7th June 2016[/editline]
[QUOTE=Blackavar;50474346]why are you here, why are you defending lmaobox, and why the fuck are you trying to defend it having no knowledge on the subject whatsoever[/QUOTE]
This is a forum which accepts open opinions. As long as I'm not breaking any [URL="https://facepunch.com/fp_rules.php"]Facepunch rules[/URL] or [URL="https://facepunch.com/showthread.php?t=1065394"]TF2 Section Rules[/URL], I am allowed to post in this thread from any standpoint I want, regardless of whatever you may or may not think. If you don't want to see me posting in this thread, you are welcome to leave, as there are plenty of other threads which I have not posted in.
[QUOTE=Dan41550;50474426]Well actually I do know a lot about programming[/QUOTE]
Clearly not.
[QUOTE=FlakTheMighty;50474498]Clearly not.[/QUOTE]
I've taken C++ tutorials and a little bit of Java. I think I know how programming languages work :v:.
[QUOTE=Dan41550;50474505]I've taken C++ tutorials and a little bit of Java. I think I know how programming languages work :v:.[/QUOTE]
Tutorials are often wrong and use bad practices and just walk you through the steps teaching you nothing, and "a little bit of Java" means jack shit.
[QUOTE=FlakTheMighty;50474513]Tutorials are often wrong and use bad practices and just walk you through the steps teaching you nothing, and "a little bit of Java" means jack shit.[/QUOTE]
I don't know what tutorials you've watched, but the ones I watched actually teach me how to do the correct things. Also I know how to make integers and stuff in Java, not gonna do me any good, but I know the syntax.
[QUOTE=Dan41550;50474557]I don't know what tutorials you've watched, but the ones I watched actually teach me how to do the correct things. Also I know how to make integers and stuff in Java, not gonna do me any good, but I know the syntax.[/QUOTE]
"I know how to make integers and stuff in Java"
You mean creating a variable?
int ICanStoreWholeNumbersDuuuuh = 0;
That's not any kind of understanding of the language.
Every tutorial I've ever seen anywhere just hands you the damn code without explaining what it does or how it does it.
If you really understand C++ as well as you say you do, tell me how this snippet from my GTAV Trainer works.
[code]void doESP() {
Ped playerPed = PLAYER::PLAYER_PED_ID();
std::vector<Ped> peds;
const int ARR_SIZE = 1024;
Ped worldPeds[ARR_SIZE];
int numPedsInWorld = worldGetAllPeds(worldPeds, ARR_SIZE);
for (int i = 0; i < numPedsInWorld; i++) {
if (ENTITY::DOES_ENTITY_EXIST(worldPeds[i]) && !ENTITY::IS_ENTITY_DEAD(worldPeds[i]) && worldPeds[i] != playerPed)
peds.push_back(worldPeds[i]);
}
for (std::vector<Ped>::iterator pedIterator = peds.begin(); pedIterator != peds.end(); ++pedIterator)
{
if (ENTITY::HAS_ENTITY_CLEAR_LOS_TO_ENTITY(playerPed, *pedIterator, 17)) { // 17 is a recommended value
draw_ESP_box(*pedIterator, 255, 0, 0, 175);
}
else {
draw_ESP_box(*pedIterator, 255, 145, 0, 175);
}
}
}
[/code]
I've gone ahead and removed all comments that explain what stuff does for you.
And no documentation on these natives for you unless you find it yourself.
[QUOTE=FlakTheMighty;50474567]"I know how to make integers and stuff in Java"
You mean creating a variable?
int ICanStoreWholeNumbersDuuuuh = 0;
That's not any kind of understanding of the language.
Every tutorial I've ever seen anywhere just hands you the damn code without explaining what it does or how it does it.[/QUOTE]
I already said it only shows me basic syntax. On the other hand, watching a full tutorial series on C++ shows me how C++ works with memory and things like that.
[QUOTE=Dan41550;50474426]Well actually I do know a lot about programming, and it doesn't matter how it works, but VAC needs a copy of the DLL of the hack to make it work properly. Without it, the hack isn't going to be detected. It really doesn't matter how you think it works, because without entering the specific code they need to put in the VAC database, it doesn't work properly.[/QUOTE]
[QUOTE]Well actually I do know a lot about programming[/QUOTE]
Could have fooled me. If you did, you wouldn't have embarrassed yourself as you clearly didn't understand the purpose of the database - something you're taught pretty early on when learning to program (for example). Yes, we can all take tutorials but even tutorials go into detail on basic programming practices and saving computing time is most definitely one of them (alongside code layout etc).
[QUOTE]VAC needs a copy of the DLL of the hack to make it work properly[/QUOTE]
Nope. It just needs to compare the behaviour of the DLL to a predefined ruleset for hacks (something I mentioned earlier about behaviour).
In this case, LMAOBox's source was leaked and VALVe got their hands of it. Game over. Unless you're going to go to the effort of rewriting the entire thing, you're effectively done. I know for a fact the 'author' of LMAOBox won't be doing that because he uses DarkStorm TF2 base and copy-pasted code from other people so the chances of him making his own base AND unique code is minimal, if not impossible at best.
[QUOTE]Without it, the hack isn't going to be detected[/QUOTE]
So how come using CheatEngine in TF2 triggers VAC? That's not a hack [I]OR[/I] a DLL being injected. That's being detected on [I]behaviour[/I].
[QUOTE] It really doesn't matter how you think it works, because without entering the specific code they need to put in the VAC database, it doesn't work properly[/QUOTE]
DLL behaviour and source code leak. Need I say anymore? I don't need to "think" how it works. It's [I][B]obvious[/B][/I] from the onset on how it works.
[QUOTE=FlakTheMighty;50474567]
If you really understand C++ as well as you say you do, tell me how this snippet from my GTAV Trainer works.
[code]void doESP() {
Ped playerPed = PLAYER::PLAYER_PED_ID();
std::vector<Ped> peds;
const int ARR_SIZE = 1024;
Ped worldPeds[ARR_SIZE];
int numPedsInWorld = worldGetAllPeds(worldPeds, ARR_SIZE);
for (int i = 0; i < numPedsInWorld; i++) {
if (ENTITY::DOES_ENTITY_EXIST(worldPeds[i]) && !ENTITY::IS_ENTITY_DEAD(worldPeds[i]) && worldPeds[i] != playerPed)
peds.push_back(worldPeds[i]);
}
for (std::vector<Ped>::iterator pedIterator = peds.begin(); pedIterator != peds.end(); ++pedIterator)
{
if (ENTITY::HAS_ENTITY_CLEAR_LOS_TO_ENTITY(playerPed, *pedIterator, 17)) { // 17 is a recommended value
draw_ESP_box(*pedIterator, 255, 0, 0, 175);
}
else {
draw_ESP_box(*pedIterator, 255, 145, 0, 175);
}
}
}
[/code]
I've gone ahead and removed all comments that explain what stuff does for you.
And no documentation on these natives for you unless you find it yourself.[/QUOTE]
Do it your fucking self.
[highlight](User was banned for this post ("Threadshitting" - Novangel))[/highlight]
[QUOTE=Dan41550;50474589]Do it your fucking self.[/QUOTE]
I know exactly how it works, it's from my trainer. :v:
[QUOTE=Zenamez;50474585]Could have fooled me. If you did, you wouldn't have embarrassed yourself as you clearly didn't understand the purpose of the database - something you're taught pretty early on when learning to program (for example). Yes, we can all take tutorials but even tutorials go into detail on basic programming practices and saving computing time is most definitely one of them (alongside code layout etc).
Nope. It just needs to compare the behaviour of the DLL to a predefined ruleset for hacks (something I mentioned earlier about behaviour).
In this case, LMAOBox's source was leaked and VALVe got their hands of it. Game over. Unless you're going to go to the effort of rewriting the entire thing, you're effectively done. I know for a fact the 'author' of LMAOBox won't be doing that because he uses DarkStorm TF2 base and copy-pasted code from other people so the chances of him making his own base AND unique code is minimal, if not impossible at best.
So how come using CheatEngine in TF2 triggers VAC? That's not a hack [I]OR[/I] a DLL being injected. That's being detected on [I]behaviour[/I].
DLL behaviour and source code leak. Need I say anymore? I don't need to "think" how it works. It's [I][B]obvious[/B][/I] from the onset on how it works.[/QUOTE]
Attaching cheat engine to TF2 doesn't trigger VAC, I think it just detects if Cheat Engine is running on your computer, similar to what CS:GO does. Also, maybe if they get the source code of LMAOBox it will be detected for a little bit longer than it would if they got the compiled DLL, but either way LMAOBox isn't dead. He could just go copy code from somebody else, and use a different base. Of course it would take some testing to make sure it wasn't detected, but it would eventually work. Also I think LMAOBox has earned the author a ton of money. He could pay someone to write the code for him, if he won't do it.
[editline]8th June 2016[/editline]
[QUOTE=FlakTheMighty;50474591]I know exactly how it works, it's from my trainer. :v:[/QUOTE]
Don't think I asked. I already know that I learned C++. I don't have to prove anything to you.
[QUOTE=Dan41550;50474620]
Don't think I asked. I already know that I learned C++. I don't have to prove anything to you.[/QUOTE]
You do though, you've said you know this, but haven't once said anything true or even remotely sensible.
[QUOTE=FlakTheMighty;50474663]You do though, you've said you know this, but haven't once said anything true or even remotely sensible.[/QUOTE]
OK I'll look through your code and I'll comment it in like a few hours because I got other things to do.
Ah yes the "I don't know how to do it so let me say I'm busy but spend hours Googling it hoping to find an answer"
Good luck, you'll only find generic C++ help and another post by me using the same code.
[B]Stop. Feeding. Him[/B]
I'm at work, and I'm bored. This is the most fun I'm getting.
[QUOTE=Dan41550;50474620]Attaching cheat engine to TF2 doesn't trigger VAC, I think it just detects if Cheat Engine is running on your computer, similar to what CS:GO does. Also, maybe if they get the source code of LMAOBox it will be detected for a little bit longer than it would if they got the compiled DLL, but either way LMAOBox isn't dead. He could just go copy code from somebody else, and use a different base. Of course it would take some testing to make sure it wasn't detected, but it would eventually work. Also I think LMAOBox has earned the author a ton of money. He could pay someone to write the code for him, if he won't do it.[/QUOTE]
[QUOTE]Attaching cheat engine to TF2 doesn't trigger VAC, I think it just detects if Cheat Engine is running on your computer, similar to what CS:GO does[/QUOTE]
Wrong again on this one. Anything which changes memory values, and isn't whitelisted by VAC is bannable. It doesn't detect if it's running only as that would create false positives.
[QUOTE]He could pay someone to write the code for him, if he won't do it.[/QUOTE]
But won't because he wants to keep full control over the source (he's done a great job so far. What with it leaking).
I'm don't need to google it because I was in Garry's Mod but I'm looking at it now this is what I've got so far.
[CODE]void doESP() //function that doesn't return anything
{
Ped playerPed = PLAYER::PLAYER_PED_ID(); //Ped is generic datatype (forgot what it is called, but it can be anytype of data)
std::vector<Ped> peds; //uses namespace std, using the data type Ped
const int ARR_SIZE = 1024; // making a new constant variable, meaning it can't be changed (I don't get the point of constants but whatever)
Ped worldPeds[ARR_SIZE]; //Making a new array that is Arr_size big
int numPedsInWorld = worldGetAllPeds(worldPeds, ARR_SIZE); //Making an int, can't say what the arguments do, because you didnt give me any details on the function
for (int i = 0; i < numPedsInWorld; i++) {
if (ENTITY::DOES_ENTITY_EXIST(worldPeds[i]) && !ENTITY::IS_ENTITY_DEAD(worldPeds[i]) && worldPeds[i] != playerPed) // Goes through all peds with a for loop, starts from 0 until i is less than numberofpeds in the world.
peds.push_back(worldPeds[i]); //Can't say what this does because I don't know what push_back funct6ion does, but this is a class
}
for (std::vector<Ped>::iterator pedIterator = peds.begin(); pedIterator != peds.end(); ++pedIterator)
{
if (ENTITY::HAS_ENTITY_CLEAR_LOS_TO_ENTITY(playerPed, *pedIterator, 17)) { // 17 is a recommended value
draw_ESP_box(*pedIterator, 255, 0, 0, 175);
}
else {
draw_ESP_box(*pedIterator, 255, 145, 0, 175);
}
}
}[/CODE]
[editline]8th June 2016[/editline]
[QUOTE=Zenamez;50474845]Wrong again on this one. Anything which changes memory values, and isn't whitelisted by VAC is bannable. It doesn't detect if it's running only as that would create false positives.
Well people have been banned for just having it open, in CS:GO at least.
But won't because he wants to keep full control over the source (he's done a great job so far. What with it leaking).[/QUOTE]
[QUOTE=Dan41550;50474859]I'm don't need to google it because I was in Garry's Mod but I'm looking at it now this is what I've got so far.
[CODE]void doESP() //function that doesn't return anything
{
Ped playerPed = PLAYER::PLAYER_PED_ID(); //Ped is generic datatype (forgot what it is called, but it can be anytype of data)
std::vector<Ped> peds; //uses namespace std, using the data type Ped
const int ARR_SIZE = 1024; // making a new constant variable, meaning it can't be changed (I don't get the point of constants but whatever)
Ped worldPeds[ARR_SIZE]; //Making a new array that is Arr_size big
int numPedsInWorld = worldGetAllPeds(worldPeds, ARR_SIZE); //Making an int, can't say what the arguments do, because you didnt give me any details on the function
for (int i = 0; i < numPedsInWorld; i++) {
if (ENTITY::DOES_ENTITY_EXIST(worldPeds[i]) && !ENTITY::IS_ENTITY_DEAD(worldPeds[i]) && worldPeds[i] != playerPed) // Goes through all peds with a for loop, starts from 0 until i is less than numberofpeds in the world.
peds.push_back(worldPeds[i]); //Can't say what this does because I don't know what push_back funct6ion does, but this is a class
}
for (std::vector<Ped>::iterator pedIterator = peds.begin(); pedIterator != peds.end(); ++pedIterator)
{
if (ENTITY::HAS_ENTITY_CLEAR_LOS_TO_ENTITY(playerPed, *pedIterator, 17)) { // 17 is a recommended value
draw_ESP_box(*pedIterator, 255, 0, 0, 175);
}
else {
draw_ESP_box(*pedIterator, 255, 145, 0, 175);
}
}
}[/CODE]
[editline]8th June 2016[/editline][/QUOTE]
You were super generic with everything there.
Ped is actually just an alias for int, you wouldn't know that from this snippet though.
typedef int Ped;
Didn't mention what a vector is.
Context clues are super important in programming,you should be able to figure out what worldGetAllPeds() does based on the name of the function, and what is being passed to it.
You neglected to say what ! means.
You neglected to say what * signifies.
You didn't say anything about begin(), end(), or the post and pre increments.
Didn't mention anything to do with how the if statements function, because tutorials will more than likely teach you to do == true/false or == 1/0 depending on the language.
push_back() is actually not something I made, it's standard in C++.
At this point I don't know who is being trolled anymore.
[QUOTE=Petachepas;50474975]At this point I don't know who is being trolled anymore.[/QUOTE]
I'm at least being informative, I don't think I'm trolling.
If I am it's completely unintentional.
This funny on a pathetic level. :v:
[QUOTE=FlakTheMighty;50474947]You were super generic with everything there.
Ped is actually just an alias for int, you wouldn't know that from this snippet though.
typedef int Ped;
Didn't mention what a vector is.
Context clues are super important in programming,you should be able to figure out what worldGetAllPeds() does based on the name of the function, and what is being passed to it.
You neglected to say what ! means.
You neglected to say what * signifies.
You didn't say anything about begin(), end(), or the post and pre increments.
Didn't mention anything to do with how the if statements function, because tutorials will more than likely teach you to do == true/false or == 1/0 depending on the language.
push_back() is actually not something I made, it's standard in C++.[/QUOTE]
That's really basic stuff, ! means not, * means pointer or address in memory, forgot which one though, I mix those up a lot. worldgetallpeds means to get all the peds in the map. Don't know what vector means, that's why I didn't say anything about it. The if statement said the entity existed, was not dead, and is not playerped.
I don't know what push_back is because I never had the need to use it, maybe down the line. I also havent looked after anything under the first for loop, because I think the things that I already commented on prove that I know enough about c++.
It proved you can read it but it doesn't mean you know how it works.
Going off of your posts to this point show to me that you don't fully comprehend how everything interacts with each other in a real world example, like VAC.
Good job on being able to read that without comments though, even though it was fairly simple.
And * is a pointer.
Oh I didn't catch this
"I don't know what push_back funct6ion does, but this is a class"
It isn't a class.
peds.pushback is a class from an object? That's why the period is there.
[URL="http://www.cplusplus.com/reference/vector/vector/push_back/"]push_back(arg) [/URL]adds the the argument to a vector.
peds is a vector, which [B]is a class[/B] but in this case it's an object because it's been initialized.
Done with the programming though, I've gotten way off the topic of this thread.
Back on topic please
Sorry, you need to Log In to post a reply to this thread.