Java and cheat engine

Java and cheat engine

I had also tried using other CE version and it’s the same.

globalalloc(cmd,16)
globalalloc(arg0,256)
globalalloc(arg1,256)
globalalloc(arg2,256)
globalalloc(result,4)

db ‘C:\Program Files (x86)\Cheat Engine 6.5\autorun\dlls\32\CEJVMTI’,0

pipename:
db ‘\\.\pipe\cejavapipe’,0

mov rcx,cmd
mov rdx,arg0
mov r8,arg1
mov r9,arg2

mov [rsp],cmd
mov [rsp+8],arg0
mov [rsp+10],arg1
mov [rsp+18],arg2
mov [rsp+20],pipename

call jvm.JVM_EnqueueOperation
mov [result],eax

Error in native thread called CollectJavaSymbolsNonInjected::C:\Program Files (x86)\Cheat Engine 6.5\autorun\java.lua:251: attempt to index a nil value
Error:C:\Program Files (x86)\Cheat Engine 6.5\autorun\java.lua:403: Auto assembler failed: globalalloc(bla,1024)

globalalloc(cmd,16)
globalalloc(arg0,256)
globalalloc(arg1,256)
globalalloc(arg2,256)
globalalloc(result,4)

db ‘C:\Program Files (x86)\Cheat Engine 6.5\autorun\dlls\32\CEJVMTI’,0

pipename:
db ‘\\.\pipe\cejavapipe’,0

mov rcx,cmd
mov rdx,arg0
mov r8,arg1
mov r9,arg2

mov [rsp],cmd
mov [rsp+8],arg0
mov [rsp+10],arg1
mov [rsp+18],arg2
mov [rsp+20],pipename

call jvm.JVM_EnqueueOperation
mov [result],eax

or just comment out the code from line 216 to 293 in autorun/java.lua
you most likely didn’t use those variables it fetches (jInterpreter_*) and and java.lua doesn’t use it anywhere else
_________________

Do not ask me about online cheats. I don’t know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping

Tried both, no dice.
_________________

(restart ce after editing that file)

and don’t just replace java.exe also the related files

if the autoassembler still fails execute the script in a standalone autoassembler script to see why it fails (e. g no export named JVM_EnqueueOperation)
_________________

Do not ask me about online cheats. I don’t know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping

globalalloc(cmd,16)
globalalloc(arg0,256)
globalalloc(arg1,256)
globalalloc(arg2,256)
globalalloc(result,4)

db ‘C:\Program Files (x86)\Cheat Engine 6.5\autorun\dlls\32\CEJVMTI’,0

pipename:
db ‘\\.\pipe\cejavapipe’,0

mov rcx,cmd
mov rdx,arg0
mov r8,arg1
mov r9,arg2

mov [rsp],cmd
mov [rsp+8],arg0
mov [rsp+10],arg1
mov [rsp+18],arg2
mov [rsp+20],pipename

call jvm.JVM_EnqueueOperation
mov [result],eax

Error:C:\Program Files (x86)\Cheat Engine 6.5\autorun\java.lua:326: Auto assembler failed: globalalloc(bla,1024)

globalalloc(cmd,16)
globalalloc(arg0,256)
globalalloc(arg1,256)
globalalloc(arg2,256)
globalalloc(result,4)

db ‘C:\Program Files (x86)\Cheat Engine 6.5\autorun\dlls\32\CEJVMTI’,0

pipename:
db ‘\\.\pipe\cejavapipe’,0

mov rcx,cmd
mov rdx,arg0
mov r8,arg1
mov r9,arg2

mov [rsp],cmd
mov [rsp+8],arg0
mov [rsp+10],arg1
mov [rsp+18],arg2
mov [rsp+20],pipename

call jvm.JVM_EnqueueOperation
mov [result],eax

I replaced the whole jre folder. ( don’t know if it’s the thing that you ask for)

The game is 32 bits.
_________________

globalalloc(cmd,16)
globalalloc(arg0,256)
globalalloc(arg1,256)
globalalloc(arg2,256)
globalalloc(result,4)

db ‘C:\Program Files (x86)\Cheat Engine 6.5\autorun\dlls\32\CEJVMTI’,0

pipename:
db ‘\\.\pipe\cejavapipe’,0

mov rcx,cmd
mov rdx,arg0
mov r8,arg1
mov r9,arg2

mov [rsp],cmd
mov [rsp+8],arg0
mov [rsp+10],arg1
mov [rsp+18],arg2
mov [rsp+20],pipename

call jvm.JVM_EnqueueOperation
mov [result],eax

if the error is that call jvm.JVM_EnqueueOperation fails go to memoryview
view->enumerate dlls and modules
(if you have windows 7 with a bad windows patch where no entry has a > in front then
close it
again view->enumerate dll’s and modules
)
press ctrl+f and search for EnqueueOperation and see if you can find it anywhere

(perhaps it’s just moved to a different module instead of jvm.dll)

You also need to replace the java.exe and dll files
_________________

Do not ask me about online cheats. I don’t know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping

I tried changing these 2 lines:

Code:
mov r8,arg1
mov r9,arg2

to

Code:
mov rax,arg1
mov rbx,arg2

then, execute the script.

Some instruction that handles many of the variables in the game ,change into easier instruction to work on.

I still understand nothing,though.
but it’s getting easier.

Do not ask me about online cheats. I don’t know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping

I will be waiting for the fix,then.

Hahaha, I don’t know why instruction that handle many variables in this game keep changing.It looks alive.
_________________

Of course, it apparently has never been tested on 32-bit java, so I can’t even say if it’ll work or not
_________________

Do not ask me about online cheats. I don’t know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping

Woahh, thankyou for this.Tested it, and it’s working as intended.

Thankyou very much , Dark Byte.
_________________

Источник

Java and cheat engine



But not all hacks will work, because Java allows easy server sided storage.

The only thing harder is packet editting really.
_________________

Get a lid on that zombie,
he’s never gonna be alri-i-ight.
Oooh get a lid on that zombie,
or he’s gonna feed all night.

actually, packet editing is easier with ce than editing a server sides java value.
Just write a assembler script to do a api hook on send and recv and in there mess with the buffers. It’s a lot easier
_________________

Do not ask me about online cheats. I don’t know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping

thanks
so how do i search for the score or any game variable same oll way
search for
score * 8
4 bytes, exact search with default memory range

I can hear the voices of opcodes. «Come and NOP me!» Come and NOP me!»


Maybe it works in multiples of 10? ^^ Then there’s no problem ^^
_________________

Get a lid on that zombie,
he’s never gonna be alri-i-ight.
Oooh get a lid on that zombie,
or he’s gonna feed all night.

My avatar can jump, you know

Yes, unknown inital vlaue it and then check it if lowers or increases with the next scan searches (considering you change the value someway), I just hope your not trying to hack Runescape.
_________________

Источник

FearLess Cheat Engine

Noobzor

OverlordQ Noobzor
Posts: 6 Joined: Mon Aug 21, 2017 1:13 am Reputation: 0

Java Hacking

Post by OverlordQ » Fri Dec 31, 2021 7:41 am

javaInjectAgent() local classes = java_getLoadedClasses() 
 for k, v in pairs(classes) do if (v.signature:find("^Lmindustry/core/GameState;") ~= nil) then local jclass = v.jclass local instances = java_findAllObjectsFromClass(jclass) local len = math.min(100, #instances) print(string.format("objs=%s, length=%d", tostring(instances), #instances)) for k, v in pairs(instances) do addGameState(jclass, v) end end end 
local jClass = java_findClass('Lmindustry/core/GameState;') 

However that always returns 0, so I end up doing the walk over loadedClasses.

So my GameState function does the following:

function addGameState(class, instance) local fields = java_getClassFields(class) print(string.format("fields=%d", #fields)) for k, field in pairs(fields) do local fieldValue = java_getField(instance, field.jfieldid, field.signature) print(string.format("%s %s = %s", field.signature, field.name, tostring(fieldValue))) end end 

Problem 2: Some of these fields instead of being simple types are classes I need to further walk and recurse. Anything I’ve tried to fetch references to these classes ends up just freezing up CE. Any ideas?

javaInjectAgent() local addressList = getAddressList() local classes = java_getLoadedClasses() if addressList.Count >= 1 then for i = addressList.Count - 1, 0, -1 do local mr = addressList.getMemoryRecord(i) mr.delete() end end function addGameStates() -- Find GameStates gsHeader = addressList.createMemoryRecord() gsHeader.Description = "Game States" gsHeader.IsGroupHeader = true for k, v in pairs(classes) do if (v.signature:find("^Lmindustry/core/GameState;") ~= nil) then local jclass = v.jclass local instances = java_findAllObjectsFromClass(jclass) local len = math.min(100, #instances) print(string.format("objs=%s, length=%d", tostring(instances), #instances)) for k, v in pairs(instances) do printGameState(jclass, v) end end end end function printGameState(class, instance) local fields = java_getClassFields(class) print(string.format("fields=%d", #fields)) for k, field in pairs(fields) do local fieldValue = java_getField(instance, field.jfieldid, field.signature) print(string.format("%s %s = %s", field.signature, field.name, tostring(fieldValue))) end end addGameStates() 
objs=table: 000000001C25B200, length=2 fields=12 I wave = 1 F wavetime = 0.0 Z gameOver = false Z serverPaused = false Z wasTimeout = false Lmindustry/maps/Map; map = 1647081208 Lmindustry/game/Rules; rules = 1647081200 Lmindustry/game/GameStats; stats = 1647081192 Lmindustry/world/blocks/Attributes; envAttrs = 1647081184 Lmindustry/game/Teams; teams = 1647081176 I enemies = 0 Lmindustry/core/GameState$State; state = 1647081168 fields=12 I wave = 26 F wavetime = 3753.3090820313 Z gameOver = false Z serverPaused = false Z wasTimeout = false Lmindustry/maps/Map; map = 1647081160 Lmindustry/game/Rules; rules = 1647081152 Lmindustry/game/GameStats; stats = 1647081144 Lmindustry/world/blocks/Attributes; envAttrs = 1647081136 Lmindustry/game/Teams; teams = 1647081128 I enemies = 0 Lmindustry/core/GameState$State; state = 1647081120 

I basically need/want to modify some fields of the objects in the map/rules/teams fields. And I can’t figure out how to walk the objects

Expert Cheater

Frouk Expert Cheater
Posts: 84 Joined: Wed Jun 30, 2021 10:21 am Reputation: 14

Re: Java Hacking

Post by Frouk » Sat Jan 01, 2022 10:24 am

Noobzor

OverlordQ Noobzor
Posts: 6 Joined: Mon Aug 21, 2017 1:13 am Reputation: 0

Re: Java Hacking

Post by OverlordQ » Sat Jan 01, 2022 11:03 pm

So if getField returns a specific object class, I can just pass that back into getField and so on till I reach the primitive type I’m looking for?

Expert Cheater

Frouk Expert Cheater
Posts: 84 Joined: Wed Jun 30, 2021 10:21 am Reputation: 14

Re: Java Hacking

Post by Frouk » Sun Jan 02, 2022 9:50 am

So if getField returns a specific object class, I can just pass that back into getField and so on till I reach the primitive type I’m looking for?

Источник

Читайте также:  Java errors and solutions
Оцените статью