 |
Cheat Engine The Official Site of Cheat Engine
|
View previous topic :: View next topic |
Author |
Message |
Roted0x001 How do I cheat?
Reputation: 0
Joined: 18 Feb 2021 Posts: 1
|
Posted: Thu Feb 18, 2021 10:56 pm Post subject: Encode/DecodeFunction |
|
|
hey DarkByte ,
first thank you for this helpful and hard work project you helped me alot
i have question about
how can another people decrypt (encodeFunction)
what i had known it encrypt from bin to base85 and when decrypting back from base85 and load into compiler directly so it work with ( bin and base85)
so how there is people return plain text of code from base85 !?
|
|
Back to top |
|
 |
atom0s Moderator
Reputation: 205
Joined: 25 Jan 2006 Posts: 8587 Location: 127.0.0.1
|
Posted: Fri Feb 19, 2021 3:52 am Post subject: |
|
|
encodeFunction only does a simple surface-level encoding on the data. This is easily undone to get the original data back:
https://github.com/cheat-engine/cheat-engine/blob/184e2553a8950772ea54d72c780820fbb7b712bd/Cheat%20Engine/LuaHandler.pas#L11871
lua_encodeFunctionEx does a more in depth means of encoding as it does a few things:
https://github.com/cheat-engine/cheat-engine/blob/184e2553a8950772ea54d72c780820fbb7b712bd/Cheat%20Engine/LuaHandler.pas#L11901
- 1. It will encode the Lua data down to Lua byte code.
- 2. It will encode the data with base85 as well.
- 3. It can use an external Lua DLL to do custom byte code compiling.
However, this is still also pretty easily reversed back to normal Lua if the person decompiling your stuff knows what they are doing and how to understand Lua byte code. (Fixing an existing byte code decompiler for shifted/altered opcodes is not hard to make work for custom modifications or just shifted opcode ids which most people do.)
Then there is also the enableDrm feature:
https://github.com/cheat-engine/cheat-engine/blob/184e2553a8950772ea54d72c780820fbb7b712bd/Cheat%20Engine/LuaHandler.pas#L12342
https://github.com/cheat-engine/cheat-engine/blob/45fb6442c32638e51b688912447bb37ae5cf31d3/Cheat%20Engine/dbk32/DBK32functions.pas#L668
https://github.com/cheat-engine/cheat-engine/blob/6f2d51d8debed205977c0bc95a7818ca1c23c23c/DBKKernel/IOPLDispatcher.c#L2200
I won't go into detail on what this does or how it works, but will mention it is extremely easy to bypass and not really a reliable means of protection either.
If your goal is to protect your work, I don't recommend you rely on CE's built-in trainer maker to do so. Everything you create can be easily dumped/reversed back to its original data fairly easy, even by novices. If you do plan to still use it, then I'd recommend you dig into how encodeFunctionEx works and learn how to understand Lua's byte code, and how to alter it to make use of your own Lua DLL. Modify the bytecode more than just shifting the ids around, add junk code, add cflow obfuscation, etc. and so on if it means that much to you to protect things that much and still use CE's trainer maker.
_________________
- Retired. |
|
Back to top |
|
 |
panraven Grandmaster Cheater
Reputation: 62
Joined: 01 Oct 2008 Posts: 958
|
Posted: Fri Feb 19, 2021 11:30 am Post subject: |
|
|
For every block-all-shield there is a pierce-all-spear, and vice versa.
Conclusion, it is an eternal war never happened ;D
_________________
- Retarded. |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|