UnknownCheats - Leading the game hacking and cheat development scene since 2000


Reply
 
Thread Tools
Javelin Journey
Old 22nd September 2025, 12:11 PM   #1
Junior Member

Join Date: Dec 2007
Posts: 53
Reputation: 3433
Rep Power: 452
domme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating community
Points: 17,707, Level: 17
Points: 17,707, Level: 17 Points: 17,707, Level: 17 Points: 17,707, Level: 17
Level up: 94%, 93 Points needed
Level up: 94% Level up: 94% Level up: 94%
Activity: 2.4%
Activity: 2.4% Activity: 2.4% Activity: 2.4%
Last Achievements Javelin JourneyJavelin JourneyJavelin Journey
Javelin Journey

A couple days ago I decided to increase my reverse engineering "skills". Opening up protected PE files, that are developed by multiple developers, who know what they are doing is kind of interesting and ofc seriously challenging.

I'll try to regularly update this thread and show my insights. Please feel free to discuss my findings here since it would be good to know, if I'm on the right path I'm still learning a lot in RE and especially Windows Internals. This is personally for my own learning process and re-writing down my findings helps me a lot with this. I hope there are people out there that have way more experience than I have and can "error check" my findings. A little "You are on the right track" or a "You fell for a trap there" will help me for sure!


I did use files from the latest BF6 Beta. This will probably be a little outdated in the (near) future but internal structure e. g. manually loading DLLs might be still the same. I don't own any other games right now, that have Javelin as AC and BF6 Beta was for free.


So let the journey begin.

I opened DIE (Detect It Easy) and checked EAAntiCheat.GameServiceLauncher.exe. After a few seconds I got the red message (Heur)Packer: Compressed or packed data[High entropy + Section 0 (".text") compressed]. This was to be expected and also, this wont be any known packer. They will probably have their own mechanism. Next, we checked the Extractor findings of DIE and can see, that our .text-section is typed as GZip.
Also, the IMAGE_OPTIONAL_HEADER looks like that:
Code:
  1. SizeOfCode: 0x0074FA00 (7,665,152 bytes) // (7.3MB) Unusually large
  2. SizeOfImage: 0x00F23000 (15,872,000 bytes) // 15MB total size
  3. AddressOfEntryPoint: 0x006FE290 // Deep entry point
So, yeah. We know that people dont want us to dig around.
Lets go and load this EXE into IDA. Seeing what's happening.

Ofc IDA throws some error messages, but lets ignore them. We want to focus on the Import table and can immediately find interesting stuff: Only 1 imported function:
Code:
  1. 0000000140A647F8 1 TlsCallbacks preloader_l
This get's called when a thread is started. It's a function inside preloader.dll.
This seems to be an important DLL.
Browsing the games directory, there it is... One drag&drop away from the IDA load up. Now it gets interesting.

First, lets check the import table:
Code:
  1. NtTerminateProcess
  2. ZwCreateUserProcess
  3. ZwQueryInformationProcess
  4. CallNextHookEx
  5. MessageBoxW
  6. MD5Init
  7. ...
The dopamine kicks since these imports look very good for a tool, that wants to protect a game. Leeeeets go and dig further.

Taking a look at the DllEntryPoint reveals this code:
Code:
  1. .rdata:0000000180003C00 ; BOOL __stdcall DllEntryPoint(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved)
  2. .rdata:0000000180003C00 public DllEntryPoint
  3. .rdata:0000000180003C00 DllEntryPoint proc near ; DATA XREF: .rdata:0000000180003E5Co
  4. .rdata:0000000180003C00 ; .pdata:0000000180006090o
  5. .rdata:0000000180003C00 ; __unwind { // sub_1800024D0
  6. .rdata:0000000180003C00 ud2
  7. .rdata:0000000180003C00 DllEntryPoint endp
What. That looks strange. I didn't know "ud2" and googled it:
Code:
  1. The processor raises an invalid opcode exception if you execute an undefined instruction.
I see, they immediatly FORCE an exception here. But why?
Looking at the line above "ud2" shows __unwind. That's some exception meta-data! So, next step is, understanding the meta-data of the exception and we probably get some more executable code from there.

The __unwind links to sub_1800024D0 and this is the code of it:
Code:
  1. sub_1800024D0 proc near
  2. mov rax, [r9+38h] ; Get address from dispatcher context
  3. mov eax, [rax] ; Dereference to get offset
  4. add rax, [r9+8] ; Add module base address
  5. mov [r8+0F8h], rax ; Set RIP (instruction pointer)
  6. xor eax, eax ; Return 0 (continue execution)
  7. retn
  8. sub_1800024D0 endp
and via IDA we XREF to the data structure here:
Code:
  1. .rdata:0000000180003BD0 stru_180003BD0 UNWIND_INFO_HDR <1, 1, 0, 0, 0, 0>
  2. .rdata:0000000180003BD0 ; DATA XREF: .pdata:0000000180006084o
  3. .rdata:0000000180003BD4 dd rva sub_1800024D0
  4. .rdata:0000000180003BD8 dd rva sub_180002330
As you already read, I added some comments to the sub_1800024D0.
This handler dynamically calculates and sets the next instruction pointer, redirecting execution flow away from the ud2 instruction.

This leads us back to the UNWIND_INFO_HDR . The next data stored the is sub_180002330. Another function:

Code:
  1. sub_180002330 proc near
  2. ; Parameter preservation
  3. mov rsi, r8 ; Save r8 parameter
  4. mov edi, edx ; Save edx parameter
  5. mov rbx, rcx ; Save rcx parameter
  6. ; Call initialization
  7. call sub_180001520 ; Main loader function
  8. ; Setup for final jump
  9. lea r9, qword_180005040 ; Configuration data structure
  10. mov rax, cs:qword_180005070 ; Load function pointer
  11. or edi, 80000000h ; Set activation flag
  12. ; Jump to real implementation
  13. jmp rax ; Transfer control to actual code
  14. sub_180002330 endp
Nice! So this looks like a trampoline!
Let's investigate sub_180001520.
Code:
  1. .text:0000000180001520 sub_180001520 proc near ; CODE XREF: sub_180002330+Fp
  2. .text:0000000180001520 ; sub_180002440+Fp
  3. .text:0000000180001520 ; DATA XREF: ...
  4. .text:0000000180001520
  5. .text:0000000180001520 ShareAccess = dword ptr -578h
  6. .text:0000000180001520 Length = dword ptr -568h
  7. .text:0000000180001520 ByteOffset = qword ptr -560h
  8. .text:0000000180001520 Key = qword ptr -558h
  9. .text:0000000180001520 AccessProtection= dword ptr -550h
  10. .text:0000000180001520 BaseAddress = qword ptr -540h
  11. .text:0000000180001520 Position = word ptr -532h
  12. .text:0000000180001520 var_530 = _LARGE_INTEGER ptr -530h
  13. .text:0000000180001520 SectionHandle = qword ptr -528h
  14. .text:0000000180001520 RegionSize = qword ptr -520h
  15. .text:0000000180001520 OldAccessProtection= dword ptr -514h
  16. .text:0000000180001520 var_510 = qword ptr -510h
  17. .text:0000000180001520 var_508 = qword ptr -508h
  18. .text:0000000180001520 Buffer = qword ptr -500h
  19. .text:0000000180001520 var_4F8 = qword ptr -4F8h
  20. .text:0000000180001520 FileHandle = qword ptr -4F0h
  21. .text:0000000180001520 var_4E8 = qword ptr -4E8h
  22. .text:0000000180001520 var_4E0 = qword ptr -4E0h
  23. .text:0000000180001520 ProcedureAddress= qword ptr -4D8h
  24. .text:0000000180001520 var_4C8 = xmmword ptr -4C8h
  25. .text:0000000180001520 Size = dword ptr -4B8h
  26. .text:0000000180001520 Name = _STRING ptr -4A8h
  27. .text:0000000180001520 var_498 = qword ptr -498h
  28. .text:0000000180001520 var_490 = dword ptr -490h
  29. .text:0000000180001520 var_488 = xmmword ptr -488h
  30. .text:0000000180001520 Module = qword ptr -478h
  31. .text:0000000180001520 NumberOfBytesToProtect= qword ptr -470h
  32. .text:0000000180001520 IoStatusBlock = _IO_STATUS_BLOCK ptr -468h
  33. .text:0000000180001520 BaseOfImage = qword ptr -458h
  34. .text:0000000180001520 var_448 = qword ptr -448h
  35. .text:0000000180001520 var_440 = word ptr -440h
  36. .text:0000000180001520 var_41C = dword ptr -41Ch
  37. .text:0000000180001520 var_408 = dword ptr -408h
  38. .text:0000000180001520 var_404 = dword ptr -404h
  39. .text:0000000180001520 var_58 = xmmword ptr -58h
  40. .text:0000000180001520
  41. .text:0000000180001520 push r15
  42. .text:0000000180001522 push r14
  43. .text:0000000180001524 push r13
  44. .text:0000000180001526 push r12
  45. .text:0000000180001528 push rsi
  46. .text:0000000180001529 push rdi
  47. .text:000000018000152A push rbp
  48. .text:000000018000152B push rbx
  49. .text:000000018000152C sub rsp, 558h
  50. .text:0000000180001533 movaps [rsp+598h+var_58], xmm6
  51. .text:000000018000153B cmp cs:BaseAddress, 0
  52. .text:0000000180001543 jnz short loc_18000159D
  53. .text:0000000180001545 mov [rsp+598h+BaseOfImage], 0
  54. .text:0000000180001551 mov rax, gs:30h
  55. .text:000000018000155A mov rax, [rax+60h]
  56. .text:000000018000155E mov rcx, [rax+18h] ; PcValue
  57. .text:0000000180001562 lea rdx, [rsp+598h+BaseOfImage] ; BaseOfImage
  58. .text:000000018000156A call cs:__imp_RtlPcToFileHeader
  59. .text:0000000180001570 mov rax, [rsp+598h+BaseOfImage]
  60. .text:0000000180001578 test rax, rax
  61. .text:000000018000157B jnz short loc_180001596
  62. .text:000000018000157D mov rcx, cs:__imp_RtlPcToFileHeader ; PcValue
  63. .text:0000000180001584 lea rdx, [rsp+598h+BaseOfImage] ; BaseOfImage
  64. .text:000000018000158C call rcx ; __imp_RtlPcToFileHeader
  65. .text:000000018000158E mov rax, [rsp+598h+BaseOfImage]
  66. .text:0000000180001596
  67. .text:0000000180001596 loc_180001596: ; CODE XREF: sub_180001520+5Bj
  68. .text:0000000180001596 mov cs:BaseAddress, rax
  69. .text:000000018000159D
  70. .text:000000018000159D loc_18000159D: ; CODE XREF: sub_180001520+23j
  71. .text:000000018000159D mov rsi, cs:__imp_NtYieldExecution
  72. .text:00000001800015A4 mov di, 1
  73. .text:00000001800015A8 jmp short loc_1800015BF
  74. ... way to much code
This is some real [removed] here. I have to study this functions a bit more, since it's is really long. However, I found out the following already:

Code:
  1. lea rdx, aEaanticheatGam ; "EAAntiCheat.GameServiceLauncher.dll"
  2. call cs:__imp_RtlAppendUnicodeToString
Looks like they start manually mapping another dll to the game.

Code:
  1. call cs:__imp_NtOpenFile ; Open DLL file
  2. test eax, eax
  3. js loc_1800022F2 ; Jump if failed
DLL gets opened

Code:
  1. cmp word ptr [rsp+598h+BaseOfImage], 5A4Dh ; Check MZ signature
  2. jnz loc_18000205B
  3. mov eax, 0C000007Bh
  4. cmp dword ptr [rsp+rcx+598h+BaseOfImage], 4550h ; Check PE signature
  5. jnz loc_18000205B
some DLL PE validation

Code:
  1. ; Create memory section
  2. call cs:__imp_NtCreateSection
  3. test eax, eax
  4. js loc_1800022F2
  5.  
  6. ; Map section into memory
  7. call cs:__imp_NtMapViewOfSection
  8. test eax, eax
  9. jns loc_180001DA4
Ahhh yeah, there we go. Mapping!

Code:
  1. mov eax, [rax+rcx+28h] ; Get AddressOfEntryPoint
  2. add rcx, rax ; Add base address
  3. mov cs:qword_180005070, rcx ; Store as function pointer
and it graps the entry point.




That's it for now. I'll be on vacation now till end of next week. Enjoy the read and I'm going to update this thread in the future.

If you want to go reverse this huge function on you own, this is the sig:
Code:
  1. 41 57 41 56 41 55 41 54 56 57 55 53 48 81 EC 58 05 00 00 0F 29 74 24 A0
or
Code:
  1. 48 81 EC 58 05 00 00 0F 29 74 24 A0 48 83 3D ?? ?? ?? ?? 00

02.10.2025 Update:

So I completely dissected the preloader.dll for the launcher now. My first view on the service looks very similar, however some "magic constants" changed there. I will focus on the launcher now.
As you already know, the preloader manually maps another AC DLL. I found out, that it also does some file version checking and can potentially reload from an embedded resource. I wont focus much on that now, because we want to get our hands on the REAL anti-cheat stuff.

What's still very interesting and 100% super important to the ongoing journey is this struct here, that gets passed to the manually mapped DLL entry point function:
Code:
  1. .text:00000001800022BB call cs:qword_180005070 ; the entry point of the loaded dll, params (NULL (RCX), 0x25665CD7 (RDX), NULL (R8), &EAACConfig (R9))
"My" preloader struct layout so far, that gets passes to the decryption lib/exe:
Code:
  1. struct TheiaDecryptionSetup {
  2.  
  3. uint64_t magic1; // +0x00: 0xBC041F6C9783F67F
  4. uint64_t magic2; // +0x08: 0x019957B8303E7F01
  5. void* preloader_base; // +0x10: preloader_l.dll base
  6. void* mapped_dll_base; // +0x18: loaded DLL base
  7. void* external_module_base; // +0x20: additional module
  8. HANDLE section_handle; // +0x28: NtCreateSection handle
  9. void* dll_entry_point; // +0x30: calculated entry point
  10. uint8_t padding[0x20]; // +0x38-0x57: reserved/padding
  11. __m128 cleared_xmm; // +0x58: zeroed 16-byte region
  12. void* error_handler; // +0x68: report_and_handle_error
  13. void* virtual_call_thunk; // +0x70: COM dispatch
  14. void* com_window_proc; // +0x78: window handler
  15. uint32_t env_config_value; // +0x80: some env config value
  16. uint8_t function_ptr_flag; // +0x84: boolean (rbx != 0)
  17. uint8_t padding2[3]; // +0x85-0x87: alignment
  18. void* RtlQueryEnvironmentVariable_U; // +0x88
  19. void* RtlExpandEnvironmentStrings; // +0x90
  20. void* RtlDosPathNameToNtPathName; // +0x98
  21. void* RtlCreateProcessParametersEx; // +0xA0
  22. void* RtlCreateEnvironment; // +0xA8
  23. void* ZwCreateUserProcess; // +0xB0
  24. void* ZwSetInformationFile; // +0xB8
  25. void* ZwCreateFile; // +0xC0
  26. void* ZwCreateThreadEx; // +0xC8
  27. void* ZwQueryInformationFile; // +0xD0
  28. void* ZwQueryInformationProcess; // +0xD8
  29. void* ZwClose; // +0xE0
  30. void* ZwQueryDirectoryFile; // +0xE8
  31. void* ZwWaitForSingleObject; // +0xF0
  32. void* ZwDeleteFile; // +0xF8
  33. void* keyboard_input_filter; // +0x100: blocks injected keys, WH_KEYBOARD_LL
  34. void* mouse_input_filter; // +0x108: blocks injected mouse, WH_MOUSE_LL
  35. void* always_allow_stub; // +0x110: always true stub
  36. void* passthrough_monitor_hook; // +0x118: logging only
  37. };
So, the entry point of the manually mapped dll gets called with this struct data. magic1 & magic2 will be important IMO. Also the 2nd parameter to the called entry point function (0x25665CD7) will be interesting. magic1 and magic2 changed in the service / launcher preloader. The 2nd parameter to the entry point function is the same in both variants.

06.10.2025 Update:

Started Theia String Decryptor

08.10.2025 Update:
As my string decryption is working quite good, we can process further with the dissect of the crucial functions. We habe some interesting strings here:

Code:
  1. 0x7FF684DF5006 ( 30): "dev-skyfall.dev.ac.ea.com:443"
  2. 0x7FF684DF5024 ( 34): "staging-skyfall.dev.ac.ea.com:443"
  3. 0x7FF684DF5046 ( 26): "eaanticheat.ac.ea.com:443"
We could check out, what kind of data they grep and send to their server from here

Code:
  1. 0x7FF684DF5B74 ( 19): "EAAntiCheatService"
  2. 0x7FF684DF5AD6 ( 32): "Failed retrieving service path."
  3. 0x7FF684DF5AB5 ( 33): "Game service executable missing."
Pretty sure this is relevant to start the service and we can check (optional) params maybe. Maybe disable the running checks...

Code:
  1. 0x7FF684DF5F88 ( 74): "Device Driver signing integrity checks must be enabled to start the game."
  2. 0x7FF684DF5FFC ( 55): "Test or debug mode must be disabled to start the game."
Maybe we can check this here to disable integrity checks. Who knows...

Code:
  1. 0x7FF684E1BB30 ( 37): "ea.ac.skyfall.pubs.ScreenshotRequest"
This here is important for a few of you! They for sure send screenshot. You could probably go from here and intercept it. Take care if you simply go for an ESP. Also Google for Javelin Screenshot function returns some AI scanning for screenshots. So yeah, this could ban alot of private hacks, if you dont take care of screenshots.

Code:
  1. 0x7FF684E147E6 ( 25): "NtQuerySystemInformation"
  2. 0x7FF684E147FF ( 25): "NtQueryInformationThread"
  3. 0x7FF684E14818 ( 21): "NtQueryVirtualMemory"
  4. 0x7FF684E1482D ( 24): "NtSetInformationProcess"
  5. 0x7FF684E14845 ( 26): "NtQueryInformationProcess"
  6. 0x7FF684E1485F ( 23): "NtQueryDirectoryObject"
  7. 0x7FF684E14876 ( 22): "NtOpenDirectoryObject"
  8. 0x7FF684E1488C ( 14): "NtQueryObject"
  9. 0x7FF684E1489A ( 21): "NtQueryDirectoryFile"
  10. 0x7FF684E148AF ( 23): "NtQueryInformationFile"
  11. 0x7FF684E148C6 ( 23): "NtSetSystemInformation"
  12. 0x7FF684E148DD ( 37): "NtEnumerateSystemEnvironmentValuesEx"
  13. 0x7FF684E14902 ( 17): "NtCreateThreadEx"
  14. 0x7FF684E14913 ( 25): "NtOpenSymbolicLinkObject"
  15. 0x7FF684E1492C ( 26): "NtQuerySymbolicLinkObject"
  16. 0x7FF684E14946 ( 22): "NtDeviceIoControlFile"
  17. 0x7FF684E149BD ( 11): "\ntdll.dll"
  18. 0x7FF684E1498D ( 27): "SetProcessMitigationPolicy"
Nt* Functions... awesome. Maybe we start somewhere here. IDK.

Code:
  1. 0x7FF684E19F84 ( 27): "DiscSoftLTD (Daemon Tools)"
  2. 0x7FF684E19E37 ( 12): "CheatEngine"
  3. 0x7FF684E19F42 ( 11): "AutoHotkey"
  4. 0x7FF684E19ED8 ( 18): "Windows10Injector"
  5. 0x7FF684E19EEA ( 21): "UnknowncheatsGeneric"
  6. 0x7FF684E19E4B ( 8): "ProcMon"
  7. 0x7FF684E19EFF ( 7): "DTrace"
  8. 0x7FF684E19FA9 ( 17): "MagnetRAMCapture"
  9. 0x7FF684E19EC8 ( 16): "ExtremeInjector"
  10. 0x7FF684E19F06 ( 14): "ProcessHacker"
  11. 0x7FF684E19F2E ( 13): "CheatToolSet"
  12. 0x7FF684E19F9F ( 10): "Proxifier"
  13. 0x7FF684E19F22 ( 4): "MHS"
  14. 0x7FF684E19FBA ( 14): "EasyAntiCheat"
  15. 0x7FF684E19FE0 ( 8): "Javelin"
  16. 0x7FF684E19FD9 ( 7): "FaceIT"
  17. 0x7FF684E19FC8 ( 17): "EasyAntiCheatEOS"
I dont know what this list is for right now. I dont think, it's for detection, more likely some reporting maybe. There are a lot of other tools blocked like IDA and x64dbg but I couldn't find strings for them.

Code:
  1. 0x7FF684DF6795 ( 16): "EAAntiCheat.cfg"
A config file that is actually a pure data DLL file. But there is like no data inside. So this will be maybe loaded from the internet. IDK now. Just guessing.
__________________
MiLEA Cyrus once sang:
I came in like a NOPing ball
I never hit so hard in code
All I wanted was to break your JMP
All you ever did was crash to me
Yeah, you, you crash to me

Last edited by domme007; 13th October 2025 at 08:32 AM.
domme007 is offline
Old 22nd September 2025, 01:19 PM   #2
Supreme G0d

Join Date: Sep 2016
Posts: 372
Reputation: 86606
Rep Power: 324
Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!
Recognitions Members who have contributed financial support towards UnKnoWnCheaTs. Donator (8)
Points: 103,401, Level: 46
Points: 103,401, Level: 46 Points: 103,401, Level: 46 Points: 103,401, Level: 46
Level up: 51%, 2,399 Points needed
Level up: 51% Level up: 51% Level up: 51%
Activity: 2.8%
Activity: 2.8% Activity: 2.8% Activity: 2.8%
Last Achievements Javelin JourneyJavelin JourneyJavelin JourneyJavelin Journey
Great job on your initial analysis. Yep preloader is a manual mapper, EAAntiCheat.GameServiceLauncher.dll is actually an executable. The Hungarian meme post covered some/most of this but that got DMCA'd. Taking bets on who DMCAs this first, EA or the Theia folks
__________________
Ex Nihilo Nihil Fit
Tormund is offline
Old 22nd September 2025, 02:39 PM   #3
Junior Member

Threadstarter
Join Date: Dec 2007
Posts: 53
Reputation: 3433
Rep Power: 452
domme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating community
Points: 17,707, Level: 17
Points: 17,707, Level: 17 Points: 17,707, Level: 17 Points: 17,707, Level: 17
Level up: 94%, 93 Points needed
Level up: 94% Level up: 94% Level up: 94%
Activity: 2.4%
Activity: 2.4% Activity: 2.4% Activity: 2.4%
Last Achievements Javelin JourneyJavelin JourneyJavelin Journey
I've recently read something in the BF6 sub, that companies enforce DMCA (the Reversal & Structs thread got removed). Anyways... thanks, your feedback helps me! :-)
__________________
MiLEA Cyrus once sang:
I came in like a NOPing ball
I never hit so hard in code
All I wanted was to break your JMP
All you ever did was crash to me
Yeah, you, you crash to me
domme007 is offline
Old 22nd September 2025, 02:47 PM   #4
n00bie

Join Date: Sep 2025
Posts: 1
Reputation: 10
Rep Power: 16
pukidona has made posts that are generally average in quality
Points: 1, Level: 1
Points: 1, Level: 1 Points: 1, Level: 1 Points: 1, Level: 1
Level up: 0%, 1 Points needed
Level up: 0% Level up: 0% Level up: 0%
Activity: 0%
Activity: 0% Activity: 0% Activity: 0%
The FC26 modding community relies on anticheat bypassing. We don't want to cheat, we just want custom assets. So please help us!
pukidona is offline
Old 22nd September 2025, 06:33 PM   #5
Supreme G0d

Join Date: Sep 2016
Posts: 372
Reputation: 86606
Rep Power: 324
Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!
Recognitions Members who have contributed financial support towards UnKnoWnCheaTs. Donator (8)
Points: 103,401, Level: 46
Points: 103,401, Level: 46 Points: 103,401, Level: 46 Points: 103,401, Level: 46
Level up: 51%, 2,399 Points needed
Level up: 51% Level up: 51% Level up: 51%
Activity: 2.8%
Activity: 2.8% Activity: 2.8% Activity: 2.8%
Last Achievements Javelin JourneyJavelin JourneyJavelin JourneyJavelin Journey
Quote:
Originally Posted by pukidona View Post
We don't want to cheat, we just want custom assets.
Sadly the publisher does not delineate between the two
__________________
Ex Nihilo Nihil Fit
Tormund is offline
Old 23rd September 2025, 05:42 PM   #6
Junior Member

Join Date: Aug 2025
Posts: 40
Reputation: 3252
Rep Power: 21
GF2P8AFFINEQB is a legend in the cheating communityGF2P8AFFINEQB is a legend in the cheating communityGF2P8AFFINEQB is a legend in the cheating communityGF2P8AFFINEQB is a legend in the cheating communityGF2P8AFFINEQB is a legend in the cheating communityGF2P8AFFINEQB is a legend in the cheating communityGF2P8AFFINEQB is a legend in the cheating communityGF2P8AFFINEQB is a legend in the cheating communityGF2P8AFFINEQB is a legend in the cheating communityGF2P8AFFINEQB is a legend in the cheating communityGF2P8AFFINEQB is a legend in the cheating community
Points: 3,839, Level: 6
Points: 3,839, Level: 6 Points: 3,839, Level: 6 Points: 3,839, Level: 6
Level up: 27%, 661 Points needed
Level up: 27% Level up: 27% Level up: 27%
Activity: 12.5%
Activity: 12.5% Activity: 12.5% Activity: 12.5%
Last Achievements Javelin Journey
Quote:
Originally Posted by domme007 View Post
~
This is not Javelin, this is the manual mapper of the Theia anti tamper. The mapped module is responsible for unpacking the game.
GF2P8AFFINEQB is offline
Old 23rd September 2025, 08:15 PM   #7
n00bie

Join Date: Sep 2025
Posts: 9
Reputation: 458
Rep Power: 15
naypot is a preacher of ownage - listen and learnnaypot is a preacher of ownage - listen and learnnaypot is a preacher of ownage - listen and learnnaypot is a preacher of ownage - listen and learnnaypot is a preacher of ownage - listen and learn
Points: 2,595, Level: 4
Points: 2,595, Level: 4 Points: 2,595, Level: 4 Points: 2,595, Level: 4
Level up: 71%, 205 Points needed
Level up: 71% Level up: 71% Level up: 71%
Activity: 2.4%
Activity: 2.4% Activity: 2.4% Activity: 2.4%
Last Achievements Javelin Journey
this no javelin @GF2P8AFFINEQB correct, it only theia mapper
naypot is offline
Old 2nd October 2025, 09:54 AM   #8
Junior Member

Threadstarter
Join Date: Dec 2007
Posts: 53
Reputation: 3433
Rep Power: 452
domme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating community
Points: 17,707, Level: 17
Points: 17,707, Level: 17 Points: 17,707, Level: 17 Points: 17,707, Level: 17
Level up: 94%, 93 Points needed
Level up: 94% Level up: 94% Level up: 94%
Activity: 2.4%
Activity: 2.4% Activity: 2.4% Activity: 2.4%
Last Achievements Javelin JourneyJavelin JourneyJavelin Journey
Hi folks, sorry for my late reply. Was on vacation! I will continue my "journey" now

Thanks for clarification. I just dragged the protected Bf6 launcher into IDA and started from there with RE. That will help with digging deeper now.

Quote:
Originally Posted by GF2P8AFFINEQB View Post
This is not Javelin, this is the manual mapper of the Theia anti tamper. The mapped module is responsible for unpacking the game.
My Journey right now only touched the preloader-files. I dissected both, the preloader_s.dll and preloader_l.dll files. One's related to the EAAC/Javelin service and probably to the driver. The other is for the user-mode games process.

However, they DONT unpack the game. They are only related to the AC files.
__________________
MiLEA Cyrus once sang:
I came in like a NOPing ball
I never hit so hard in code
All I wanted was to break your JMP
All you ever did was crash to me
Yeah, you, you crash to me
domme007 is offline
Old 8th October 2025, 02:56 PM   #9
Junior Member

Threadstarter
Join Date: Dec 2007
Posts: 53
Reputation: 3433
Rep Power: 452
domme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating community
Points: 17,707, Level: 17
Points: 17,707, Level: 17 Points: 17,707, Level: 17 Points: 17,707, Level: 17
Level up: 94%, 93 Points needed
Level up: 94% Level up: 94% Level up: 94%
Activity: 2.4%
Activity: 2.4% Activity: 2.4% Activity: 2.4%
Last Achievements Javelin JourneyJavelin JourneyJavelin Journey
bump, gathered some decrypted strings to dig deeper in near future
__________________
MiLEA Cyrus once sang:
I came in like a NOPing ball
I never hit so hard in code
All I wanted was to break your JMP
All you ever did was crash to me
Yeah, you, you crash to me
domme007 is offline
Old 8th October 2025, 03:46 PM   #10
Supreme G0d

Join Date: Sep 2016
Posts: 372
Reputation: 86606
Rep Power: 324
Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!Tormund has a huge epeen!
Recognitions Members who have contributed financial support towards UnKnoWnCheaTs. Donator (8)
Points: 103,401, Level: 46
Points: 103,401, Level: 46 Points: 103,401, Level: 46 Points: 103,401, Level: 46
Level up: 51%, 2,399 Points needed
Level up: 51% Level up: 51% Level up: 51%
Activity: 2.8%
Activity: 2.8% Activity: 2.8% Activity: 2.8%
Last Achievements Javelin JourneyJavelin JourneyJavelin JourneyJavelin Journey
Quote:
Originally Posted by domme007 View Post
bump, gathered some decrypted strings to dig deeper in near future
you are bumping this thread whilst posting strings on another thread? im so confused
__________________
Ex Nihilo Nihil Fit
Tormund is offline
Old 10th October 2025, 03:34 PM   #11
Banned

Join Date: Dec 2013
Location: i live where i live
Posts: 71
Reputation: -1967
Rep Power: 0
Exsecut0r is infamous around these partsExsecut0r is infamous around these partsExsecut0r is infamous around these partsExsecut0r is infamous around these partsExsecut0r is infamous around these partsExsecut0r is infamous around these partsExsecut0r is infamous around these partsExsecut0r is infamous around these partsExsecut0r is infamous around these partsExsecut0r is infamous around these partsExsecut0r is infamous around these parts
Points: 6,955, Level: 9
Points: 6,955, Level: 9 Points: 6,955, Level: 9 Points: 6,955, Level: 9
Level up: 42%, 645 Points needed
Level up: 42% Level up: 42% Level up: 42%
Activity: 5.0%
Activity: 5.0% Activity: 5.0% Activity: 5.0%
Last Achievements Javelin JourneyJavelin JourneyJavelin Journey
Does Javelin scan for DMA? Wondering if I need to look for a custom firmware
Exsecut0r is offline
Old 10th October 2025, 05:42 PM   #12
Heap

Join Date: Dec 2023
Posts: 462
Reputation: 1720
Rep Power: 64
chrisstheg is Capable of creating the apocalypsechrisstheg is Capable of creating the apocalypsechrisstheg is Capable of creating the apocalypsechrisstheg is Capable of creating the apocalypsechrisstheg is Capable of creating the apocalypsechrisstheg is Capable of creating the apocalypsechrisstheg is Capable of creating the apocalypsechrisstheg is Capable of creating the apocalypsechrisstheg is Capable of creating the apocalypsechrisstheg is Capable of creating the apocalypsechrisstheg is Capable of creating the apocalypse
Recognitions Members who have contributed financial support towards UnKnoWnCheaTs. Donator (1)
Points: 4,907, Level: 7
Points: 4,907, Level: 7 Points: 4,907, Level: 7 Points: 4,907, Level: 7
Level up: 46%, 493 Points needed
Level up: 46% Level up: 46% Level up: 46%
Activity: 16.3%
Activity: 16.3% Activity: 16.3% Activity: 16.3%
Last Achievements Javelin Journey
very cool nice job man
chrisstheg is offline
Old 11th October 2025, 05:29 PM   #13
Junior Member

Threadstarter
Join Date: Dec 2007
Posts: 53
Reputation: 3433
Rep Power: 452
domme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating community
Points: 17,707, Level: 17
Points: 17,707, Level: 17 Points: 17,707, Level: 17 Points: 17,707, Level: 17
Level up: 94%, 93 Points needed
Level up: 94% Level up: 94% Level up: 94%
Activity: 2.4%
Activity: 2.4% Activity: 2.4% Activity: 2.4%
Last Achievements Javelin JourneyJavelin JourneyJavelin Journey
Quote:
Originally Posted by Exsecut0r View Post
Does Javelin scan for DMA? Wondering if I need to look for a custom firmware
Detected not, AFAIK. But, ofc, if the dma hack writes to the target pc, this can and probably will be detected.

Quote:
Originally Posted by Tormund View Post
you are bumping this thread whilst posting strings on another thread? im so confused
Yeah, i was unsure about that. On the other hand I wanted to write-out some very interesting strings RELATED to especially Javelin/EAAC and to show in which direction I will continue my way.

Quote:
Originally Posted by chrisstheg View Post
very cool nice job man
Thank you! Still on my Journey. There will be more to dissect :-D
__________________
MiLEA Cyrus once sang:
I came in like a NOPing ball
I never hit so hard in code
All I wanted was to break your JMP
All you ever did was crash to me
Yeah, you, you crash to me

Last edited by domme007; 11th October 2025 at 05:31 PM.
domme007 is offline
Old 12th October 2025, 03:16 PM   #14
Junior Member

Join Date: Aug 2025
Posts: 40
Reputation: 3252
Rep Power: 21
GF2P8AFFINEQB is a legend in the cheating communityGF2P8AFFINEQB is a legend in the cheating communityGF2P8AFFINEQB is a legend in the cheating communityGF2P8AFFINEQB is a legend in the cheating communityGF2P8AFFINEQB is a legend in the cheating communityGF2P8AFFINEQB is a legend in the cheating communityGF2P8AFFINEQB is a legend in the cheating communityGF2P8AFFINEQB is a legend in the cheating communityGF2P8AFFINEQB is a legend in the cheating communityGF2P8AFFINEQB is a legend in the cheating communityGF2P8AFFINEQB is a legend in the cheating community
Points: 3,839, Level: 6
Points: 3,839, Level: 6 Points: 3,839, Level: 6 Points: 3,839, Level: 6
Level up: 27%, 661 Points needed
Level up: 27% Level up: 27% Level up: 27%
Activity: 12.5%
Activity: 12.5% Activity: 12.5% Activity: 12.5%
Last Achievements Javelin Journey
Hi,
the dll mapped by preloader is the main theia module.
This contains the code to unpack the exe module on demand. They also have the option to remove very simple functions from the original exe into the mapped module.

You can just run the module to start analyzing. The first few virtualized blocks do a basic check to see if PEB->ImageBaseAddress matches the module address of the dll if so it exits out and shows a message box. (This check checks if the dll is run as a standalone process). Right after that is a decision tree based on that magic parameter passed in the mapper. There are multiple the one in the mapper is to initialize, there is also one to generate a crashdump etc.

Anyways the real interesting stuff is in the driver that they hide with a minifilter. That driver is also obfuscated using Griffin, the same obfuscator used on vgk and theia.

Obviously noone could ever deobfuscate that so it is pointless! Remember there is an infinite number of mba transforms so there is absolutely NO way that it can be simplified sadly.

Edit:
Forgot to mention this is the minifilter altitude for EA if you want to pull the driver:
EAAntiCheat.sys 363250 Electronic Arts

You can also easily dump it with a vulnerable driver as the driver cannot be packed in anyway.
Good luck!

Last edited by GF2P8AFFINEQB; 12th October 2025 at 03:21 PM.
GF2P8AFFINEQB is offline
Old 13th October 2025, 12:40 AM   #15
Supreme G0d

Join Date: Apr 2024
Location: France
Posts: 352
Reputation: 801
Rep Power: 53
WARBYYTE2 is the Hackers Canidate For PresidentWARBYYTE2 is the Hackers Canidate For PresidentWARBYYTE2 is the Hackers Canidate For PresidentWARBYYTE2 is the Hackers Canidate For PresidentWARBYYTE2 is the Hackers Canidate For PresidentWARBYYTE2 is the Hackers Canidate For PresidentWARBYYTE2 is the Hackers Canidate For President
Recognitions Members who have contributed financial support towards UnKnoWnCheaTs. Donator (1)
Points: 3,352, Level: 5
Points: 3,352, Level: 5 Points: 3,352, Level: 5 Points: 3,352, Level: 5
Level up: 69%, 248 Points needed
Level up: 69% Level up: 69% Level up: 69%
Activity: 12.5%
Activity: 12.5% Activity: 12.5% Activity: 12.5%
Last Achievements Javelin Journey
so he block mouse move "blocks injected mouse by checking flags" like the finals was doing. But not detections ?
WARBYYTE2 is online now
Old 13th October 2025, 08:28 AM   #16
Junior Member

Threadstarter
Join Date: Dec 2007
Posts: 53
Reputation: 3433
Rep Power: 452
domme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating community
Points: 17,707, Level: 17
Points: 17,707, Level: 17 Points: 17,707, Level: 17 Points: 17,707, Level: 17
Level up: 94%, 93 Points needed
Level up: 94% Level up: 94% Level up: 94%
Activity: 2.4%
Activity: 2.4% Activity: 2.4% Activity: 2.4%
Last Achievements Javelin JourneyJavelin JourneyJavelin Journey
Quote:
Originally Posted by GF2P8AFFINEQB View Post
Hi,
the dll mapped by preloader is the main theia module.
This contains the code to unpack the exe module on demand. They also have the option to remove very simple functions from the original exe into the mapped module.

You can just run the module to start analyzing. The first few virtualized blocks do a basic check to see if PEB->ImageBaseAddress matches the module address of the dll if so it exits out and shows a message box. (This check checks if the dll is run as a standalone process). Right after that is a decision tree based on that magic parameter passed in the mapper. There are multiple the one in the mapper is to initialize, there is also one to generate a crashdump etc.

Anyways the real interesting stuff is in the driver that they hide with a minifilter. That driver is also obfuscated using Griffin, the same obfuscator used on vgk and theia.

Obviously noone could ever deobfuscate that so it is pointless! Remember there is an infinite number of mba transforms so there is absolutely NO way that it can be simplified sadly.

Edit:
Forgot to mention this is the minifilter altitude for EA if you want to pull the driver:
EAAntiCheat.sys 363250 Electronic Arts

You can also easily dump it with a vulnerable driver as the driver cannot be packed in anyway.
Good luck!
Wow, thanks for the insights. This helps me alot.

Do you guess/know, if it could be possible, to decrypt everything? Like, I already dig into it a little, but ofc it's obfuscated a lot. I was already looking for their decryption algorithms, but hadn't any luck. The string decryption was kind of easy, however, it was time-intensive to get the pattern etc. right.

I have a DMA card and I can easy dump the driver, as soon, as I go to dissect this one. I'm very interesting, to see how Javelin works at KM.

However, right now, I'm interested in how they detect bad processes at startup on the UM. Also the Screenshot-Function is highly interesting for me, however, I think my dump is not that good. At least I cant find any string XREFs at the moment.

Quote:
Originally Posted by WARBYYTE2 View Post
so he block mouse move "blocks injected mouse by checking flags" like the finals was doing. But not detections ?
Theia places these hooks and passes them into their decryption library. I dont think this has to do anything with cheat detection at this point. Maybe more to check some debugger controls? IDK honestly. I didnt follow the usage of the struct in the decryptor lib/exe for now, since the encrypted strings catched my eyes.
__________________
MiLEA Cyrus once sang:
I came in like a NOPing ball
I never hit so hard in code
All I wanted was to break your JMP
All you ever did was crash to me
Yeah, you, you crash to me
domme007 is offline
Old 29th January 2026, 08:05 AM   #17
Senior Member

Join Date: Oct 2022
Location: pauc.cpp
Posts: 75
Reputation: 420
Rep Power: 86
PAUC has stol33n The c0d3PAUC has stol33n The c0d3PAUC has stol33n The c0d3PAUC has stol33n The c0d3PAUC has stol33n The c0d3
Points: 3,218, Level: 5
Points: 3,218, Level: 5 Points: 3,218, Level: 5 Points: 3,218, Level: 5
Level up: 53%, 382 Points needed
Level up: 53% Level up: 53% Level up: 53%
Activity: 2.5%
Activity: 2.5% Activity: 2.5% Activity: 2.5%
Last Achievements Javelin JourneyJavelin Journey
Good job on the thread did you try dumping the driver at runtime and see how it behaves etc and then start doing your analyses ?
PAUC is offline
Old 11th February 2026, 12:44 PM   #18
Junior Member

Threadstarter
Join Date: Dec 2007
Posts: 53
Reputation: 3433
Rep Power: 452
domme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating communitydomme007 is a legend in the cheating community
Points: 17,707, Level: 17
Points: 17,707, Level: 17 Points: 17,707, Level: 17 Points: 17,707, Level: 17
Level up: 94%, 93 Points needed
Level up: 94% Level up: 94% Level up: 94%
Activity: 2.4%
Activity: 2.4% Activity: 2.4% Activity: 2.4%
Last Achievements Javelin JourneyJavelin JourneyJavelin Journey
Quote:
Originally Posted by PAUC View Post
Good job on the thread did you try dumping the driver at runtime and see how it behaves etc and then start doing your analyses ?
I did dump the driver months ago via DMA card. I hadn't time to dig into it seriously.
__________________
MiLEA Cyrus once sang:
I came in like a NOPing ball
I never hit so hard in code
All I wanted was to break your JMP
All you ever did was crash to me
Yeah, you, you crash to me
domme007 is offline
Old 12th February 2026, 07:12 PM   #19
Supreme G0d

Join Date: Mar 2019
Location: HEX DEREF
Posts: 384
Reputation: 19500
Rep Power: 197
WhiteByte Will always be a legend at UCWhiteByte Will always be a legend at UCWhiteByte Will always be a legend at UCWhiteByte Will always be a legend at UCWhiteByte Will always be a legend at UCWhiteByte Will always be a legend at UCWhiteByte Will always be a legend at UCWhiteByte Will always be a legend at UCWhiteByte Will always be a legend at UCWhiteByte Will always be a legend at UCWhiteByte Will always be a legend at UC
Points: 40,831, Level: 30
Points: 40,831, Level: 30 Points: 40,831, Level: 30 Points: 40,831, Level: 30
Level up: 68%, 969 Points needed
Level up: 68% Level up: 68% Level up: 68%
Activity: 4.7%
Activity: 4.7% Activity: 4.7% Activity: 4.7%
Last Achievements Javelin JourneyJavelin Journey
I have a special anti‑malware tool that can reveal keyloggers all the way down to WinTcp‑level processes or virtual keyboards. Is anyone interested?

The Javelin team is falling behind — thanks to that incompetent recruiting manager. Bypassed theirs.

I took it upon myself to investigate whether these so‑called leading traditional antivirus solutions are secretly collecting sensitive data without permission. That includes those big‑budget kernel‑level anti‑cheat systems as well.

And why would you dump the driver via DMA? You can just clone the VA as if there were no anti‑cheat at all. No need for CR3 tricks.

The problem is the time. Is this even worth it? What do you get out of it? A livelihood or revenge?
__________________
HEX DEREF ANTI-MALWARE X AUTHOR - DSE/PatchGuard bypass at runtime for Windows 11 25H2 - Recent work as of 04/2026: Hiding a process's network activity from other applications. (Windows 10 22H2 - Windows 11 25H2) - All anti-cheat bypass hidden process, hidden system thread with high performance IPC UM-KM

Last edited by WhiteByte; 12th February 2026 at 07:43 PM. Reason: One of many, seen by none
WhiteByte is offline
Old 21st February 2026, 04:00 PM   #20
Senior Member

Join Date: Oct 2022
Location: pauc.cpp
Posts: 75
Reputation: 420
Rep Power: 86
PAUC has stol33n The c0d3PAUC has stol33n The c0d3PAUC has stol33n The c0d3PAUC has stol33n The c0d3PAUC has stol33n The c0d3
Points: 3,218, Level: 5
Points: 3,218, Level: 5 Points: 3,218, Level: 5 Points: 3,218, Level: 5
Level up: 53%, 382 Points needed
Level up: 53% Level up: 53% Level up: 53%
Activity: 2.5%
Activity: 2.5% Activity: 2.5% Activity: 2.5%
Last Achievements Javelin JourneyJavelin Journey
you know the "time" at the end is actually legendary as that's what i think about before i do something "is it even worth it" "what do i get out of it" etc stuff like that also what do you think on the "virtualisation" topic and binaries protected that has virtualisation etc how do you attack them from your pov etc
PAUC is offline
Reply


collapse similar threads Similar Threads
Thread Thread Starter Forum Replies Last Post
[Help] bypassing EA Javelin Anticheat bolibro Anti-Cheat Bypass 1 3rd July 2025 11:43 PM
[Information] Journey Through Europe board game in javafx YellowFlash Java 0 1st July 2015 03:14 AM
[Request] Javelin Vs. Player TheLugiazSoul Battlefield 3 6 24th September 2013 07:35 AM
[Tutorial] A brief journey through Scripting Section guirc ARMA 2 Scripting 0 26th November 2012 07:52 PM
[Coding] Disabling Javelin/Stinger locktime TonePune Battlefield 3 2 21st September 2012 10:35 AM

Tags
findings, die, learning, checked, javelin, lot, journey, beta, free, bf6


Forum Jump


All times are GMT. The time now is 05:59 PM.
Copyright ©2000-2026, Unknowncheats™
no new posts