Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


.CEA to .DLL or any method to Auto-Load any Auto Assemb(...)

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
DarkStep29
How do I cheat?
Reputation: 0

Joined: 14 Apr 2015
Posts: 9

PostPosted: Tue Apr 14, 2015 3:10 am    Post subject: .CEA to .DLL or any method to Auto-Load any Auto Assemb(...) Reply with quote

.CEA to .DLL or any method to Auto-Load any Auto Assembly Scripts?

//ERROR: The forums didn't allow me to use pictures in this post. I recommend reading the pastebin version for pictures/explanation.
Code:
pastebin
(dot)com/
MKZgRT16


To be honest. Over the years I am without doubt, in surprised that no one has done something like this.

A little bit about me and what I do.

I've been learning ASM and how it works for almost 4 years by now and I've been effectively using Cheat Engine as my main tool for disassembly and tracing routes to figure out values of memories and pointers.

I've played over 3 games. All online, 2 Small Projects, 1 Major Addiction.

For 2 years I've tend to struggle on most of my edits due to Restriction of Bytes (e.g: If I need to do MOV EAX,5 but I cannot because MOV EAX,EBX is 2 bytes and I cannot overwrite the other OPs that are required) and because of this

most of my edits was pretty rough(had to recode this 3 times over the past year)

Then I joined another game, I was introduced to a new level of game hacking where

I could make my own custom assembly .

Because of this higher level of game hacking. I've been heavily interested in Auto Assembly and it's beautiful simplified language that opens so much problem solutions to my hobby.

However. I stumble upon a small flaw within auto assembly.

Over the past 3 years, I've been playing a game where it's environment does not require the use of trainers or "switches". The community calls this a "patcher" where we would turn our assembly edits on/off via .ini. The proxyfied DLL will do all the work required to patch over the assembly at game boot.

Therefore. Because I stumble upon this environment, I wish to keep pursuing to what I have been living for years. as much as I love to make these scripts and obtain the motivation to do so. The fact that I have to manually load my .CEAs everytime I boot the game is a Major Turnoff. I am not use to "trainers/switches" and I cannot get used to them since I feel great discomfort. I personally prefer my scripts to be automatically loaded, especially if I will start making around >10 of these scripts.


...but Cheat Engine does not have this ability...at least to the best of my knowledge...

It frustrates me. A lot.

I see that cheat engine has the ability to save as .EXE, but not .DLL But even then, what's worst is that in order to even use the scripts. I have to use a "hot key" to activate the script first. Which is lame. If I want to use the .exe, I want to make sure that .exe will automaticly load my scripts instead of pressing CTRL+SHIFT+1 to activate 1 out of 5 scripts. I was actually thinking of Reverse Engineering my .exes to do that. But loading a .exe manually might as well be the same behavior as loading my .cea scripts manually.

It's getting late. I can only pray that Dark Byte will respond to this message and hope that he will give me a definite answer for my solution, if not then other solutions related to it. I fucking love Auto Assembly's beautiful simplified coding language but I cannot withstand it's non ability to automatically load itself at game boot.

endrant Sad

_________________
[url=goo.gl/Z8jjN9]PlayTime[/url]
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 458

Joined: 09 May 2003
Posts: 25288
Location: The netherlands

PostPosted: Tue Apr 14, 2015 3:31 am    Post subject: Reply with quote

you don't have to use hotkeys to activate the patches. You can use lua which will automatically activate the cheat entries that do the patches after the process has been opened
_________________
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
Back to top
View user's profile Send private message MSN Messenger
DarkStep29
How do I cheat?
Reputation: 0

Joined: 14 Apr 2015
Posts: 9

PostPosted: Tue Apr 14, 2015 3:40 am    Post subject: Reply with quote

Dark Byte wrote:
You can use lua which will automatically activate the cheat entries that do the patches after the process has been opened


When you say that. Do you mean that I still have to use the button with the blue monitor on the main cheat engine window in order for the .lua to activate?

Because that's still kinda manual to me.

//EDIT: Ugh. I still can't use URLs

_________________
[url=goo.gl/Z8jjN9]PlayTime[/url]
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 458

Joined: 09 May 2003
Posts: 25288
Location: The netherlands

PostPosted: Tue Apr 14, 2015 4:08 am    Post subject: Reply with quote

you can use the auto attach feature of ce(which can be configured using lua as well)
_________________
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
Back to top
View user's profile Send private message MSN Messenger
DarkStep29
How do I cheat?
Reputation: 0

Joined: 14 Apr 2015
Posts: 9

PostPosted: Tue Apr 14, 2015 1:00 pm    Post subject: Reply with quote

Dark Byte wrote:
you can use the auto attach feature of ce(which can be configured using lua as well)


I see. I guess it's time to learn LUA then, such a shame tho since CE's AA Language is beautiful.


So I know that Cheat Engine automaticly translates my AA Script into .lua

Code:

i.imgur
(dot)com/gbylrA7.png


But the question is. Where can I go find the generated lua script so I can modify the way the .exe loads?


Also another thing. Certainly I have the Auto Assembly Script on the Cheat Table (Checked on the Checkmark box) and CE auto attach the game's .exe program.

CE was able to successfully attach the .exe but was unable to automaticly launch the AA script on the cheat table. I would have to unmark it and remark the check to make it work. Which is a turn off.

_________________
[url=goo.gl/Z8jjN9]PlayTime[/url]
Back to top
View user's profile Send private message
Gniarf
Grandmaster Cheater Supreme
Reputation: 43

Joined: 12 Mar 2012
Posts: 1285

PostPosted: Tue Apr 14, 2015 1:35 pm    Post subject: Reply with quote

@DarkStep29: Is your game's exe packed or encrypted? Because if the bytes you modify are present as is in the .exe file, you can simply apply your AA script on the file (use file->open file). Just remember that:
-you cannot use the alloc command over a file (use the free trailing bytes at the end of the code section instead). There is a lot more padding zeroes at the end of the code in a running process than in the file, but you can still find a few hundred bytes there. If your script needs its own variables, you can either place them at the end of the section that holds the game's static variables (there are padding bytes there too), or make the code section writable (one byte to change in the PE header).
-all locations must be aobscan-relative.

Side note: CE saves the file as soon as the script is activated, so don't look for a "save modified file" button.

_________________
DO NOT PM me if you want help on making/fixing/using a hack.
Back to top
View user's profile Send private message
DarkStep29
How do I cheat?
Reputation: 0

Joined: 14 Apr 2015
Posts: 9

PostPosted: Tue Apr 14, 2015 2:48 pm    Post subject: Reply with quote

Gniarf wrote:
@DarkStep29: Is your game's exe packed or encrypted? Because if the bytes you modify are present as is in the .exe file, you can simply apply your AA script on the file (use file->open file). Just remember that:
-you cannot use the alloc command over a file (use the free trailing bytes at the end of the code section instead). There is a lot more padding zeroes at the end of the code in a running process than in the file, but you can still find a few hundred bytes there. If your script needs its own variables, you can either place them at the end of the section that holds the game's static variables (there are padding bytes there too), or make the code section writable (one byte to change in the PE header).
-all locations must be aobscan-relative.

Side note: CE saves the file as soon as the script is activated, so don't look for a "save modified file" button.


The game's EXE is packed with Themida, it takes only 2 seconds for it to be unpacked in memory upon execution

_________________
[url=goo.gl/Z8jjN9]PlayTime[/url]
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 458

Joined: 09 May 2003
Posts: 25288
Location: The netherlands

PostPosted: Tue Apr 14, 2015 3:26 pm    Post subject: Reply with quote

register for an an auto attach, and in funtion onOpenProcess() start a 2-3 second timer that when triggered will go through the addresslist and activate the entries
_________________
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
Back to top
View user's profile Send private message MSN Messenger
DarkStep29
How do I cheat?
Reputation: 0

Joined: 14 Apr 2015
Posts: 9

PostPosted: Tue Apr 14, 2015 3:57 pm    Post subject: Reply with quote

Dark Byte wrote:
register for an an auto attach, and in funtion onOpenProcess() start a 2-3 second timer that when triggered will go through the addresslist and activate the entries


Did some basic research on that, and tried to make the .lua script myself. But I stumbled upon a problem when I try to execute it

Code:
i.imgur
(dot)com
/TzQ73zR.png

_________________
[url=goo.gl/Z8jjN9]PlayTime[/url]
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 458

Joined: 09 May 2003
Posts: 25288
Location: The netherlands

PostPosted: Tue Apr 14, 2015 6:48 pm    Post subject: Reply with quote

declare onOpenProcess as a function, not ()
instead of openProcess, use the autoAttach mechanism (else you have to run it after starting the game, but do delay it a bit in case it opens before it's extractedl

also, i recommend keeping your lua script simple and stay with what you're used with.
so keep the patches in aa scripts in the table and just let the lua script walk through the table and set Active to true

_________________
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
Back to top
View user's profile Send private message MSN Messenger
DarkStep29
How do I cheat?
Reputation: 0

Joined: 14 Apr 2015
Posts: 9

PostPosted: Wed Apr 15, 2015 4:26 pm    Post subject: Reply with quote

Dark Byte wrote:

so keep the patches in aa scripts in the table and just let the lua script walk through the table and set Active to true


How would I do that?
I got the whole LUA gotten down and the script work but how do I make the lua auto load when cheat engine attaches the program?

Here's my script right now

Code:

i.imgur
(dot)com/
jpn7T66.png


It's already saved in a .CT format.

_________________
[url=goo.gl/Z8jjN9]PlayTime[/url]
Back to top
View user's profile Send private message
DarkStep29
How do I cheat?
Reputation: 0

Joined: 14 Apr 2015
Posts: 9

PostPosted: Thu Apr 16, 2015 11:04 pm    Post subject: Reply with quote

Bumping since dark byte is online
_________________
[url=goo.gl/Z8jjN9]PlayTime[/url]
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 458

Joined: 09 May 2003
Posts: 25288
Location: The netherlands

PostPosted: Fri Apr 17, 2015 3:56 am    Post subject: Reply with quote

Code:

function delayedActivation(t)
  al=getAddressList()
  for i=0, al.Count-1 do
    al[i].Active=true

    if (al[i].Active==false) then
      print("Failure activating entry "..i)
      --return
    end
  end

  t.enabled=false
end

function onOpenProcess()
  print("Opened a process")
  t=createTimer(nil)
  t.Interval=3000 --3 seconds
  t.OnTimer=delayedActivation
  t.Enabled=true
end

getAutoAttachList().add("game.exe")


you can this to the end of the script to make the .ct launch the game for you.
Code:

shellExecute([[pathtogame.exe]])


tip: If you have normally installed CE, and rename the .ct to .cetrainer you can doubleclick it and the script will run automatically

_________________
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
Back to top
View user's profile Send private message MSN Messenger
DarkStep29
How do I cheat?
Reputation: 0

Joined: 14 Apr 2015
Posts: 9

PostPosted: Mon Apr 20, 2015 1:59 am    Post subject: Reply with quote

Code:

i.imgur
(dot)com/Z5k9iUL.png


There appears to be an error when posting. So I put my concerns at Pastebin

Code:

pastebin
(dot)com/Qt8aT6tX

_________________
[url=goo.gl/Z8jjN9]PlayTime[/url]
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
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


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites