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 


IMPORTANT: Cheat Engine permission system
Goto page Previous  1, 2
 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General programming
View previous topic :: View next topic  
Author Message
Dark Byte
Site Admin
Reputation: 474

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

PostPosted: Tue Mar 09, 2010 4:09 pm    Post subject: Reply with quote

Do you also close ImperiumAO.exe before restarting your program ?
If not, that's why the memory stayed the same

_________________
Tools give you results. Knowledge gives you control.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
SBAOM
Newbie cheater
Reputation: 0

Joined: 10 Feb 2010
Posts: 19

PostPosted: Tue Mar 09, 2010 6:08 pm    Post subject: Reply with quote

Code:
Just genius. I mean... how couldn't I see it? This happened because I mixed up the code of an old version of the program with a NEW version of the program. The GetIaoProcessClientID thing looks for the FIRST process called ImperiumAO.exe, right? As this is a multicliente engine, there will OBVIOUSLY be a previously opened version of it. the GetIaoProcessClientID function was just a debugging tool, actually :P I could perfectly use CreateProcess last attribute, which holds the handle of the process, lol. Ok, man, thanks a LOT. I used to have a bad idea about this comunity, but it solved a problem that NO other comunity could (it's not that I tried, but I'm sure they wouldn't have been able) and I'm sure of that cause you, yourself, created this magnificent tool called Cheat Engine that grabed me back into the world of programming, and I would really like to go as far as you are. Thank you very much. I'll have questions soon, and I won't hesitate on coming back here :). Cheers

Sasha


WELL! THAT was what I was going to put BEFORE I found out there is something else wrong, actually, quite big that makes us go to the beginning of the road, ONCE AGAIN (thank you anyway, you DID solve one problem, but not ALL the problems, and though what I said above is true, there's no reason to introduce it yet Razz). Guess what's the problem now? Everything. Yes, every function is retrieving an error, mostly 487 and 299. I found out this, but I found out that It doesn't occur in EVERY circumstances, and I actually THEORETICALLY know how to solve this problem. Apparently I can't touch any module because they aren't loaded yet. Do you know what I mean? I pause the process as soon as it's created, so I don't give it time to load everything. This IS possible to do with Cheat Engine by setting BREAKPOINTS. Apparently, I can only see question marks outside every module unless I set a BREAKPOINT within the module. So this is the new era here: BREAKPOINTS ERA!! I didn't even looked how to set one, I directly came to you, but as soon as I finish writing this, I am going to. Cheers
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 474

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

PostPosted: Tue Mar 09, 2010 7:23 pm    Post subject: Reply with quote

This is tricky (especially to explain)
It's most common to do this in multithreaded environments, but I'll see if I can explain it in a single thread method (that only works in windows XP and later, it blocks win9x and win2k, but almost noone uses those these days)

I'm not going to explain breakpoints, but an easier method that does what you want

Create the process with creation flag DEBUG_ONLY_THIS_PROCESS (2)
you don't have to suspend and resume the process manually now, but need to use waitfordebugevent and continuedebugevent

when the process has been created go into a loop that does:
Code:

while WaitForDebugEvent(&event,INFINITE)
  check if the event is of the type LOAD_DLL_DEBUG_INFO
    If so check if the imagename is what you want (kernel32.dll), and write the modification
      if windowsxp and later: exit the loop, else keep on going and never exit this application
   
  ContinueDebugEvent(event.processid, event.threadid, DBG_EXCEPTION_NOT_HANDLED);

after the loop:
DebugActiveProcessStop(processid)

_________________
Tools give you results. Knowledge gives you control.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
SBAOM
Newbie cheater
Reputation: 0

Joined: 10 Feb 2010
Posts: 19

PostPosted: Fri Mar 12, 2010 2:36 pm    Post subject: Reply with quote

That is EXACTLY what I needed. Sorry I couldn't answer before, I was kind of busy but I really want to give you my appreciation, everything I said before. Anyway, for some reason my program doesn't work on an XP machine I tried, I'm going to try it in a couple more, but that's another thing. As I said, if I have any trouble I'll come back here, naturally. Cheers
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General programming All times are GMT - 6 Hours
Goto page Previous  1, 2
Page 2 of 2

 
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