Jump to content

Welcome to Gaming On Steroids Forums
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. This message will be removed once you have signed in.
Login to Account Create an Account
Photo

[Information] League of Legends Anti-cheat


  • Please log in to reply
4 replies to this topic

#1
2KiloVaseline

2KiloVaseline

    Advanced Member

  • Members
  • 57 posts

First of all : ITS NOT MY THREAD/POST/ I JUST FOUND THIS IN  OTHER FORUM !!!

 

#--------------------------------------------------------------------------------------------------------------------

ORGINAL POST : https://www.unknownc...anti-cheat.html

--------------------------------------------------------------------------------------------------------------------

Too many people learned about the AC for my liking so I decided that I might as well make the whole thing public.


League of Legends Anti Cheat - 9001

The anti-cheat itself consists of 3 parts:
Module 0 : External hack detection, file checks, debugger checks and misc (some anti-retard)
Module 1 : DLL detection 
Module 2 : Patch detection

Some info before module specific information:
- It's manual mapped.
- Anti-cheat only gets loaded in matchmade games after 10-15 minutes and unloads immediately afterwards.
- (Most likely) Modules are compiled together with the game binary originally and extracted using a script to be encrypted and re-mapped later on. 
Why? Because the functions used in the modules directly reference the functions in the game binary for many of the tasks (like memcpy, packet functions, stack overflow guards etc.)

PQY5Pmw.png

- It uses inlined syscalls so that hooks don't work against them (thus why people go Ring 0)

thCQcvZ.png
xtnTwKh.png
HY6xbSI.png
33hx1bF.png

It also uses a small trick (for some reason) to hide the syscall instruction.
 

wol_error.gif This image has been resized. Click this bar to view the full image. The original image is sized 730x69.

6ghESzR.png

wol_error.gif This image has been resized. Click this bar to view the full image. The original image is sized 678x166.

zkLdLdR.png

Here's the 64 bit shellcode used in wow64 syscalls:

POz1lpY.png

- Some references
Code:

 

  • Found hashed NTDLL import: NtWriteVirtualMemory (0x0397B6EB @ 0x777AE900)
  • Found hashed KERNEL32 import: MapViewOfFile (0x1CBAE118 @ 0x7423C580)
  • Found hashed KERNEL32 import: CloseHandle (0x300DBC66 @ 0x74249660)
  • Found hashed NTDLL import: NtQueryVirtualMemory (0x361D7DAA @ 0x777AE790)
  • Found hashed NTDLL import: NtGetContextThread (0x37288E81 @ 0x777AF3C0)
  • Found hashed KERNEL32 import: UnmapViewOfFile (0x475EDC3D @ 0x7423CEC0)
  • Found hashed NTDLL import: NtUnmapViewOfSection (0x5B417ADC @ 0x777AE800)
  • Found hashed NTDLL import: NtQuerySystemInformation (0x5E235647 @ 0x777AE8C0)
  • Found hashed KERNEL32 import: CreateFileA (0x81C32FCD @ 0x742498B0)
  • Found hashed NTDLL import: NtMapViewOfSection (0x8E529AEB @ 0x777AE7E0)
  • Found hashed NTDLL import: NtClose (0x9379F202 @ 0x777AE630)
  • Found hashed NTDLL import: NtQueryInformationFile (0x98A2B252 @ 0x777AE650)
  • Found hashed KERNEL32 import: CreateFileMappingA (0x9954916B @ 0x7423A340)
  • Found hashed NTDLL import: NtQueryObject (0xA0B5F9A9 @ 0x777AE640)
  • Found hashed NTDLL import: NtQueryInformationProcess (0xBD016E11 @ 0x777AE6D0)
  • Found hashed KERNEL32 import: GetSystemDirectoryA (0xC7598A17 @ 0x7423D4C0)
  • Found hashed NTDLL import: NtCreateDebugObject (0xCF6E95F2 @ 0x777AEF10)
  • Found hashed NTDLL import: NtCreateSection (0xD31AD18D @ 0x777AEA00)
  • Found hashed NTDLL import: NtReadVirtualMemory (0xDD74CBA6 @ 0x777AE950)
  • Found hashed NTDLL import: NtCreateFile (0xFE689E2C @ 0x777AEAB0)


Module 0:
- Checks external processes and sends information about them to the server 
- Certain file checks
Quote:

(Current list)
C:\Users\***\AppData\Roaming\Scripter's Rift Dev\awesomium.dll
C:\Users\***\AppData\Roaming\Scripter's Rift Dev\awesomium_process.exe
C:\Windows\SysWOW64\awesomium.dll
C:\Windows\SysWOW64\awesomium_process.exe

- Debugger checks
- Does the "patch detection" platforms like BoL (and many other morons) "found" again to detect who bypassed it (private platform detection, no legit 3rd party program would attempt to bypass anti-cheat)
E29Soi9.png

Module 1:
- Nothing special, dll detection
- VMWare modules and the whole C# framework is blacklisted.
To name a few:
Quote:

vm3dum.dll
System.Xml.Linq.dll
System.Data.dll
System.ServiceModel.Internals.dll
System.Transactions.dll
System.Core.dll
System.dll
System.Xml.dll
System.Drawing.dll
System.IdentityModel.dll
System.Transactions.ni.dll
D3DX9_43.dll
System.ServiceModel.ni.dll
System.Data.ni.dll
System.Data.dll
System.Configuration.ni.dll
System.Core.ni.dll

Module 2:
- Extended patch detection, re-locates the entire league binary to 0x400000, hashes it, and checks the values against the hash-table stored in League of Legends.exe
When a patch is detected, it is checked for many types of je/jz/jmp/call/... re-directors and if anything matches it sends the information about the module where its being re-directed to, to the server.
- You can find the self hash-table inside League of Legend's .rdata by searching for the magic value 0x130F06C8. Each of the entries represent the hash of a block with the size of 0x1000 inside .text.

----------------------------------------------------------------

I'm not going to spoon-feed you on how to find the modules / anti-cheat loader because I'm writing this just to let you know that League of legends has a very good anti-cheat unlike what public thinks. 
You might consider not starting a new platform because you didn't get banned with your private cheat -> there should be no anti-cheat and people should use humanizers.


I will attach below the anti-cheat dumps from 7.19 so the curious people can take a look. 
(Not the most recent patch because they already started to remove stuff, AC will get a rework pretty soon so I wouldn't recommend you to spend much time on the current version)

Let me know if you have any questions, its been a while since I reversed it so I just wrote a general outline rather than a detailed article but I can answer if there's anything you want to ask.


Note to riot employees:
You might wanna consider taking bug reports more seriously. #

 

 


  • 0

#2
westlot

westlot

    Advanced Member

  • Members
  • 189 posts

if its true, will be very useful to our comunity, like incrense feretorix knowage and being gos more and more safer


  • 0

#3
SkyForge

SkyForge

    Advanced Member

  • Premium
  • 351 posts

i only care about GoS EXT to be safe


  • 1

#4
2KiloVaseline

2KiloVaseline

    Advanced Member

  • Members
  • 57 posts

if its true, will be very useful to our comunity, like incrense feretorix knowage and being gos more and more safer

 

if he would read it yes maybe xD and maybe gos int can be safe again but he didnt even read the thread, if yes im sure he would replay :x


  • 0

#5
Feretorix

Feretorix

    Administrator

  • Administrators
  • 3,027 posts

Even if you bypass the current anticheat, they can easily add a new detection vector after 1 or 2 months and everybody will be banned again.

 

A dummy choice would be to terminate the lol process as soon as the anticheat is injected mid game - then reconnect (and get banned later because your game crashes every time the anticheat loads? or not?)

 

I still haven't looked in the public dumps and analysis in depth, I will do so in monday when I have some time on my hands.

 

 

If you want to stay safe (and public), you have to be external, hidden behind a driver which will block access to your external process (something a legit antivirus can do, or even another anticheat like EasyAntiCheat, Battleye). And I doubt they will stream a driver any-time-soon to detect hidden external cheats.


  • 2




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users